[Oracle] LONG 타입 -> VARCHAR2 변환

smiler·2023년 5월 12일
0

LONG 타입 필드를 서브쿼리로 조회하면
오류가 발생합니다.

Oracle function을 생성해서 사용하면 사용할 수 있습니다.

SQL

SELECT (SELECT LONG_DATA -- LONG 타입 필드
        FROM TBL_DTL
        WHERE 1 = 1
        AND COL1 = A.COL1 
        AND COL2 = A.COL2
        AND COL3 = A.COL3 
        AND COL4 = '4')
FROM TBL A

ORA-00997: LONG 데이터 유형은 사용할 수 없습니다.


function

CREATE OR REPLACE FUNCTION FN_LONG_TO_VARCHAR (
   P_COL1     VARCHAR2,
   P_COL2     VARCHAR2,
   P_COL3     VARCHAR2,
   P_COL4     VARCHAR2
)
   RETURN VARCHAR
AS
   DATA   VARCHAR2 (20000);
BEGIN
   SELECT LONG_DATA
   INTO DATA
   FROM TBL_DTL
   WHERE 1 = 1
   AND COL1 = P_COL1
   AND COL2 = P_COL2
   AND COL3 = P_COL3
   AND COL4 = P_COL4
   ;
   RETURN DATA;
END;

SQL

SELECT FN_LONG_TO_VARCHAR(A.COL1, A.COL2, A.COL3, '4')
FROM TBL A

0개의 댓글