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!