免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1759 | 回复: 3
打印 上一主题 下一主题

一旦在pc文件中加入 EXEC SQL LOB WRITE 。。。就出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-16 14:54 |只看该作者 |倒序浏览
[size=18]大问题啊!一旦在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.....

我首先插入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字段里呢??[/size][size=24][/size][size=18][/size][color=red][/color][color=red][/color]

论坛徽章:
0
2 [报告]
发表于 2004-06-16 16:01 |只看该作者

一旦在pc文件中加入 EXEC SQL LOB WRITE 。。。就出错

参见:
http://www.syerp.com/oracle/2002005.php
我就是按照他的步骤做,可就是不能成功!!!
老大们帮帮忙!!!!

论坛徽章:
0
3 [报告]
发表于 2004-06-17 09:48 |只看该作者

一旦在pc文件中加入 EXEC SQL LOB WRITE 。。。就出错

???

论坛徽章:
0
4 [报告]
发表于 2004-06-17 18:36 |只看该作者

一旦在pc文件中加入 EXEC SQL LOB WRITE 。。。就出错

up
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP