plsql 파일실행관련 질문입니다. 0 2 2,473

by redgun0 [PL/SQL] plsql 파일실행 [2013.12.02 16:01:39]


plsql 문에서 파일을 실행하고 싶습니다.

@ 파일명 하면 실행은 잘 되는데 파일명 자체는 변수처리되어 있어 변수에 담겨 있습니다.

@ 파일명변수 하면 변수에 담긴 파일을 찾는것이 아닌 파일명변수명의 파일을 찾아 파일을 찾을수 없다고 나옵니다.

결론은 제가 하고 싶은 내용은
plsql 문에서 @로 실행하는 것처럼 파일을 실행하고 싶은데 그 파일명이 변수에 담겨있다
입니다.

UTL_FILE 도 생각 안해본것은 아니나 파일안에 담긴 쿼리들이 워낙에 다이나믹하다 보니 한줄한줄 읽어 하나의 쿼리를 완성하는 부분에 생각외로 오랜 시간이 소요됩니다.
(실행할 파일도 많고 파일내용도 꾀 깁니다.)

고수님들의 많은 조언 부탁드립니다.

by 용근님 [2013.12.02 17:07:25]

excute immediate 를 알아보세요~

by Oracler [2013.12.03 21:45:02]
@은 PL/SQL의 기능이 아니라 SQL*Plus의 기능입니다. SQL*Plus의 START 명령을 우리가 @으로 대체해서 사용할 수 있는 것입니다. PL/SQL에서 sql 스크립트 파일을 직접 읽어서 실행시키는 기능은 제가 아는 한 없습니다. (그러니까 혹시 있을지도 모르겠습니다. ^^)
PL/SQL에서 사용하려면 스크립트 파일의 내용을 PL/SQL 프로시저로 별도로 생성한 다음 해당 프로시저를 특정 조건에서 실행시키는 방향으로 하셔야 할 것입니다. 아니면 UTL_FILE 패키지를 이용하여 라인별로 읽어들여 EXECUTE IMMEDIATE나 DBMS_SQL 패키지를 활용하여 동적으로 실행시키는 방법을 쓰셔야 할 것입니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입