我想创建一个过程,传入插入的数据,包括文件的目录和文件名(都是varchar2类型)。脚本如下:
reate or replace procedure insrt_auth (
p_au_id in a_authors.au_id %type,
p_pic_dir in varchar2,
p_pic_name in varchar2)
as
v_bfile bfile;
v_blob blob;
v_clob clob;
begin
insert into a_au_pix(au_id,pic) values(p_au_id,empty_blob()); create directory dir as p_pic_dir;
select pic into v_blob from a_au_pix where au_id=p_au_id for update;
v_bfile := bfilename('dir',p_pic_name);
dbms_lob.fileopen(v_bfile,dbms_lob.file_readonly);
dbms_lob.loadfromfile(v_blob,v_bfile);
drop directory dir;end insrt_auth;可是我在过程中创建directory对象时老是出错:
create directory dir as p_pic_dir;
p_pic_dir是一输入参数,即文件目录的字符串,不知错误何在?show errors;的提示是:26行即这行:create directory dir as p_pic_dir;
LINE/COL ERROR
-------- -----------------------------------------------------------------
26/9 PLS-00103: 出现符号 "CREATE"在需要下列之一时:
begin case declare end
exception exit for goto if loop mod null pragma raise return
select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe该问题如何解决是好啊,多谢各位指教!
reate or replace procedure insrt_auth (
p_au_id in a_authors.au_id %type,
p_pic_dir in varchar2,
p_pic_name in varchar2)
as
v_bfile bfile;
v_blob blob;
v_clob clob;
begin
insert into a_au_pix(au_id,pic) values(p_au_id,empty_blob()); create directory dir as p_pic_dir;
select pic into v_blob from a_au_pix where au_id=p_au_id for update;
v_bfile := bfilename('dir',p_pic_name);
dbms_lob.fileopen(v_bfile,dbms_lob.file_readonly);
dbms_lob.loadfromfile(v_blob,v_bfile);
drop directory dir;end insrt_auth;可是我在过程中创建directory对象时老是出错:
create directory dir as p_pic_dir;
p_pic_dir是一输入参数,即文件目录的字符串,不知错误何在?show errors;的提示是:26行即这行:create directory dir as p_pic_dir;
LINE/COL ERROR
-------- -----------------------------------------------------------------
26/9 PLS-00103: 出现符号 "CREATE"在需要下列之一时:
begin case declare end
exception exit for goto if loop mod null pragma raise return
select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe该问题如何解决是好啊,多谢各位指教!
解决方案 »
- 求教oracle出现ORA-03135后程序不能重新连接数据库的问题!!!
- 有关oracle索引的问题!!!
- 如何调用表的数据组成xml文档
- 用Oracle9i Jdeveloper已经连通数据库服务器,看见表了,可为什么在写的jsp页面中的查询数据库操作报错呢?
- SQL效能问题,大虾进来!
- 一个数据表中记录关于日期的问题...在线等待啊
- 紧急求救:ORACLE9i安装的奇怪问题,求高手帮忙(在线等)
- Oracle多表关联查询问题!解决立即给分
- 请教:从sql server2000导出数据到oracle8i,表名是大小写混写的,到oracle也是,所以出了问题。
- oracle中数据表比较后续问题?
- 求一个sql,大虾帮个忙。
- 自增id在pb的数据窗口中能使用吗?怎么用啊?
即p_pic_dir='F:\MyProjects\adb\pic',执行时提示错误,错误指向这行
execute immediate 'create directory dir as ' || p_pic_dir;
错误描述为:ORA-01780: 要求文字字符串
该如何是好?多谢!
用execute immediate 'create directory dir as ' || p_pic_dir;后,我的 procedure 里不能用dir了啊,这样不是相当于没有创建目录吗?这个问题有办法解决吗?或者,还有其他达到同样目的的解决办法吗?谢谢!