Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

làm thế nào để lặp lại việc chấp nhận đầu vào của người dùng với pl / sql?

Như những người khác đã nói, chỉ riêng PL / SQL là không phù hợp cho tác vụ này, bạn cần có giao diện người dùng trên cùng để tương tác với người dùng cuối. Tuy nhiên, nếu bạn thực sự có nhu cầu thực hiện việc này trong SQL Plus, bạn có thể sử dụng kỹ thuật mà tôi đã mô tả trong câu hỏi SO này .

Bạn cần tạo 2 tập lệnh SQL Plus:

1) Một tập lệnh để thực hiện một lần chèn, ở đây được gọi là script_insert.sql:

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

2) Một tập lệnh để kiểm soát quá trình, ở đây được gọi là 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.

Bây giờ trong SQL Plus, bạn có thể chạy nó như thế này:

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

Hãy để tôi nhắc lại rằng điều này chứng tỏ nó có thể được thực hiện, tôi sẽ không tuyên bố đó là một cách tốt để thực hiện yêu cầu - trừ khi nó chỉ là một công cụ đặc biệt được sử dụng bởi DBA hoặc nhà phát triển. Tôi sẽ không bao giờ cung cấp cho một người dùng cuối SQL Plus dưới dạng giao diện người dùng!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi sang datetime từ Oracle

  2. Giao dịch tự động trong Sybase ASE 15.5

  3. Cú pháp để đánh giá lười biếng tùy chỉnh / đoản mạch các tham số chức năng

  4. Sao lưu cơ sở dữ liệu Oracle:Loại chiến lược sao lưu và dự phòng

  5. Con trỏ trong thủ tục trả về nhiều giá trị hơn truy vấn