Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да изляза от скрипт в SQLPlus, когато възникне грешка и да се върна към подканата SQLPlus, без да прекъсвам връзката или да излизам от SQLPlus?

Намерих интересна идея тук, която, когато се комбинира с отговора на spencer7593, ще ми накара селективно извикване на подскрипт, на който мога да предам изходните стойности на PL/SQL. А именно:

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

Където skip.sql е празен текстов файл.
 

АКТУАЛИЗИРАНЕ: Преместих по-голямата част от това в RUN.SQL файл, където предавам булевата (0 или 1) като &1 , името на скрипта за извикване при успех като &2 , а след това всички други очаквани параметри, които да предадат на извикания скрипт. Така в крайна сметка изглежда нещо подобно:

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. В тригер на Oracle мога ли да присвоя ново и старо към променлива тип ред?

  2. Oracle DROP TABLE АКО СЪЩЕСТВУВА Алтернативи

  3. как да изпратите имейл чрез Pl/sql

  4. Функция ACOS() в Oracle

  5. как да проверите всички ограничения на таблица в oracle