View Full Version : [PostGreSql 8.1]Ma.. le stored procedure?
RaouL_BennetH
04-11-2008, 10:11
Ciao a tutti :)
Sto cercando invano ( o forse nel posto sbagliato) documentazione in merito alle stored procedure.
Tutto ciò che ho trovato sul sito ufficiale è un riferimento alla creazione di funzioni.
Avreste da passarmi qualcosa dato che purtroppo non ho a disposizione una buona connessione e le ricerche in internet stamattina sono penose e snervanti?
Grazie mille :)
RaouL.
Primo risultato cercando "postgresql stored procedure" su google:
http://www.postgresql.org/docs/8.0/interactive/plpgsql.html
RaouL_BennetH
04-11-2008, 12:45
Primo risultato cercando "postgresql stored procedure" su google:
http://www.postgresql.org/docs/8.0/interactive/plpgsql.html
Si, quello che avevo trovato anche io dove si parla appunto di funzioni.
Deduco quindi che siano la stessa cosa (funzioni/stored procedure) per postgresql ?
Grazie mille :)
RaouL.
Boh, ho dato una letta veloce alla documentazione...sembra non ci siano differenziate funzioni e procedure (cosi come invece lo sono in pl/sql)... in postgresql sembra basti creare una funzione che ritorna 'void' se vuoi simulare il comportamento della classica procedura pl/sql...
RaouL_BennetH
05-11-2008, 12:48
Qualcuno sarebbe in grado di fornirmi un esempio per generare una funzione che inserisca semplicemente dei valori in una tabella?
Grazie mille :)
RaouL.
RaouL_BennetH
05-11-2008, 15:54
ok..
sono riuscito a fare:
CREATE OR REPLACE FUNCTION insert_anagrafica(p1 varchar, p2 varchar, p3 date) RETURNS VOID AS $$
DECLARE
temp_cognome ALIAS FOR $1;
temp_nome ALIAS FOR $2;
temp_dataNascita ALIAS FOR $3;
BEGIN
INSERT INTO anagrafica(cognome, nome, dataNascita)
VALUES
(temp_cognome, temp_nome, temp_dataNascita);
END;
$$
LANGUAGE plpgsql;
Funziona correttamente.
.. però..
alla tabella anagrafica è relazionata un'altra tabella: per es.: numeri_telefono
sulla pk di anagrafica (id_persona).
Chiedo quindi.. è possibile fare delle insert multiple all'interno di una stored procedure oppure devo usare le transazioni?
O .. ancora: è possibile usare transazioni all'interno di stored procedure?
Grazie mille :)
RaouL.
cdimauro
05-11-2008, 21:49
Certo che MySQL e PostgreSQL fanno proprio a gara per la sintassi più schifosa da usare per le stored procedure...
ok..
sono riuscito a fare:
CREATE OR REPLACE FUNCTION insert_anagrafica(p1 varchar, p2 varchar, p3 date) RETURNS VOID AS $$
DECLARE
temp_cognome ALIAS FOR $1;
temp_nome ALIAS FOR $2;
temp_dataNascita ALIAS FOR $3;
BEGIN
INSERT INTO anagrafica(cognome, nome, dataNascita)
VALUES
(temp_cognome, temp_nome, temp_dataNascita);
END;
$$
LANGUAGE plpgsql;
Funziona correttamente.
.. però..
alla tabella anagrafica è relazionata un'altra tabella: per es.: numeri_telefono
sulla pk di anagrafica (id_persona).
Chiedo quindi.. è possibile fare delle insert multiple all'interno di una stored procedure oppure devo usare le transazioni?
Puoi farlo.
O .. ancora: è possibile usare transazioni all'interno di stored procedure?
Grazie mille :)
RaouL.
L'esecuzione delle istruzioni di una S.P. avviene sempre dentro una transazione.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.