2016-08-05 6 views
0

다음 코드가 포함 된 Alter_table.sql 이름의 .sql 파일이 있습니다.다른 SQL 파일에서 SQL 파일 실행

alter table mytable add newcolumn VARCHAR2(1); 

이 파일을 편집하고 스풀 명령을 추가하고 싶지 않습니다. 그러나 다른 파일 (execute_sql.sql)에 스풀을 작성하여 Alter_table.sql을 실행해야합니다. 올바른 구문이 확실하지 않습니다. 아무도 여기서 도와 줄 수 있니?

SET SERVEROUTPUT ON 
SET DEFINE OFF 
SPOOL Alter_Table_STD_SOURCE.log 

EXEC username/[email protected] `Alter_table.sql` 

SPOOL OFF; 
SET DEFINE ON 
SET SERVEROUTPUT OFF 
+0

어떻게 실행하고 있습니까?이 시점까지 이미 데이터베이스에 연결되어 있습니까? –

+0

나는 그 경로 (예 : c : \ Scripts)로 먼저 지시하는 명령 프롬프트를 사용한다. 그런 다음 sqlplus username/password @ database를 추천합니다. 그리고 나서 @ execute_sql.sql –

+0

OK를 누르면 이미 연결되어 있고 명시 적으로'connect'가없이 게리의 대답 ('exec' 대신)의'@Alter_table.sql' 부분 만 있으면됩니다. –

답변

1

(감사 알렉스 풀에) 먼저 연결해야

:-), 다음, '@'기호 또는 'START'명령을 사용하여 래퍼 스크립트에 .SQL 파일을 실행

... 
-- Connect if not already connected. 
CONNECT username/[email protected] 

@Alter_table.sql 

... 

로그인/비밀번호를 파일에 보관하는 것이 좋지만 보안을 고려해야합니다.

+1

'@ Alter_table.sql' 또는 ['start'] (https://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_five.htm#i1210918); 익명의 PL/SQL 블록의 줄임말 인'exec'가 아닙니다. –

+0

물론 감사합니다. 나는 나의 예를 바로 잡을 것이다. –