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

Jak przekazać kod powrotu ze skryptu Oracle z powrotem do skryptu WINDOWS Batch, który go wywołał?

Musisz zadeklarować obsługę warunków błędu przed wystąpieniem błędu:

Whenever sqlerror exit sql.sqlcode; 
DROP user MYUSER cascade;
EXIT 0;

Możesz zmienić obsługę w innym miejscu skryptu. Na przykład możesz wykonać upuszczenie ochronne przed utworzeniem, ignorując błąd podczas upuszczania, ale nadal zatrzymując się, jeśli następny krok się nie powiedzie:

whenever sqlerror continue
drop ...
whenever sqlerror exit failure
create...
alter...
etc

Nawiasem mówiąc, w systemie Unix to podejście jest ograniczone, ponieważ większość (wszystkie?) powłok ma ograniczony kod powrotu, a wyższe liczby zawijają się wokół; więc ORA-0918 zostanie zgłoszony jako 126, co uniemożliwi interpretację. Co ważniejsze, niektóre wartości zostaną zawinięte do zera, przez co wygląda na to, że nie wystąpił żaden błąd. Na szczęście nie masz tego problemu z %errorlevel%.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać dane z funkcji pl/sql, jeśli parametr ma więcej niż jedną wartość w funkcji z pojedynczymi parametrami?

  2. Nazwy Oracle TNS nie wyświetlają się podczas dodawania nowego połączenia do SQL Developer

  3. procedura oracle z przypadkiem To zależy od parametru

  4. Przekaż kontrolę do określonej linii za pomocą polecenia Goto Label w PLSQL

  5. Jak uzyskać milisekundy znacznika czasu od 1970 UTC w Oracle SQL?