Pedir datos al usuario en PL/SQL

Hola a todos, hoy os voy a explicar como podemos pedir datos al usuario en PL/SQL.

En PL/SQL, también podemos pedir datos al usuario si así lo necesitamos, de la siguiente manera:


declare
  v_valor number(4) := &valor;
begin

  DBMS_OUTPUT.PUT_LINE('El valor introducido es ' || v_valor);

end;
/

En &valor, valor puede ser el nombre que queráis.

 

Al ejecutarlo, nos aparecerá una ventana así:

Y esto es el resultado, si escribimos un 5:

 

En el caso de que el valor pedido fuera una cadena, tenéis que ponerle comillas simples, sino os dará un error.

Por ultimo, no es necesario que se guarde en una variable, se puede poner directamente. Algo así:



begin

  DBMS_OUTPUT.PUT_LINE('El valor introducido es ' || &valor);

end;
/

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

4 comentarios

  1. Cristina

    Cuando lo ejecuto me sale un error de

    «ORA-06550: línea 2, columna 22: PLS-00103: Se ha encontrado el símbolo «&» cuando se esperaba uno de los siguientes: «»

    He probado a ponerle SET DEFINE OFF; antes del código pero no me reconoce el comando SET DEFINE OFF, dice que no es valido.

    Sabríais cuál es el problema, he buscado por mil sitios pero no encuentro solución.

    Gracias de antemano.
    Un saludo.

  2. Juan Manuel

    lo que estas leyendo es una cadena y deberías hacerlo entre comillas variable=’&leer’

  3. Andrés

    Buenas! Estoy liado con el tema de la variables. Mi problema, no es que muestre un valor númérico, sino que el bloque me pida el nombre y lo muestre. ¿Cómo lo hago?

  4. Sergio Lopez

    Yo tengo el mismo problema que Cristina, la cuestión es que ayer si me aparecía la ventana que pide el parámetro pero hoy me lanza el error que menciona Cristina y no se como solucionarlo, copio el propio texto de aquí arriba de la solución y me da el error «ORA-06550: línea 2, columna 22: PLS-00103: Se ha encontrado el símbolo «&» cuando se esperaba….».
    Ahora todo lo que sea pedir un parámetro no lo puedo hacer. A ver si alguien sabe como solucionarlo y me puede ayudar.
    Muchas gracias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *