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 originalCREATE OR REPLACE PROCEDURE CREATABLAMENORSAN(E_EDAD INT) IS
CURSOR C_ESMENOR IS SELECT IDPER, IDCOM, NOMBRES,APELLIDOS, RUT, EDAD, SEXO, COMUNA, REGION, TEL, MAIL
FROM TINSCRITOS WHERE COMUNA= 'SANTIAGO';
V_IDPER NUMBER(3);
V_IDCOM NUMBER;
V_NOMBRES VARCHAR(30);
V_APELLIDOS VARCHAR(30);
V_RUT VARCHAR(10);
V_EDAD INT;
V_SEXO VARCHAR(1);
V_COMUNA VARCHAR(25);
V_REGION VARCHAR(85);
V_TEL VARCHAR(10);
V_MAIL VARCHAR(35);
I_SACA VARCHAR(300);
I_CREA VARCHAR(300);
BEGIN
I_CREA := 'CREATE TABLE TSANTIAGOMENOR(V_IDPER NUMBER(3), V_IDCOM NUMBER, V_NOMBRES VARCHAR(30),
V_APELLIDOS VARCHAR(30), V_RUT VARCHAR(10), V_EDAD INT,
V_SEXO VARCHAR(1), V_COMUNA VARCHAR(25), V_REGION VARCHAR(85),
V_TEL VARCHAR(10), V_MAIL VARCHAR(35))';
EXECUTE IMMEDIATE I_CREA;
OPEN C_ESMENOR;
LOOP
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;
EXIT WHEN C_ESMENOR%NOTFOUND;
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) ;
I_SACA := 'INSERT INTO TSANTIAGOMENOR VALUES('||V_IDPER||', '||V_IDCOM||', '||V_NOMBRES||',
'||V_APELLIDOS||', '||V_RUT||', '||V_EDAD||',
'||V_SEXO||','||V_COMUNA||', '||V_REGION||',
'||V_TEL||', '||V_MAIL||')';
DBMS_OUTPUT.PUT_LINE(I_SACA);
IF (V_EDAD < E_EDAD) THEN
EXECUTE IMMEDIATE I_SACA;
END IF;
END LOOP;
END;