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

bagaimana cara mengulang menerima input pengguna dengan pl/sql?

Seperti yang dikatakan orang lain, PL/SQL saja tidak cocok untuk tugas ini, Anda memerlukan UI di atas untuk berinteraksi dengan pengguna akhir. Namun, jika Anda benar-benar perlu melakukan ini di SQL Plus, dimungkinkan menggunakan teknik yang saya jelaskan di pertanyaan SO ini .

Anda perlu membuat 2 skrip SQL Plus:

1) Sebuah skrip untuk melakukan penyisipan tunggal, di sini disebut script_insert.sql:

insert into t1 values ('&1.');
@main

2) Sebuah skrip untuk mengontrol proses, di sini disebut main.sql:

accept selection prompt "Please enter value, enter 'done' when no more values: "

set term off verify off

column script new_value v_script

select case '&selection.'
       when 'done' then ''
       else '@script_insert &selection.'
       end as script
from dual;

set term on

@&v_script.

Sekarang di SQL Plus Anda dapat menjalankannya seperti ini:

SQL> select * from t1;

no rows selected

SQL> @main
Please enter value, enter 'done' when no more values: 1
Please enter value, enter 'done' when no more values: 2
Please enter value, enter 'done' when no more values: 3
Please enter value, enter 'done' when no more values: done
SQL> select * from t1;

        N1
----------
         1
         2
         3

Izinkan saya menegaskan kembali bahwa ini menunjukkan hal itu dapat dilakukan, saya tidak akan mengklaimnya sebagai cara yang baik untuk mengimplementasikan persyaratan - kecuali itu hanya alat ad hoc untuk digunakan oleh DBA atau pengembang. Saya tidak akan pernah memberikan pengguna akhir SQL Plus sebagai UI!



  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 Database Enforce CHECK pada beberapa tabel

  2. Cara Menggunakan Execute Immediate Dengan INTO Clause Di Oracle Database

  3. Cara mendapatkan string ke-n dalam kata atau kalimat umum apa pun dengan pembatas spasi

  4. Bagaimana tata bahasa PL/SQL yang disertakan dengan ANTLR4 dapat diuji?

  5. Masukkan gumpalan di database Oracle dengan C #