ORACLE 표현식이 파이프 라인 함수 (다중 조인 테이블)에서 잘못된 유형입니다.

세자르 베가

여러 레코드를 가져 오기 위해 파이프 라인 함수가있는 Oracle 패키지를 작성하고 있습니다. 쿼리는 여러 조인 된 테이블에 관한 것이며, 이는 다른 테이블에 저장됩니다. 유형 레코드에 대해 TYPE RECORDTABLE TYPE 을 만든 다음 쿼리와 함께 파이프 라인 된 함수이지만 패키지를 컴파일 할 때 "expression is of wrong type" 오류가 발생 합니다.

다음은 정의 패키지입니다.

CREATE OR REPLACE PACKAGE MYPACKAGE_PKG AS

  TYPE GLD_R IS RECORD (
    ID        NUMBER,
    PRCCVE  NUMBER(7,0),        
    LOTCVE  NUMBER(7,0),        
    EPCSEQ  NUMBER(18,0),       
    EPCBNK  CHAR(3)
  );

  TYPE GLD_T IS TABLE OF GLD_R;    

  FUNCTION MY_FUNCTION(_NUM NUMBER) RETURN GLD_T PIPELINED;

END;

다음은 바디 패키지입니다.

CREATE OR REPLACE PACKAGE BODY MYPACKAGE_PKG AS

  FUNCTION MY_FUNCTION(_NUM NUMBER) RETURN GLD_T PIPELINED 
  AS
    CURSOR T_CUR IS 
      SELECT 
        T1.ID,
        T2.COLUMN01,
        T2.COLUMN02,
        T3.COLUMN01,
        T3.COLUMN02
      FROM 
        TABLE01 T1
        INNER JOIN TABLE02 T2 ON 
          T1.COLUMN03 = T2.ID
        INNER JOIN TABLE03 T3 ON
          T1.COLUMN04 = T2.ID
      WHERE 
        T1.COLUMN01 = _NUM
  BEGIN
    FOR REC IN T_CUR LOOP
      PIPE ROW (REC);
    END LOOP;
  END MY_FUNCTION;

END;

내가 뭘 잘못하고 있다고 말할 수 있니?

리틀 풋

다음과 같아야합니다.

먼저 테이블 (컴파일이 실패하지 않도록) :

SQL> create table table01 (id number,column01 number, column03 number, column04 number);

Table created.

SQL> create table table02 (id number, column01 number, column02 number);

Table created.

SQL> create table table03 (id number, column01 number, column02 number);

Table created.

패키지 사양 :

SQL> CREATE OR REPLACE PACKAGE MYPACKAGE_PKG AS
  2
  3    TYPE GLD_R IS RECORD (
  4      ID        NUMBER,
  5      PRCCVE  NUMBER(7,0),
  6      LOTCVE  NUMBER(7,0),
  7      EPCSEQ  NUMBER(18,0),
  8      EPCBNK  CHAR(3)
  9    );
 10
 11    TYPE GLD_T IS TABLE OF GLD_R;
 12
 13    FUNCTION MY_FUNCTION(p_NUM NUMBER) RETURN GLD_T PIPELINED;
 14
 15  END;
 16  /

Package created.

패키지 본체 :

SQL> CREATE OR REPLACE PACKAGE BODY MYPACKAGE_PKG AS
  2
  3    FUNCTION MY_FUNCTION(p_NUM NUMBER) RETURN GLD_T PIPELINED
  4    AS
  5      CURSOR T_CUR IS
  6        SELECT
  7          T1.ID,
  8          T2.COLUMN01 t2c01,
  9          T2.COLUMN02 t2c02,
 10          T3.COLUMN01 t3c01,
 11          T3.COLUMN02 t3c02
 12        FROM
 13          TABLE01 T1
 14          INNER JOIN TABLE02 T2 ON
 15            T1.COLUMN03 = T2.ID
 16          INNER JOIN TABLE03 T3 ON
 17            T1.COLUMN04 = t3.id   -- not T2.ID
 18        WHERE
 19          T1.COLUMN01 = p_NUM;
 20
 21          myrec gld_r;
 22    BEGIN
 23      FOR REC IN T_CUR LOOP
 24        myrec.id := rec.id;
 25        myrec.prccve := rec.t2c01;
 26        myrec.lotcve := rec.t2c02;
 27        myrec.epcseq := rec.t3c01;
 28        myrec.epcbnk := rec.t3c02;
 29        PIPE ROW (myrec);
 30      END LOOP;
 31    END MY_FUNCTION;
 32
 33  END;
 34  /

Package body created.

SQL>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

표현식이 함수에 대해 잘못된 유형입니다.

Oracle- '표현식이 잘못된 유형입니다'패키지의 레코드 유형 테이블 반환

Oracle PLS-00382 : 표현식이 잘못된 유형 06550입니다.

Oracle PLS-00382 : 표현식이 잘못된 유형 06550입니다.

인라인 R 표현식이 잘못된 값을 반환합니다.

PHP 7, 치명적인 오류 : 상수 표현식에 잘못된 연산이 포함되어 있습니다.

삼항 (조건부) 표현식에 잘못된 유형이 있습니다.

ORACLE 조인 다중 테이블 성능

식이 잘못된 유형입니다.-Oracle 오류

Oracle 파이프 라인 테이블 함수 및 Oracle 테이블에 결과 삽입

postgres json_agg ()는 GROUP BY 표현식에서 조인 된 테이블의 인덱스를 무시합니다.

잘못된 유형입니다. 내 새 유형이 절대 유형인 이유는 무엇입니까?

조인 된 테이블 오류 : LEFT 또는 SUBSTRING 함수에 잘못된 길이 매개 변수가 전달되었습니다.

PLS-00382 : 커서에서 표현식이 잘못된 유형입니다.

F #이 포함 된 Kraken 프라이빗 API가 EGeneral : 잘못된 인수를 반환합니다.

파이프 라인의 다중 조회

Insert 문은 Oracle 테이블에 잘못된 난수를 삽입합니다.

Oracle 내부 조인이 잘못된 결과 집합을 제공합니다.

'is_superuser'는이 함수에 대한 잘못된 키워드 인수입니다.

TypeError : 'cmp'는이 함수에 대한 잘못된 키워드 인수입니다.

TypeError: 'data'는 이 함수에 대한 잘못된 키워드 인수입니다.

'title'은이 함수에 대한 잘못된 키워드 인수입니다.

TypeError : 'manuscript'는이 함수에 대한 잘못된 키워드 인수입니다.

TypeError : 'ndim'은이 함수에 대한 잘못된 키워드 인수입니다.

구체화된 제네릭이 있는 인라인 함수는 백그라운드 서비스에서 사용될 때 잘못된 유형 변수 참조 예외를 발생시킵니다.

상수 표현식에 잘못된 연산이 있습니다.

경고 : 잘못된 파이프 라인 : customsrc0을 mpegtsmux0에 연결할 수 없습니다.

GraphQL 인수에 잘못된 값이 있습니다. 예상 유형 'Int

"표현식이 잘못된 유형입니다"를 표시하는 전역 사용자 정의 유형이 있는 Oracle SQL TABLE 연산자

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관