Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle plsql jika tidak ditemukan ulangi

Contoh di bawah ini akan segera memulai ulang unlock.sql ketika tidak ada kunci untuk proyek itu, dengan mendefinisikan ulang panggilan ke unlock.sql sebagai panggilan ke empty.sql setiap kali setidaknya satu baris dikembalikan.

set verify off

accept project prompt ' project : '

define doit = 'H:\Scripts\unlock.sql'
column doit new_value doit noprint
select 'H:\Scripts\empty.sql' as doit, locknr,description,couserid,ciuserid from dgdtw_lockedinfo where     
description = '&project' and ciuserid is null;
start &doit. 

accept lock prompt ' locknumber  : '

update dgdtw_lockedinfo set ciuserid = couserid where locknr = &lock;
update dgdtw_topografie set locknr = '' where locknr = &lock;
update dgdtw_topografie set verval=sysdate where id= &lock;
commit;

accept var prompt 'repeat process?  [Y/N] ? '
define doit = 'H:\Scripts\stop.sql'
column doit new_value doit noprint
set termout off
select 'H:\Scripts\unlock.sql' doit from dual where upper('&var') like 'Y%';
set termout on
start &doit. 

Sebagai peningkatan, saya sarankan untuk memindahkan pertanyaan berulang ke file SQL terpisah lalu panggil itu menggunakan argumen yang memberi tahu skrip mana yang harus dimulai ulang (lihat https://docs.Oracle.com/cd/B10501_01/server.920/a90842/ch13.htm#1013716 )

Misalnya, dari 'unlock.sql' panggil 'repeat.sql' seperti ini:

start 'repeat.sql' unlock

dengan repeat.sql seperti ini:

accept var prompt 'repeat &1 process?  [Y/N] ? '
define doit = 'H:\Scripts\stop.sql'
column doit new_value doit noprint
set termout off
select 'H:\Scripts\&1.sql' doit from dual where upper('&var') like 'Y%';
set termout on
start &doit. 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat tabel dengan batasan saat menarik data dari tabel lain?

  2. Instance Oracle yang disematkan atau dikelola untuk pengujian integrasi

  3. Bagaimana menjalankan skrip sql dari prosedur pl sql

  4. Bagaimana cara MEMILIH dari kolom tipe objek di Oracle 11g?

  5. mendapatkan kesalahan saat memasukkan beberapa baris di sql