建一张表,用它来存储XML文档.
1、建表:
create table TEST_XMLTYPE
(
VAR XMLTYPE
);
2、建目录:
create or replace directory MYFILE
as 'g:\file';
且保证g:\file下面有一个simple.xml文件。
3、创建存储过程
create or replace procedure prc_test_xmltype(p_path varchar2,p_file varchar2)
is
v_file bfile;
v_xml xmltype;
v_clob clob;
begin
v_clob:=empty_clob();
v_file:=bfilename(p_path,p_file);
dbms_lob.fileopen(v_file,dbms_lob.file_readonly);
dbms_lob.loadfromfile(v_clob,v_file,dbms_lob.getlength(v_file));
dbms_lob.fileclose(v_file);
v_xml:=xmltype.createXML(v_clob);
insert into test_xmltype(var) values(v_xml);
commit;
end prc_test_xmltype;
4、存储过程运行没有问题,但当我执行时,却报错了。
SQL> exec prc_test_xmltype;begin prc_test_xmltype; end;ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'PRC_TEST_XMLTYPE' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored请问是什么原因,帮忙解决一下。谢谢。
1、建表:
create table TEST_XMLTYPE
(
VAR XMLTYPE
);
2、建目录:
create or replace directory MYFILE
as 'g:\file';
且保证g:\file下面有一个simple.xml文件。
3、创建存储过程
create or replace procedure prc_test_xmltype(p_path varchar2,p_file varchar2)
is
v_file bfile;
v_xml xmltype;
v_clob clob;
begin
v_clob:=empty_clob();
v_file:=bfilename(p_path,p_file);
dbms_lob.fileopen(v_file,dbms_lob.file_readonly);
dbms_lob.loadfromfile(v_clob,v_file,dbms_lob.getlength(v_file));
dbms_lob.fileclose(v_file);
v_xml:=xmltype.createXML(v_clob);
insert into test_xmltype(var) values(v_xml);
commit;
end prc_test_xmltype;
4、存储过程运行没有问题,但当我执行时,却报错了。
SQL> exec prc_test_xmltype;begin prc_test_xmltype; end;ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'PRC_TEST_XMLTYPE' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored请问是什么原因,帮忙解决一下。谢谢。
解决方案 »
- oracle里to_date()怎么转换am、pm时间?
- 用OCI涵数连接ORACL的时候,那个参数决定了可以访问那个SKIM.
- 把一个表的数据保存到另外一个表中,有没有什么高效的处理办法
- 怎么写SQL串,将当前时间写入Oracle中的类型为Date的字段中?
- VB+Orcale开发数据库,vb中怎么样望ORcale插图片阿,orcale相应的字段是什么类型
- 请问如何为已有的数据库添加用户
- 请教一个初级问题。
- 硬盘空间不断减少
- Oracle 816 表空间问题! ORCL使用User表空间,在SQL plus中不能创建新表!提示空间不够!
- ora-01092 帮忙看一下,谢谢
- 调用dbms_alert的简单问题
- ORA-06502: PL/SQL: 数字或值错误 : 数值精度太高
SQL> exec prc_test_xmltype('MYFILE','SIMPLE.XML');begin prc_test_xmltype('MYFILE','SIMPLE.XML'); end;ORA-22275: 指定的 LOB 定位器无效
ORA-06512: 在"SYS.DBMS_LOB", line 616
ORA-06512: 在"TEST_VIEW.PRC_TEST_XMLTYPE", line 10
ORA-06512: 在line 1这是什么原因?难不成存储过程有问题?
f utl_file.file_type;
fp_buffer varchar2(4000);
begin
f := utl_file.fopen('DBDIR','hht.sql','R');
utl_file.get_line(f,fp_buffer);
--dbms_output.put_line(fp_buffer);
INSERT INTO C VALUES(fp_buffer);
--utl_file.get_line(f,fp_buffer);
--INSERT INTO C VALUES(fp_buffer);
--dbms_output.put_line(fp_buffer);
utl_file.fclose(f);
COMMIT;
end;
src_file BFILE;
dst_file BLOB;
lgh_file BINARY_INTEGER;
BEGIN
src_file := bfilename('DBDIR', pfname);
INSERT INTO eygle_blob (fname,fdesc,fpic)
VALUES ('hht.sql','sql',EMPTY_BLOB());
RETURNING fpic INTO dst_file;
SELECT fpic INTO dst_file
FROM eygle_blob WHERE fname = pfname FOR UPDATE;
dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
lgh_file := dbms_lob.getlength(src_file);
dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
UPDATE eygle_blob SET fpic = dst_file;
WHERE fname = pfname;
dbms_lob.fileclose(src_file);
commit;
END;