ORA-06502:PL / SQL:数值或值错误

时间:2014-03-19 11:46:57

标签: oracle

错误: - 尝试执行以下过程时出现以下错误 ORA-06502:PL / SQL:数值或值错误 ORA-06512:在“proc1”,第31行 ORA-06512:第10行

代码: -

create or replace 
PROCEDURE proc1 (
p_param1 IN INTEGER
)
IS

CURSOR c_cursor1 IS
SELECT  EMPLOYEE_ID FROM Employees ;

 r_EMPLOYEE_ID_tobe_updated c_cursor1%ROWTYPE;
 v_params   VARCHAR2 (32767) := '';

BEGIN
  OPEN c_cursor1;

  LOOP
   FETCH c_cursor1 INTO r_EMPLOYEE_ID_tobe_updated;
   EXIT WHEN c_cursor1%NOTFOUND;

   IF v_params = '' THEN
    v_params :=  v_params || r_EMPLOYEE_ID_tobe_updated.EMPLOYEE_ID;
   ELSE 
   v_params :=  v_params  || ', '  || r_EMPLOYEE_ID_tobe_updated.EMPLOYEE_ID;
   END IF;
  END LOOP;

  CLOSE c_cursor1;


DBMS_OUTPUT.PUT_LINE('outcome:: ' || v_params );

END proc1;

错误: - ORA-06502:PL / SQL:数值或值错误 ORA-06512:在“proc1”,第31行 ORA-06512:第10行

Employee_id字段详情: - Employee_Id NUMBER(9)NOT NULL

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

这不起作用。您不能将dbms_output用于put_line包含900k行值的单个字符串。使用UTL_FILE包并将每一行写入文本文件。仍然是一个大文件,需要一段时间