database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41844 게시물 읽기
No. 41844
오라클 동적 쿼리시 %rowtype 바인딩 변수 에러
작성자
Felix(felixxshin)
작성일
2021-03-03 09:51
조회수
174

안녕하세요.

다름이 아니라 %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 ()
 
[Top]
No.
제목
작성자
작성일
조회
41847오라클 계정 생성 질문입니다.
박승우
2021-04-13
24
41844오라클 동적 쿼리시 %rowtype 바인딩 변수 에러
Felix
2021-03-03
174
41843합계, 총합계표현 [4]
선이
2021-02-22
253
41842오라클 딕셔너리 뷰끼리의 조인시, 조회속도 관련 문제...
이재현
2021-02-14
177
41841간단한듯 어려운 쿼리문제 도와주세요(전일자 데이터와 비교해서 행보여주기) [3]
로방뿡
2021-02-10
259
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2021 DSN, All rights reserved.
작업시간: 0.009초, 이곳 서비스는
	PostgreSQL v13.1으로 자료를 관리합니다