我需要从一个过程的表中获取值的列表,然后将值传递给第二个过程。 例如。在A.prc
我需要从表中获取数据,并在B.prc
我需要打印我在A.prc
中获取的数据。我想写两个plsql程序。在一个过程中获取数据并从第二个过程中打印出来
在此先感谢
P.S. :使用Oracle 11g作为DB与SYS PRIV和蟾蜍写中华人民共和国
CREATE OR REPLACE PROCEDURE P1(
EMPNO OUT EMP.EMPNO%type,
ENAME OUT EMP.ENAME%type,
DEPTNO OUT EMP.DEPTNO%type)
AS
C_EMP SYS_REFCURSOR;
C_EM VARCHAR2(200);
BEGIN
C_EM:='SELECT EMPNO,ENAME,DEPTNO FROM EMP';
OPEN C_EMP FOR C_EM;
LOOP
FETCH C_EMP into EMPNO,ENAME,DEPTNO;
EXIT WHEN C_EMP%notfound;
END LOOP;
P2(C_EMP);
CLOSE C_EMP;
END;
/
CREATE OR REPLACE PROCEDURE P2(e_EMP SYS_REFCURSOR) AS
BEGIN
LOOP
FETCH e_EMP INTO E_EMPNO,E_ENAME,E_DEPTNO;
EXIT WHEN e_EMP%NOTFOUND;
END LOOP;
CLOSE e_EMP;
END;
/
错误:[错误] PLS-00306(17:4):PLS-00306:错误的号码或类型的 参数打电话给'P2'
更新1:还需要这样做,没有游标,有关联数组。 这是作业/作业的一部分。 与阵列尝试这样做:
CREATE OR REPLACE PROCEDURE P1
AS
TYPE EmpTabTyp IS TABLE OF emp%ROWTYPE INDEX BY BINARY_INTEGER;
emp_tab EmpTabTyp;
BEGIN
SELECT * INTO emp_tab FROM emp;
END;
/
[错误] PLS-00597(6:15):PLS-00597:表达式 'EMP_TAB' 在INTO列表>错误类型 [错误]的ORA-00904(6:23):PL/SQL:ORA-00904:无效的标识符
你尝试过这么远吗? –
我尝试过使用游标。我会将我的代码添加到说明 –