2017-11-16 4 views
0

PL/SQL 코드에서 기본 SELECT 쿼리 만 실행하면됩니다. 다음 코드는 완벽하게 잘 작동 :'USING'과 ||의 차이점 in PL SQL

BEGIN 
EXECUTE IMMEDIATE 'SELECT * FROM :1' USING 'TNAME'; 
END; 
/

말하는 오류를 제공

BEGIN 
EXECUTE IMMEDIATE 'SELECT * FROM ' || 'TNAME'; 
END; 
/

그러나 다음 코드

ORA-00903 : 잘못된 테이블 이름

ORA-06512 : 라인에서 2

  1. 00000 - "잘못된 테이블 이름 전자 "

* 원인 :
* 작업 :

내가 사용하는 테이블 이름을 전달할 수 없습니다"어떤 식 으로든 "사용?

답변

8

으로 Oracle 설명서 상태 :. 같은 조항 당신은을 위해 자리를 사용할 수 없습니다 WHERE 조건부 테스트와 같이 SQL 문에 변수를 대체 할 수있는 장소에서

"에만 사용할 수 있습니다 자리 스키마 개체의 이름 올바른 방법은 "Passing Schema Object Names As Parameters."