func
내 패키지의 기능은 다음과 같습니다 A
.
create or replace PACKAGE A AS
type MY_TYPE IS TABLE OF MYTABLE%ROWTYPE;
FUNCTION func RETURN MY_TYPE;
END A;
create or replace PACKAGE BODY A AS
FUNCTION func RETURN MY_TYPE IS
CURSOR myCursor IS
SELECT * FROM MYTABLE;
var_cursor MYTABLE%ROWTYPE;
myParam MY_TYPE;
i NUMBER := 1;
BEGIN
FOR var_cursor IN myCursor
LOOP
myParam.EXTEND;
myParam(i) := var_cursor;
i := i + 1;
END LOOP;
RETURN myParam;
END func;
END A;
이 함수를 호출하고 싶습니다.
DECLARE
type my_type IS TABLE OF MYTABLE%ROWTYPE;
variable my_type;
BEGIN
variable := A.func();
END;
이것은 오류를 제공합니다
PLS-00382: 표현식의 유형이 잘못되었습니다.
유형이 동일한데 내가 뭘 잘못하고 있으며 어떻게 고칠 수 있습니까?
동일하지만 별도로 정의된 유형이 아닌 동일한 유형 을 사용해야 합니다 .
DECLARE
variable a.my_type;
BEGIN
variable := A.func();
END;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다