sql >> Databáze >  >> RDS >> Oracle

Jak ukončím skript v SQLPlus, když dojde k chybě, a vrátím se na výzvu SQLPlus, aniž bych musel SQLPlus odpojit nebo ukončit?

Našel jsem zde zajímavý nápad, který mi v kombinaci s odpovědí spencer7593 získá selektivní volání dílčího skriptu, kterému mohu předat výstupní hodnoty PL/SQL. Pro vtip:

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

Kde skip.sql je prázdný textový soubor.
 

AKTUALIZACE: Většinu z toho jsem přesunul do RUN.SQL soubor, kam předám boolean (0 nebo 1) jako &1 , název skriptu, který má vyvolat úspěch, jako &2 a poté jakékoli další očekávané parametry, které se předají volanému skriptu. Takže to nakonec vypadá nějak takto:

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. Jsou v MySQL povoleny vnořené transakce?

  2. Přesunutí tabulky serveru SQL do jiné skupiny souborů

  3. Android přístup ke vzdálené SQL databázi

  4. Jak nakonfigurovat Tomcat pro připojení k MySQL