아래의 절차를 고려하십시오. 처리를 위해서는 어쨌든 모든 처리 단계를 거쳐야합니다. 그래서 내 질문은 :이 구문 분석 단계에서 'Select job_id from asfd'
여전히 문자열로 취급되고 EXECUTE IMMEDIATE
의 실행 단계 'Select job_id from asfd'
이 SQL 문으로 다시 구문 분석되는 동안? 내가 here에서 발견EXECUTE IMMEDIATE의 SQL 문은 런타임에 파싱됩니까?
CREATE OR REPLACE PROCEDURE test_ei
IS
BEGIN
EXECUTE IMMEDIATE ‘select job_id from asfd’; //line 3
END;
한 설명은 asdf
테이블이 존재하지 않고 창자가 성공적으로 너무 'Select job_id from asfd'
이 아직이 단계에서 문자열로 처리, 컴파일입니다. 어떤 수정도 부탁드립니다.
심지어 실제로 EXECUTE IMMEDIATE 'select * asfd';
이 3 행에서 대체되는 경우에도 여전히 성공적으로 준수합니다. 그래서 위의 설명이 정확하다고 생각합니다.
다른 단계에 대한 몇 가지 유용한 정보 : [링크] https://docs.oracle.com/cd/A57673_01/DOC/server/doc/A48506/sqlconce.htm – Anand
예, 절차에 대한 구문 분석시에는 , 'asfd에서 job_id를 선택하십시오'는 ** 해석되지 않았으며 런타임시에만 구문 분석됩니다. –