大家好,我写了一个存储过程,是这样的
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请高手帮我解决一下,谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货