Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann man Benutzereingaben mit pl/sql akzeptieren?

Wie andere gesagt haben, ist PL/SQL allein für diese Aufgabe nicht geeignet, Sie benötigen eine Benutzeroberfläche, um mit dem Endbenutzer zu interagieren. Wenn Sie dies jedoch in SQL Plus unbedingt tun müssen, können Sie die Technik verwenden, die ich in diese SO-Frage .

Sie müssen 2 SQL Plus-Skripte erstellen:

1) Ein Skript zum Ausführen einer einzelnen Einfügung, hier script_insert.sql genannt:

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

2) Ein Skript zur Steuerung des Prozesses, hier main.sql genannt:

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.

Jetzt können Sie es in SQL Plus wie folgt ausführen:

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

Lassen Sie mich wiederholen, dass dies demonstriert, dass dies möglich ist. Ich würde nicht behaupten, dass es eine gute Möglichkeit zur Implementierung der Anforderung ist - es sei denn, es handelt sich nur um ein Ad-hoc-Tool, das von einem DBA oder Entwickler verwendet werden kann. Ich würde niemals einen Endbenutzer geben SQL Plus als UI!