하나의 프로 시저에서 테이블에서 가져올 값 목록과 두 번째 프로 시저로 전달할 값 목록이 필요합니다. 예 : A.prc
에서 테이블에서 데이터를 가져와야합니다. B.prc
A.prc
에 가져온 데이터를 인쇄해야합니다.두 개의 plsql 프로 시저를 작성하고 싶습니다. 한 프로 시저에서 데이터 가져 오기 및 두 번째 프로 시저에서 인쇄
감사의 말
P. [오류] PLS-00306 (17 : 4) : PLS-00306 : 잘못된 번호 또는 인수의 종류에 sys PRIV와 두꺼비와 DB로 오라클 11g를 사용하여 중화 인민 공화국의
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;
/
오류를 작성하는 '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-00,597 (6 : 15) : PLS-00597 : 식 'EMP_TAB'목록으로의이>는 잘못된 유형 [오류]의 ORA-00904 (6 : 23) : PL/SQL : ORA-00904 : : 유효하지 않은 식별자
:-)
당신이 기록을 보낼 수있는 프로 시저에 커서 라인을 전달하려면? –
커서를 사용해 보았습니다. 설명에 내 코드를 추가하겠습니다. –