Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Ejecutar consulta como cadena a procedimiento almacenado

Estas en el tema de Ejecutar consulta como cadena a procedimiento almacenado en el foro de PostgreSQL en Foros del Web. Hola amigos Tengo una interrogante y quisiera que me ayuden a resolverla ¿ Cómo puedo ejecutar una CONSULTA que viene como CADENA a un Procedimiento ...
  #1 (permalink)  
Antiguo 05/08/2010, 08:40
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 0
Ejecutar consulta como cadena a procedimiento almacenado

Hola amigos

Tengo una interrogante y quisiera que me ayuden a resolverla

¿ Cómo puedo ejecutar una CONSULTA que viene como CADENA a un Procedimiento Almacenado ?

Les agradeceré de antemano con algún Tutorial o Link gratuitos o ejemplos que puedan facilitarme

Saludos.
  #2 (permalink)  
Antiguo 05/08/2010, 09:01
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ejecutar consulta como cadena a procedimiento almacenado

Con un ejemplo
Código SQL:
Ver original
  1. pruebas=> CREATE TABLE tabla(id INTEGER);
  2. CREATE TABLE
  3.  
  4. pruebas=> CREATE OR REPLACE FUNCTION insertar(INTEGER)
  5. pruebas->   RETURNS text AS
  6. pruebas-> $BODY$
  7. pruebas$> DECLARE
  8. pruebas$> i INTEGER;
  9. pruebas$> stmnt  text;
  10. pruebas$> inser text;
  11. pruebas$> BEGIN
  12. pruebas$> stmnt = 'insert into tabla values(' || $1 || ')';
  13. pruebas$> EXECUTE stmnt;
  14. pruebas$> RETURN 'INSERTO';
  15. pruebas$> END; $BODY$
  16. pruebas->   LANGUAGE 'plpgsql' VOLATILE;
  17. CREATE FUNCTION
  18. pruebas=> SELECT *FROM tabla;
  19. PRUEBAS
  20.  id
  21. ----
  22. (0 filas)
  23.  
  24. pruebas=> SELECT insertar(500);
  25.  PRUEBAS
  26.  insertar
  27. ----------
  28.  INSERTO
  29. (1 fila)
  30.  
  31. pruebas=> SELECT *FROM tabla;
  32. PRUEBAS
  33.  id
  34. -----
  35.  500
  36. (1 fila)
  37.  
  38. pruebas=> CREATE OR REPLACE FUNCTION insertar1(text)
  39. pruebas->   RETURNS text AS
  40. pruebas-> $BODY$
  41. pruebas$> BEGIN
  42. pruebas$> EXECUTE $1;
  43. pruebas$> RETURN 'INSERTO';
  44. pruebas$> END; $BODY$
  45. pruebas->   LANGUAGE 'plpgsql' VOLATILE;
  46. CREATE FUNCTION
  47. pruebas=> SELECT insertar1('INSERT INTO tabla VALUES(800)');
  48.   PRUEBAS
  49.  insertar1
  50. -----------
  51.  INSERTO
  52. (1 fila)
  53.  
  54. pruebas=> SELECT *FROM tabla;
  55. PRUEBAS
  56.  id
  57. -----
  58.  500
  59.  800
  60. (2 filas)

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: ejecutar, procedimiento, almacenar, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:58.