源代码:
--带参数过程的创建
CREATE OR REPLACE PROCEDURE PRO2(
TEMPNO IN SCOTT.EMP.EMPNO %TYPE,
NAME1 OUT SCOTT.EMP.ENAME %TYPE,
JOB1 IN OUT SCOTT.EMP.JOB %TYPE) AS 
MYJOB SCOTT.EMP.JOB %TYPE;
MYNAME SCOTT.EMP.ENAME %TYPE;
BEGIN
SELECT JOB INTO MYJOB FROM SCOTT.EMP 
WHERE EMPNO=TEMPNO;
SELECT ENAME INTO MYNAME FROM SCOTT.EMP
WHERE EMPNO=TEMPNO;
    NAME1:='姓名:'||MYNAME;
    JOB1:='职业:'||MYJOB;
END;--调用带参数的存储过程
SET SERVEROUTPUT ON
DECLARE
MYNO SCOTT.EMP.EMPNO %TYPE;
MYNAME1 SCOTT.EMP.ENAME %TYPE;
MYJOB1 SCOTT.EMP.JOB %TYPE;
BEGIN
MYNO:=7369;
MYNAME1:='';
MYJOB1:='';
PRO2(MYNO,MYNAME1,MYJOB1);
DBMS_OUTPUT.PUT_LINE(MYNO);
DBMS_OUTPUT.PUT_LINE(MYNAME1);
DBMS_OUTPUT.PUT_LINE(MYJOB1);
END;
过程已成功创建但是在运行"调用带参数的存储过程"这一段代码时,出现了问题:
Error:
位于第 1 行:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在"SYS.PRO2", line 12
ORA-06512: 在line 9
想问一下大家,为什么会出现这样的问题以及问题出在哪里?
谢谢!!!

解决方案 »

  1.   

    SCOTT.EMP.EMPNO %TYPE; 
    看看这个类型是是否是什么型号的,
    MYNO:=7369; =>MYNO:='7369';
    这样改改看看 
      

  2.   

    我改了一下:MYNO:=7369; =>MYNO:='7369'; 再运行时,还是出现同样的错误,还是没有找到问题到底处在哪里?有谁可以帮帮我!!
      

  3.   

        NAME1:='姓名:' ¦ ¦MYNAME; 
        JOB1:='职业:' ¦ ¦MYJOB; 
    是不是这两个的值超长了。