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.
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
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;
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;
/
`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