web-dev-qa-db-fra.com

comment obtenir les commentaires de l'utilisateur au moment de l'exécution

je souhaite utiliser les entrées d’exécution des blocs Oracle 10g pl/sql (communication interactive avec l’utilisateur), est-ce possible?

declare
x number;
begin
x=&x;
end

ce code donne une erreur car & ne peut pas être utilisé dans Oracle 10g.

9
Ravindra Bagale

Pour lire l'entrée utilisateur et la stocker dans une variable, vous pouvez utiliser la commande sqlplus ACCEPT pour une utilisation ultérieure. 

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

exemple

accept x number Prompt 'Please enter something: '

Et vous pouvez ensuite utiliser la variable x dans un bloc PL/SQL comme suit: 

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

Travailler avec un exemple de piqûre:

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

En effet, vous avez utilisé la ligne suivante pour attribuer la valeur fausse. 

x=&x;

En PL/SQL, l’affectation se fait comme suit.

:=

Donc, votre code devrait être comme ça.

    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`   

Ici c_id customers.id% type: = & c_id; statement entre le c_id dont le type est déjà défini dans la table et statement un entier: = & a juste un entier dans la variable a 

0
jaskirat singh