hice un procedimiento y me crea la tabla pero no me guarda los datos.
este es el código:
Código SQL:
Ver original
CREATE 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;