• Sábado 21 de Diciembre de 2024, 14:45

Autor Tema:  Insert En Cualquier Tabla  (Leído 1937 veces)

quickdunk

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Insert En Cualquier Tabla
« en: Martes 20 de Junio de 2006, 05:48 »
0
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

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Insert En Cualquier Tabla
« Respuesta #1 en: Martes 20 de Junio de 2006, 05:54 »
0
usa sql dinamico para crear la sentencia de acuerdo aun parametro de entrada que se presume sera el nombre de la tabla.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

quickdunk

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Insert En Cualquier Tabla
« Respuesta #2 en: Miércoles 28 de Junio de 2006, 05:44 »
0
ME GUSTARÍA SABER CUALES SON LAS SENTENCIAS DE SQL DINAMICO Y PARA QUE SIRVEN.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Insert En Cualquier Tabla
« Respuesta #3 en: Miércoles 28 de Junio de 2006, 15:10 »
0
: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-->
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io