Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wyjść ze skryptu w SQLPlus, gdy wystąpi błąd i powrócić do monitu SQLPlus, bez rozłączania się lub zamykania SQLPlus?

Znalazłem tutaj ciekawy pomysł, który w połączeniu z odpowiedzią spencer7593 pozwoli mi na selektywne wywołanie indeksu dolnego, do którego mogę przekazać wartości wyjściowe PL/SQL. To znaczy:

VAR continue number;
EXEC :continue := 1;
BEGIN
   SELECT some_bool_test() INTO :continue FROM dual;
END;

SET termout OFF
COLUMN script_name NEW_VALUE v_script_name
SELECT decode(:continue, 1, 'run_stuff.sql', 'skip.sql') script_name FROM dual;
SET termout ON

@&v_script_name :some_other_values

Gdzie skip.sql to pusty plik tekstowy.
 

AKTUALIZACJA: Przeniosłem większość tego do RUN.SQL plik, w którym przekazuję wartość logiczną (0 lub 1) jako &1 , nazwa skryptu do wywołania w przypadku powodzenia jako &2 , a następnie wszelkie inne oczekiwane parametry do przekazania do wywoływanego skryptu. W rezultacie wygląda to mniej więcej tak:

VAR continue number;
EXEC :continue := 1;
BEGIN
   SELECT some_bool_test() INTO :continue FROM dual;
END;

@run.sql :continue 'run_stuff.sql' :some_other_values


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Składnia Oracle SQL:cytowany identyfikator

  2. Jak wybrać tylko 1 wiersz z Oracle sql?

  3. Zmiana precyzji kolumny numerycznej w Oracle

  4. Funkcje Oracle Analytic — resetowanie klauzuli okienkowej

  5. Odzyskiwanie bazy danych Oracle