sql >> データベース >  >> RDS >> Oracle

Windowsコマンドスクリプトでsql*plusを使用してフローを制御するにはどうすればよいですか?

    呼び出されたscript.sqlからスクリプト(または要件によっては条件付き)を作成する可能性があります

    たとえば、次のscript.sql .batファイルを作成します windows_commands.bat

    set feedback off
    set echo off
    set trimspool on
    set termout off
    set serveroutput on size 100000 format wrapped
    set lines 500
    set pages 0
    
    -- create the bat file to be executed later:
    spool windows_commands.bat
    
    declare
      c number;
    begin
    
      select count(*) into c from dual;
    
      -- depending on a conditional, write the stuff to be executed into the
      -- bat file (windows_commands.bat)
      if c = 1 then
         dbms_output.put_line('@echo everthing ok with dual');
      else
         dbms_output.put_line('@echo something terribly wrong with dual');
      end if;
    
    end;
    /
    
    spool off
    
    exit
    

    その後、script.sqlを呼び出すことができます さらに別の.batファイルから そのように:

    @rem create oracle session, call script.sql
    sqlplus %user%/%password%@%db% @script.sql
    
    @rem script.sql has created windows_commands.bat.
    @rem call this newly created bat file:
    call windows_commands.bat
    


    1. RAC OneNodeアーキテクチャでのActiveDataGuardフィジカルスタンバイの設定–パート1

    2. すべてのストアドプロシージャを一覧表示するクエリ

    3. SQLiteデータベースをバックアップする

    4. Access2016でオブジェクトの依存関係を表示する方法