PROCEDURE编译错误请教!!!

wangyiyan 2011-11-07 10:18:22
我的过程是这样的:
第一步:建表
create table MY_USER_INFO
(
emp_id NUMBER(10) not null,
name VARCHAR2(64) not null,
photo BLOB,
photo_name VARCHAR2(15)
)
第二步:建目录 CREATE OR REPLACE DIRECTORY IMAGES AS 'e:\picture';
第三步:建存储过程
CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS
F_LOB BFILE;
B_LOB BLOB;
BEGIN
iNSERT INTO my_user_info (photo_name, photo)
VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;
--插入空的blob
F_LOB:= BFILENAME ('IMAGES', FILENAME);
--获取指定目录下的文件
DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONLY);
--以只读的方式打开文件
DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB));
--传递对象
DBMS_LOB.FILECLOSE (F_LOB);
--关闭原始文件
COMMIT;
END;
/

其中,出现的问题就是:创建的过程有编译错误,我怎么也看不到错误的出处。请高手讨教!
另外,请帮我分析下:对于较大数据对象的存储,在数据库中是如何进行的?给分予以感谢!!!
...全文
560 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
微笑你我她 2012-08-12
  • 打赏
  • 举报
回复
可以的。。直得学习!!
sakuramanu 2011-11-09
  • 打赏
  • 举报
回复
在左边选中procedure那个文件夹,找到你的存储过程名字,鼠标点右键,然后点view,就能看到错误了。。
rfb0204421 2011-11-09
  • 打赏
  • 举报
回复
直接贴错误号码
cosio 2011-11-08
  • 打赏
  • 举报
回复
错误应该都会提示是什么错误,直接贴错误号码出来!
yjytiantang 2011-11-08
  • 打赏
  • 举报
回复
调试一下,看看在什么地方的错误。
对于大对象的数据,可以放在服务器上某一文件夹下,然后在数据库表里存放此路径信息,通过路径直接访问。
007-x 2011-11-08
  • 打赏
  • 举报
回复
我能看出来一处returning into语法错误,lz试着修改看看
iNSERT INTO my_user_info (photo_name, photo)
VALUES (TID,EMPTY_BLOB ()) RETURNING photo INTO B_LOB;
Alessandro_ 2011-11-08
  • 打赏
  • 举报
回复
具体是什么错误!
yixilan 2011-11-08
  • 打赏
  • 举报
回复
关于错误的出处,你用什么工具刷的存储过程?
如果是sqlplus直接刷,你执行show errors就能看到错误 ;
如果是用其它的工具,看看下方有没有被隐藏的小窗口,显示错误的。。

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧