SQL * Plus에서 실행되는 SQL 문을 BAT 파일에 포함하는 방법

파일 수가 많은 것을 싫어합니다.


  • Oracle SQL * Plus를 배치 파일에서 실행할 때 SQL 문이 작성된 파일의 경로를 지정합니다.
    약간의 SQL을 실행하기 위해서 BAT 파일과 SQL 기술 파일의 2개를 준비하지 않으면 안됩니다
    유닉스 쉘 스크립트에서 히어 문서의 메커니즘을 활용하면 스크립트에 표준 입력 텍스트
    를 작성할 수 있기 때문에, 1 파일에 넣을 수 있습니다
  • 그래서 Windows 환경에서 배치 파일과 SQL 문을 하나의 파일로 만들 수 없다는 것

  • 기본 구조


  • 파일 이름 확장명은 .bat입니다.
    확장자를 .bat로 두 번 클릭하여 배치 파일로 시작합니다
  • SQLPLUS 명령 행 옵션으로 자신을 읽습니다.SQLPLUS @"%~f0"를 지정하면 자신을 SQL 파일로 실행합니다.
  • 배치 파일로 실행되는 부분은 SQL * Plus에 대해 무시할 수 있도록 주석 행이됩니다.
    SQL*Plus 입력 SQL에는 다음 주석 형식이 있습니다

  • · 선두에 REM 라고 기술하면(자), 그 행은 코멘트행이 됩니다
    · 줄의 중간에 --가 있으면 줄 끝까지 코멘트가됩니다.
    /**/ 에 둘러싸인 부분은 블록 코멘트가 됩니다

    반면에 배치 파일에서도 줄 머리 REM는 주석으로 처리됩니다.
    또한 ^가 줄 중간에 있으면 다음 줄도 함께 한 줄로 처리됩니다.

    이 구조를 이용하여 다음과 같은 구조로 만듭니다.

    sample.bat
      1 REM ^
      2 /*
      3 バッチコマンド行
      4 SQLPLUS @"%~f0"
      5 EXIT
      6 */
      7 SQL文
    

    배치 파일로서는, 1,2행째가 코멘트가 되므로, 3,4,5행과 순서로 실행해, 5행째의 EXIT로 종료합니다
    한편, SQLPLUS의 입력문으로서는, 1행째는 행 코멘트, 2~6행째까지는 블록 코멘트가 되므로, 7행째의 SQL이 실행됩니다

    실제 예



    이런 식으로 쓸 수 있습니다.

    ORA_SQLPLUS.BAT
    Rem ^
    /*
    @Echo Off
    Cls
    SET Path=%Path%;C:\Program Files\instantclient_12_2
    SET CONN=user/pass@hostname:1521/pdb1
    SET NLS_LANG=japanese_japan.ja16sjis
    sqlplus %CONN% @"%~f0"
    
    Pause
    Exit /b
    */
    -- ここから SQL*Plus で読み込む SQL
    DELETE FROM SAMPLE_TBL
     WHERE DEL_FLG = '1';
    COMMIT;
    EXIT
    

    실행 결과



    좋은 웹페이지 즐겨찾기