大家好,我写了一个存储过程,是这样的
CREATE OR REPLACE PROCEDURE text_x
IS
v_file_name VARCHAR2(50);
v_lf UTL_FILE.FILE_TYPE;
v_sql VARCHAR2(1000);
begin
v_file_name := 'per_gae'||To_Char(sysdate,'yyyyMMdd')||'.xml';
v_sql := 'SELECT * FROM gae_file WHERE rownum<40';
v_lf := UTL_FILE.FOPEN('XMLDIR',v_file_name,'w', 32767);
UTL_FILE.PUT_LINE(v_lf,dbms_xmlgen.getXML(v_sql));
UTL_FILE.FCLOSE(v_lf);
END;很奇怪的是,当v_sql := 'SELECT * FROM gae_file WHERE rownum<39';时,没有任何问题,但是rownum<40时,就会报错,报错信息是:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在"DS.TEXT_X", line 10
ORA-06512: 在line 3请高手帮我解决一下,谢谢!
CREATE OR REPLACE PROCEDURE text_x
IS
v_file_name VARCHAR2(50);
v_lf UTL_FILE.FILE_TYPE;
v_sql VARCHAR2(1000);
begin
v_file_name := 'per_gae'||To_Char(sysdate,'yyyyMMdd')||'.xml';
v_sql := 'SELECT * FROM gae_file WHERE rownum<40';
v_lf := UTL_FILE.FOPEN('XMLDIR',v_file_name,'w', 32767);
UTL_FILE.PUT_LINE(v_lf,dbms_xmlgen.getXML(v_sql));
UTL_FILE.FCLOSE(v_lf);
END;很奇怪的是,当v_sql := 'SELECT * FROM gae_file WHERE rownum<39';时,没有任何问题,但是rownum<40时,就会报错,报错信息是:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在"DS.TEXT_X", line 10
ORA-06512: 在line 3请高手帮我解决一下,谢谢!
解决方案 »
- 急等Oracle9i数据库(dmp文件)恢复方法!
- 汉字名字加双引号和不加双引号有区别吗
- ORACEL归档备份
- 问一个where in 里面用占位符的问题
- 这条ORACLE语句大体意思是什么啊?
- 【请教】聚合函数与update
- Net Configuration Assistant里面测试成功,但SQL*PLUS连接不上!
- 请问各位大虾:如何用脚本语言建立数据库,就像用向导建立的一样,存储空间也要设好
- 修改服务器ip后,服务不能启动,sos. 来者有分。
- Win 7 /64位系统 连接和访问Oracle 10g数据库超慢,如何解决?
- trigger,if exists, if count(*)问题
- 关于函数count的一个问题?
SQL> select * from temp;GENDER CELLPHONE
---------- ----------------------------------------
m xxSQL> select * from temp where rownum<10;GENDER CELLPHONE
---------- ----------------------------------------
m xx你应该检查UTL_FILE.FOPEN()的运行结果是什么?