2012-09-20 24 views

Respuesta

16

Para leer la entrada del usuario y almacenarla en una variable, para su uso posterior, puede usar el comando sqlplus ACCEPT.

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

ejemplo

accept x number prompt 'Please enter something: ' 

Y a continuación, puede utilizar la variable x en un bloque PL/SQL de la siguiente manera:

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

: sir he probado este código, se da siguiente error: ORA-00900: instrucción SQL no válida –

+0

señor es posible tomar de entrada directamente, sin necesidad de utilizar SQLPLUS. –

+0

lo estoy ejecutando en Oracle Express 10g database express edition.no en sqlplus –

-7

su muy simple

acaba de escribir:

// En primer lugar crear tabla denominada prueba ....

create table test (name varchar2(10),age number(5)); 

// cuando se ejecuta el código anterior se creará una mesa ....

// ahora hay que insertar un nombre & una edad ..

Asegúrese de edad se inserta a través de la apertura de una forma que busca nuestra ayuda para introducir el valor en ella

insert into test values('Deepak', :age); 

// ahora ejecutar el código anterior y se le obtener "1 fila insertada" de salida ...

/ahora ejecutar la consulta de selección para ver la salida

select * from test; 

// eso es todo ..Now Creo que nadie tiene cualquier duda sobre la aceptación de la izquierda un usuario de datos ...

+0

Utilice el código de formato o el código de elemento en línea para hacer sus mensajes más legible. –

-4

probar este

declare 
    a number; 
begin 
    a := :a; 
dbms_output.put_line('Inputed Number is >> '|| a); 
end; 
/ 

OR 

declare 
    a number; 
begin 
    a := :x; 
dbms_output.put_line('Inputed Number is >> '|| a); 
end; 
/
0

Eso se debe a que ha usado siguiente línea para asignar el valor que está mal.

x=&x; 

En PL/SQL la asignación se realiza mediante el siguiente.

:=

Así que el código debe ser así.

declare 
    x number; 
    begin 
    x:=&x; 
-- Below line will output the number you received as an input 
    dbms_output.put_line(x); 
    end; 
    /
0
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

podría explicar cómo funciona esto? Tenga en cuenta que la pregunta fue publicada hace 5 años, tiene una respuesta aceptada y bien votada con pocas líneas, por lo que publicar un enfoque más extenso después de todo este tiempo debería requerir algún tipo de comentario sobre cómo está mejorando las respuestas existentes. – fedorqui

Cuestiones relacionadas