반응형
PLS-00231:함수는 SQL에서 사용할 수 없습니다.
패키지를 만들지 않고 파이프라인 기능을 테스트하고 싶습니다.다음은 단순화된 예입니다.
DECLARE
FUNCTION testDC RETURN NCOL PIPELINED IS
BEGIN
PIPE ROW(5);
END;
BEGIN
FOR cur IN (select * from table (testDC())) LOOP
dbms_output.put_line('--> ');
END LOOP;
END;
하지만 다음과 같은 오류가 발생합니다.
ORA-06550: 7행, 7열: pls-00231: TESTDC 함수는 SQL에서 사용할 수 없습니다.
ORA-06550: 7행, 7열: PL/SQL: ORA-00904: : 잘못된 식별자
ORA-06550: 7행, 7열: PL/SQL: SQL 문이 무시됨
이러한 기능을 테스트하는 더 좋은 방법은 무엇입니까?
파이프라인 함수를 독립 실행형 프로시저 또는 패키지 멤버로 만듭니다.그런 다음 스크립트에서 호출할 수 있습니다.
또한 참조하는 NCOL 매개 변수가 호출 스크립트에서 액세스할 수 있는 스키마로 선언되었는지 확인합니다.
PL/SQL에서는 테이블 함수에 직접 액세스할 수 없습니다. 아래 테스트 사례를 참조하십시오.따라서 다른 지적 사항처럼 테이블 기능을 독립 실행형 또는 패키지로 정의해야 합니다.
DECLARE
res NUMBER;
FUNCTION testDC RETURN NCOL PIPELINED IS
BEGIN
PIPE ROW(5);
END;
BEGIN
res := testDC();
dbms_output.put_line('--> '||res);
END;
/
ORA-06550: line 3, column 12:
PLS-00653: aggregate/table functions are not allowed in PL/SQL scope
언급URL : https://stackoverflow.com/questions/32505663/pls-00231-function-may-not-be-used-in-sql
반응형
'programing' 카테고리의 다른 글
Ajax에서 사용자 지정 HTTP 헤더 응답을 가져올 수 없음 getAllResponseHeaders (0) | 2023.07.24 |
---|---|
if 문에서 부울 값 (0) | 2023.07.24 |
PowerShell에서 어레이의 어레이에 어레이 추가 (0) | 2023.07.24 |
최대 절전 모드에서 Oracle Date를 사용하는 경우 날짜/시간에 대한 Java 유형 (0) | 2023.07.24 |
Require는 빈 개체를 반환합니다. (0) | 2023.07.24 |