--------------------------------------------------
From: "keyser soze" <[EMAIL PROTECTED]>
Sent: Friday, October 17, 2008 4:29 PM
To: <pgsql-es-ayuda@postgresql.org>
Subject: Re: [pgsql-es-ayuda] existen stored procedures?
gracias silvio
"Silvio Quadri" <[EMAIL PROTECTED]> escribió en el mensaje
news:[EMAIL PROTECTED]
2008/10/17 keyser soze <[EMAIL PROTECTED]>
hola
soy nuevo en Postgres
vengo del ámbito de MS-SQL y Oracle
en ellos existen los Stored Procedures (Procedimientos Almacenados)
cuyas ventajas son:
1) agrupar varias operaciones (Ins,Upd,Del) bajo un solo procedimiento
--en forma procedural, claro--
2) "pre-compilar" ese procedimiento, es decir, no hace falta para el
motor
reconstruir el plan de ejecución
por lo que estuve viendo, en Postgres solo puedo crear "funciones"
y si quiero que el lote devuelto sea indeterminado
debo retornar el tipo "record"
pero más que nada quisiera saber cómo hacer para :
1) devolver varios lotes a la vez
2) o realizar por ej, varios inserts bajo un mismo procedimiento
apreciaré sus comentarios
muchas gracias
atte,
KS
Tenés lenguajes embebidos para tirar para arriba, entre ellos el plpgsql.
Hasta podés escribir en C o generarte tu propio lenguaje.
http://www.google.com/search?q=postgresql+stored+procedures
http://www.postgresql.org/docs/8.3/interactive/xplang.html
1) No sé a qué te referís con "devolver varios lotes" ... un SP puede
volver
un set de datos, pero no varios "result sets"
Para aquellos que programamos en .NET es muy común el uso de DATASETs. Que
no es una "versión" desconectada de algo similar a una Base de datos (en
memoria) con sus tablas, PK, FK, etc... precisamente devolver varias tablas
en un SP encaja perfectamente con los datasets.
Uno de los problemas más complicados que he tenido para migrar SPs de MSSQL
a funciones de postgresql es que las funciones devuelven un único conjunto
de datos mientras que los SP de MSQL pueden devolver varios ... esto ha
generado modificar la lógica de los programas ;-(
Atentamente,
RAUL DUQUE
Bogotá, Colomia
2) Mirá los ejemplos de cada lenguaje.
Silvio
---
avast! Antivirus: Inbound message clean.
Virus Database (VPS): 081016-0, 16/10/2008
Tested on: 17/10/2008 11:29:16 a.m.
avast! - copyright (c) 1988-2008 ALWIL Software.
http://www.avast.com
---
avast! Antivirus: Outbound message clean.
Virus Database (VPS): 081016-0, 16/10/2008
Tested on: 17/10/2008 11:29:50 a.m.
avast! - copyright (c) 1988-2008 ALWIL Software.
http://www.avast.com
--
TIP 4: No hagas 'kill -9' a postmaster
__________ Information from ESET Smart Security, version of virus
signature database 3533 (20081017) __________
The message was checked by ESET Smart Security.
http://www.eset.com
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])