SoloCodigo
Bases de Datos => Oracle => Mensaje iniciado por: quickdunk en Martes 20 de Junio de 2006, 05:48
-
Necesito saber como hacer un insert en una tabla cualquiera con un procedimiento almacenado que realice el insert en cualquier tabla, es decir el mismo procedimiento almacenado para insertar en la tabla employees, jobs,departments, etc...
Gracias de antemano
-
usa sql dinamico para crear la sentencia de acuerdo aun parametro de entrada que se presume sera el nombre de la tabla.
-
ME GUSTARÍA SABER CUALES SON LAS SENTENCIAS DE SQL DINAMICO Y PARA QUE SIRVEN.
-
:rolleyes:
Bueno no puedo desde luego extenderme tanto poruw seria un curso de PL/SQL.
Pero a grandes razgos las sentencias que conozco son:
EXECUTE IMMEDIATE
y el package
DBMS_SLQ
Para que sirven... pues no se como explicarlo mejor... para ejecutar SQL DINAMICO, es decir a veces necesitas crear una sentencia SQL pero no sabes como queda sino en el momento de la ejecucion del programa, asi que durante el programa tu creas una cadena de texto sql o pl/sql de acuerdo a lo que vallas necesitando, y luego para ejecutarla invocas uno de estos dos procedimientos.
Un ejemplo muy básico ( y poco funcional)seria:
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->CREATE OR REPLACE PROCEDURE MiProcedure( nombreTable VARCHAR2,nombreColumna VARCHAR2 )
IS
cadena VARCHAR2;
BEGIN cadena := '[color=blue;font-weight]DELETE '[/color]||nombreTable
||' WHERE '||nombreColumna ||' IS NULL';
EXECUTE IMMEDIATE cadena;
END; <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->