oracle开发大问题啊!方式采用proc(pc文件)方式,c的。
一旦在pc文件中加入 EXEC SQL LOB WRITE 的语句后,预编译就出错◎◎◎◎。
报告如下错误:
PCC-S-02206, Host variables are not permitted within a DDL statement
Syntax error at line 360, column 15, file service_datatrans.pc:
Error at line 360, column 15 in file service_datatrans.pc
EXEC SQL LOB WRITE ONE :amt FROM :pBlob
INTO :blob AT :offset ;
..............1
PCC-S-02201, Encountered the symbol "LOB" when expecting one of the following: for, at, close, commit, connect, declare, describe, execute,
fetch, open, prepare, rollback, select, whenever, alter,
audit, comment, create, delete, drop, grant, insert, lock,
noaudit, rename, revoke, set, update, validate, arraylen,
allocate, cache, context, enable, free, object, savepoint,
analyze, explain, truncate,
The symbol "alter," was substituted for "LOB" to continue.Parser error at line 360, column 40, file service_datatrans.pc:
Error at line 360, column 40 in file service_datatrans.pc
EXEC SQL LOB WRITE ONE :amt FROM :pBlob
INTO :blob AT :offset ;PCC-S-02206, Host variables are not permitted within a DDL statement
Parser error at line 360, column 61, file service_datatrans.pc:
Error at line 360, column 61 in file service_datatrans.pc
EXEC SQL LOB WRITE ONE :amt FROM :pBlob
INTO :blob AT :offset ;如何环境下才能使用 EXEC SQL LOB WRITE 呢??
我得数据库信息:Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle'; -》》》》》》8.0.5.0.0
其他的语句没有问题,比如:EXEC SQL SELECT T_NAME FROM TABLE_NAME.....是blob类型。我首先插入empty_blob()。采用 exec sql insert into tablename(colname)values(empty_blob());
能成功编译,并执行。
可是在我想update时,采用如下方式:
EXEC SQL ALLOCATE :blob ;
EXEC SQL SELECT colblob INTO :blob FROM tablename WHERE GUID = '111' FOR UPDATE ;
EXEC SQL LOB WRITE ONE :amt FROM :pBlob INTO :blob AT :offset ;
EXEC SQL FREE :blob ;
时,预编译 报错 第三句 。Encountered the symbol "LOB" when expecting one of the followin。如我得问题里描述的那样!
我通过
EXEC SQL SELECT colblob INTO :blob FROM tablename WHERE GUID = '111' FOR UPDATE ;
将字段 colblob与变量blob关联后,如何将一个char buff[10240]的buff内容存入该字段呢?
文档里写可以这样:
amt = 10240 ;
offset = 1 ;
EXEC SQL LOB WRITE ONE :amt FROM :buff INTO :blob AT :offset ;
可是,这句话在预编译时报错!错误内容如帖主所描述。我应该如何将buff(大小10240)的内容存储进入colblob字段里呢??
一旦在pc文件中加入 EXEC SQL LOB WRITE 的语句后,预编译就出错◎◎◎◎。
报告如下错误:
PCC-S-02206, Host variables are not permitted within a DDL statement
Syntax error at line 360, column 15, file service_datatrans.pc:
Error at line 360, column 15 in file service_datatrans.pc
EXEC SQL LOB WRITE ONE :amt FROM :pBlob
INTO :blob AT :offset ;
..............1
PCC-S-02201, Encountered the symbol "LOB" when expecting one of the following: for, at, close, commit, connect, declare, describe, execute,
fetch, open, prepare, rollback, select, whenever, alter,
audit, comment, create, delete, drop, grant, insert, lock,
noaudit, rename, revoke, set, update, validate, arraylen,
allocate, cache, context, enable, free, object, savepoint,
analyze, explain, truncate,
The symbol "alter," was substituted for "LOB" to continue.Parser error at line 360, column 40, file service_datatrans.pc:
Error at line 360, column 40 in file service_datatrans.pc
EXEC SQL LOB WRITE ONE :amt FROM :pBlob
INTO :blob AT :offset ;PCC-S-02206, Host variables are not permitted within a DDL statement
Parser error at line 360, column 61, file service_datatrans.pc:
Error at line 360, column 61 in file service_datatrans.pc
EXEC SQL LOB WRITE ONE :amt FROM :pBlob
INTO :blob AT :offset ;如何环境下才能使用 EXEC SQL LOB WRITE 呢??
我得数据库信息:Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle'; -》》》》》》8.0.5.0.0
其他的语句没有问题,比如:EXEC SQL SELECT T_NAME FROM TABLE_NAME.....是blob类型。我首先插入empty_blob()。采用 exec sql insert into tablename(colname)values(empty_blob());
能成功编译,并执行。
可是在我想update时,采用如下方式:
EXEC SQL ALLOCATE :blob ;
EXEC SQL SELECT colblob INTO :blob FROM tablename WHERE GUID = '111' FOR UPDATE ;
EXEC SQL LOB WRITE ONE :amt FROM :pBlob INTO :blob AT :offset ;
EXEC SQL FREE :blob ;
时,预编译 报错 第三句 。Encountered the symbol "LOB" when expecting one of the followin。如我得问题里描述的那样!
我通过
EXEC SQL SELECT colblob INTO :blob FROM tablename WHERE GUID = '111' FOR UPDATE ;
将字段 colblob与变量blob关联后,如何将一个char buff[10240]的buff内容存入该字段呢?
文档里写可以这样:
amt = 10240 ;
offset = 1 ;
EXEC SQL LOB WRITE ONE :amt FROM :buff INTO :blob AT :offset ;
可是,这句话在预编译时报错!错误内容如帖主所描述。我应该如何将buff(大小10240)的内容存储进入colblob字段里呢??
解决方案 »
- 谁有visual c++范例完全自学手册的源码啊?共享下行吗?谢谢!!!!
- 如何解析内存中的xml信息
- ??
- 从edit读取公式问题!
- 在次提问,Tab Control控件在页标签上显示位图,显示不出,但标签上有图象的位置,请高手指点谜睛
- 如何将CComBSTR转换成LPCTSTR?
- 哪位大侠能介绍一下CButtonST怎么用?
- Help!我在VC++中使用函数CreateWaitableTimer(NULL, FALSE, NULL)在build时出现“undeclared identifier”错误
- 删除目录带有.号的文件夹
- 如何在系统启动的时候让软件在前台运行,windows在后台运行,但是可以切换!
- 自画控件的状态栏问题!!高手帮帮忙
- 怎样得到工具栏的停靠状态?
转到非技术区吧
为什么?!?!?这不是技术问题吗???只不过因为在oracle论坛里没人气,所以才贴到这里来。为什么啊!给个理由先! 这可是地地道道的技术问题啊!