SQLPlus를 윈도우 배치파일을 이용하여 스크립트를 실행하는 예시 자료입니다.
이때 필요한 파일은 크게 2가지입니다.
1. 배치파일 => SQLPlus 접속 정보와 실행할 SQL파일 및 필요시 로그파일 경로를 담은 배치파일
2. SQL 스크립트 파일
sqlplus username/password@datasourcename @sqlFile.sql>logFile.log
예시 자료에 사용한 배치파일 내용은 다음과 같습니다. sqlplus를 실행하여 username/password@datasourcename로 접속한 다음에, sqlFile.sql을 실행하며 logFile.log에 기록을 남기도록 합니다.
sqlFile은 다음과 같이 익명 블록을 하나 설정하여 간단히 insert 해보도록 하였습니다. 블록을 사용하지 않고 바로 insert 구문을 적으셔도 됩니다. PL/SQL도 가능하다는 것을 위해 임의로 추가한 것입니다.
DECLARE
l_c1 TABLENAME.C1%TYPE := '1';
BEGIN
INSERT INTO TABLENAME (C1)
VALUES (l_c1);
COMMIT;
END;
/
logFile에는 다음과 같은 로그가 기록되었습니다.
SQL*Plus: Release 0.0.0.0.0 - Production on D 0월 00 00:00:00 0000
Copyright (c) 0000, 0000, Oracle. All Rights Reserved.
다음에 접속됨:
Oracle Database Release 0.0.0.0.0 - 64bit Production
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL>
테이블을 조회해 보았을 때 상기의 SQL 스크립트가 정상적으로 적용이 되어 컬럼이 '1'인 레코드가 인서트 되었음을 확인하였습니다.
SELECT * FROM TABLENAME;
SQLPlus batch script example
사용법 1: sqlplus -H | -V
-H SQL*Plus 버전과 사용법 도움말을
표시합니다.
-V SQL*Plus 버전을 표시합니다.
사용법 2: sqlplus [ [<option>] [<logon>] [<start>] ]
<option> : [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]
-C <version> 영향을 받는 명령의 호환성을
<version>에 의해 지정된 버전으로 설정합니다.
해당 버전의 형식은 "x.y[.z]"입니다(예: -C 10.2.0).
-L 오류에 대한 메시지를 다시 표시하는 대신
한 번만 로그온을 시도합니다.
-M "<options>" 출력의 자동 HTML 마크업을 설정합니다.
옵션의 형식은 다음과 같습니다.
HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text]
[ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
-R <level> 제한 모드를 설정하여 파일 시스템과
상호 작용하는 SQL*Plus 명령을 비활성화합니다.
레벨은 1, 2 또는 3일 수 있습니다. 가장 제한적인 모드는 -R 3이며
이 모드는 파일 시스템과 상호 작용하고 있는
모든 사용자 명령을 비활성화합니다.
-S SQL*Plus 배너의 표시, 프롬프트 및
명령 표시를 숨기는 자동 모드를
설정합니다.
<logon>: (<username>[/<password>][@<connect_identifier>] | /)
[AS SYSDBA | AS SYSOPER] | /NOLOG
데이터베이스 접속에 필요한 데이터베이스 계정 사용자 이름, 암호 및
접속 식별자를 지정합니다. 접속 식별자를 지정하지 않으면
SQL*Plus는 기본 데이터베이스에 접속합니다.
AS SYSDBA 및 AS SYSOPER 옵션은 데이터베이스 관리
권한입니다.
/NOLOG 옵션은 데이터베이스에 접속하지 않고 SQL*Plus를
시작합니다.
<start>: @<URL>|<filename>[.<ext>] [<parameter> ...]
웹 서버(URL) 또는 스크립트의 대체 변수에 지정될
특정 매개변수를 가진 로컬 파일 시스템(filename.ext)에서
지정된 SQL*Plus 스크립트를 실행합니다.
SQL*Plus가 시작되면 CONNECT 명령 후
사이트 프로파일(예: $ORACLE_HOME/sqlplus/admin/glogin.sql) 및
사용자 프로파일(예: 작업 디렉토리의 login.sql)이 실행됩니다.
파일에 SQL*Plus 명령이 포함되어 있을 수 있습니다.
자세한 내용은 SQL*Plus User's Guide and Reference를 참조하십시오.