ayuda con pl/sql

jaime
19 de Mayo del 2004
Reenvio un mensaje que postee en otra seccion del foro por error. espero que me podais ayudar.

Hola, estoy aprendiendo pl/sql y la verdad es que no se me da nada bien. El ejercicio que me han planteado es que introduzca en una tabla el nombre y la edad de los alummnos de mi clase y que los datos me los pidan por pantalla.

hago un bucle pero solo me pide una vez que introduzca datos y me llena la tabla 25 veces (alumnos en mi clase) con el mismo registro.

¿que puedo hacer?

Gracias por adelantado.

Nolo_G
19 de Mayo del 2004
Prueba pidiendo los datos dentro del bucle con un &.
for i=1 to 25
insert into TABLA(nombre,edad) values (&nombre, &edad)
endfor

Jaime
19 de Mayo del 2004
De esa forma hace lo que comentaba al principio, adjunto el codigo y el resultado:
CODIGO

--prueba del foro
DROP TABLE TABLA;
CREATE TABLE TABLA
(
NOMBRE VARCHAR2(20),
EDAD NUMBER
);
BEGIN
FOR i in 1..5 LOOP
insert into TABLA values (&NOMBRE, &EDAD);
END LOOP;
COMMIT;
END;
/
Como resultado nos pide por teclado solo una vez que introduzcamos datos, lo cual hacemos y nos copia 5 veces el mismo dato en la tabla dando como resultado esto:

SQL> START D:\FORO.TXT;

Tabla borrada.


Tabla creada.

Introduzca un valor para nombre: \'JAIME\'
Introduzca un valor para edad: 28
antiguo 3: insert into TABLA values (&NOMBRE, &EDAD);
nuevo 3: insert into TABLA values (\'JAIME\', 28);

Procedimiento PL/SQL terminado correctamente.

SQL> SELECT * FROM TABLA;

NOMBRE EDAD
-------------------- ----------
JAIME 28
JAIME 28
JAIME 28
JAIME 28
JAIME 28

Nolo_G
19 de Mayo del 2004
Intenta vaciar los datos despues de la orden insert, igual así al intentar hacer la inserción cunado vuelva
a pasar por el bucle y vea que son nulos te os vuelve a pedir. No se me ocure nada más.
Suerte.

JAIME
19 de Mayo del 2004
Gracias Nolo_G pero tampoco funciona. A ver si algun alma caritativa se apiada de mi y me da una solucion.

Un saludo