源代码:
--带参数过程的创建
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
想问一下大家,为什么会出现这样的问题以及问题出在哪里?
谢谢!!!
--带参数过程的创建
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
想问一下大家,为什么会出现这样的问题以及问题出在哪里?
谢谢!!!
看看这个类型是是否是什么型号的,
MYNO:=7369; =>MYNO:='7369';
这样改改看看
JOB1:='职业:' ¦ ¦MYJOB;
是不是这两个的值超长了。