Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2015, 19:48
vdiazb
 
Fecha de Ingreso: junio-2015
Mensajes: 1
Antigüedad: 8 años, 10 meses
Puntos: 0
Procedimiento pl sql auida

Hola a todos, espero me puedan ayudar, estoy empezando con pl sql y tengo que hacer un procedimiento que saque datos de una tabla ya creada, cree otra tabla y guarde los datos sacados en la nueva tabla.
hice un procedimiento y me crea la tabla pero no me guarda los datos.
este es el código:

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE CREATABLAMENORSAN(E_EDAD INT) IS
  2.     CURSOR C_ESMENOR IS SELECT  IDPER, IDCOM, NOMBRES,APELLIDOS, RUT, EDAD, SEXO, COMUNA, REGION, TEL, MAIL
  3.             FROM TINSCRITOS WHERE COMUNA= 'SANTIAGO';
  4.             V_IDPER NUMBER(3);
  5.             V_IDCOM NUMBER;
  6.             V_NOMBRES VARCHAR(30);
  7.             V_APELLIDOS VARCHAR(30);
  8.             V_RUT VARCHAR(10);
  9.             V_EDAD INT;
  10.             V_SEXO VARCHAR(1);
  11.             V_COMUNA VARCHAR(25);
  12.             V_REGION VARCHAR(85);
  13.             V_TEL VARCHAR(10);
  14.             V_MAIL VARCHAR(35);
  15.             I_SACA VARCHAR(300);
  16.                         I_CREA VARCHAR(300);
  17.  
  18. BEGIN
  19.  
  20.     I_CREA := 'CREATE TABLE TSANTIAGOMENOR(V_IDPER NUMBER(3), V_IDCOM NUMBER, V_NOMBRES VARCHAR(30),
  21.                                            V_APELLIDOS VARCHAR(30), V_RUT VARCHAR(10), V_EDAD INT,
  22.                                            V_SEXO VARCHAR(1), V_COMUNA VARCHAR(25), V_REGION VARCHAR(85),
  23.                                            V_TEL VARCHAR(10), V_MAIL VARCHAR(35))';
  24.        
  25.     EXECUTE IMMEDIATE I_CREA;
  26.     OPEN C_ESMENOR;
  27.     LOOP
  28.         FETCH C_ESMENOR INTO V_IDPER, V_IDCOM, V_NOMBRES, V_APELLIDOS, V_RUT, V_EDAD, V_SEXO, V_COMUNA, V_REGION, V_TEL, V_MAIL;  
  29.         EXIT WHEN C_ESMENOR%NOTFOUND;
  30.         DBMS_OUTPUT.PUT_LINE(V_IDPER||' '||V_IDCOM||' '||V_NOMBRES||' '||V_APELLIDOS||' '||V_RUT||' '||V_EDAD||' '||V_SEXO||' '||V_COMUNA||' '||V_REGION||' '||V_TEL||' '||V_MAIL) ;
  31.         I_SACA := 'INSERT INTO TSANTIAGOMENOR VALUES('||V_IDPER||', '||V_IDCOM||', '||V_NOMBRES||',
  32.                        '||V_APELLIDOS||', '||V_RUT||', '||V_EDAD||',
  33.                        '||V_SEXO||','||V_COMUNA||', '||V_REGION||',
  34.                        '||V_TEL||', '||V_MAIL||')';
  35.         DBMS_OUTPUT.PUT_LINE(I_SACA);
  36.         IF (V_EDAD < E_EDAD) THEN
  37.                  EXECUTE IMMEDIATE I_SACA;
  38.         END IF;
  39.     END LOOP;
  40. END;