안녕하세요. 다름이 아니라 %rowtype을 동적 쿼리에 바인딩 변수로 할당해주는데 에러가 납니다. 하지만 ROW_EMP.EMPNO 처럼 컬럼명을 직접 넣어주면 정상 처리됩니다. 원인이 궁금합니다. 이런 방법을 이용해서 처리할려는 로직이 있는데 샘플 테스트 중 시작부터 막히네요. 혹시 rowtype을 바인딩 변수로 사용하시는 분은 안 계신가요? --------------------------------------------------------------- DECLARE ROW_EMP EMP%ROWTYPE; V_STMT VARCHAR2(1000); BEGIN ROW_EMP.EMPNO := 1234; DBMS_OUTPUT.put_line ('--1 ROW_EMP.EMPNO ('||ROW_EMP.EMPNO||')'); V_STMT := 'BEGIN :1 := NULL; END;'; EXECUTE IMMEDIATE V_STMT USING IN OUT ROW_EMP; DBMS_OUTPUT.put_line ('--2 ROW_EMP.EMPNO ('||ROW_EMP.EMPNO||')'); END; SQL Error [6550] [65000]: ORA-06550: line 9, column 41: PLS-00457: expressions have to be of SQL types ORA-06550: line 9, column 3: PL/SQL: Statement ignored --------------------------------------------------------------- DECLARE ROW_EMP EMP%ROWTYPE; V_STMT VARCHAR2(1000); BEGIN ROW_EMP.EMPNO := 1234; DBMS_OUTPUT.put_line ('--1 ROW_EMP.EMPNO ('||ROW_EMP.EMPNO||')'); V_STMT := 'BEGIN :1 := NULL; END;'; EXECUTE IMMEDIATE V_STMT USING IN OUT ROW_EMP.EMPNO; DBMS_OUTPUT.put_line ('--2 ROW_EMP.EMPNO ('||ROW_EMP.EMPNO||')'); END; --1 ROW_EMP.EMPNO (1234) --2 ROW_EMP.EMPNO ()