it-swarm.com.de

wie man zur Laufzeit Input vom Benutzer erhält

ich möchte Runtime-Input von Benutzern in Oracle 10g pl/sql-Blöcken nehmen (d. h. interaktive Kommunikation mit Benutzer).

declare
x number;
begin
x=&x;
end

dieser Code gibt einen Fehler als & kann nicht in Oracle 10g verwendet werden.

9
Ravindra Bagale

Um die Benutzereingabe zu lesen und in einer Variablen zu speichern, können Sie den sqlplus-Befehl ACCEPT verwenden. 

Accept <your variable> <variable type if needed [number|char|date]> Prompt 'message'

beispiel

accept x number Prompt 'Please enter something: '

Und dann können Sie die Variable x in einem PL/SQL-Block wie folgt verwenden: 

declare 
  a number;
begin
  a := &x;
end;
/

Mit einem Stichbeispiel arbeiten:

accept x char Prompt 'Please enter something: '

declare 
  a varchar2(10);
begin
  a := '&x';   -- for a substitution variable of char data type 
end;           -- to be treated as a character string it needs
/              -- to be enclosed with single quotation marks
18
Nick Krasnov
declare
a number;
b number;
begin
a:= :a;
b:= :b;
if a>b then
dbms_output.put_line('Large number is '||a);
else
dbms_output.put_line('Large number is '||b);
end if;
end;
0
Parag Sali

sie können dies auch versuchen und es wird funktionieren:

DECLARE
  a NUMBER;
  b NUMBER;
BEGIN
  a :=: a; --this will take input from user
  b :=: b;
  DBMS_OUTPUT.PUT_LINE('a = '|| a);
  DBMS_OUTPUT.PUT_LINE('b = '|| b);
END;
0
All Videos

Das liegt daran, dass Sie die folgende Zeile verwendet haben, um den falschen Wert zuzuweisen. 

x=&x;

In PL/SQL erfolgt die Zuweisung über folgendes.

:=

Ihr Code sollte also so sein.

    declare
    x number;
    begin
    x:=&x;
-- Below line will output the number you received as an input
    dbms_output.put_line(x);
    end;
    /
0
Dulith De Costa
`DECLARE
c_id customers.id%type := &c_id;
c_name customers.name%type;
c_add customers.address%type;
c_sal customers.salary%type;
a integer := &a`   

Hier c_id customers.id% type: = & c_id; Die Anweisung gibt die c_id mit dem bereits in der Tabelle definierten Typ ein und die Anweisung a integer: = & a gibt nur die Ganzzahl in der Variablen a ein. 

0
jaskirat singh