sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo usar sql*plus en la secuencia de comandos de Windows para controlar el flujo?

Probablemente escribiría el script (o el condicional, según los requisitos) desde el llamado script.sql mismo.

Por ejemplo, el siguiente script.sql crea un archivo .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

Luego puede llamar a script.sql de otro archivo .bat así:

@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