Então, dentro de uma procedure eu talvez precise executar uma série de comandos insert e update. No meu banco atual q tá em Sql Server eu simplesmente crio uma outra procedure com esses comandos e dou um "exec nome_procedure_2 param_1" para que a primeira procedure não contenha todo o código dentro dela.
Lendo sobre o PREPARE eu achei (ainda acho) que é o que eu preciso, mas não consigo chamar um PREPARE dentro de uma procedure para que execute esses comandos pra mim.
Estou pensando besteira em relação ao PREPARE. Não é assim que se usa ou tem um jeito específico de se chamar um conjunto de comandos "encapsulados"?
 
----- Original Message -----
Sent: Wednesday, May 24, 2006 3:03 PM
Subject: Re: [PostgreSQL-Brasil] Prepare e Execute

Joao <[EMAIL PROTECTED]> escreveu:
estou meu desatualizado em pl/pgsql
Falando grosseiramente....
 
utilize prepare quando vc quer executar uma procedure e nao interessa o retorno, o retorno e descartado

Isto é PERFORM e não PREPARE..
Do manual:
"O comando PREPARE cria um comando preparado. Um comando preparado é um objeto no lado servidor que pode ser usado para otimizar o desempenho. Quando o comando PREPARE é executado, o comando especificado é analisado, reescrito e planejado. Após isso, quando forem emitidos comandos EXECUTE o comando preparado precisa apenas ser executado. Assim os estágios de análise, reescrita e planejamento são realizados apenas uma vez, e não todas as vezes que o comando é executado."

execute e quando vc monta dinamicamente sua query ex: tipo vc tem o nome de uma tabela como parametro de uma procedure e quer efeturar uma query ai vc utiliza execute.
----- Original Message -----
Sent: Wednesday, May 24, 2006 2:08 PM
Subject: [PostgreSQL-Brasil] Prepare e Execute

Povo, gostaria me ajudassem em mais uma coisa.
Queria entender melhor o que é uma prepare.
Pelo que vi é tipo uma função pra executar um update, insert ou delete. Mas eu só posso ter dentro dela uma coisa só ou podem ser várias instruções?
Eu não consigo também executar uma prepare de dentro de uma procedure, dá erro. Exemplo:
...
if var_1 = 2 then
  execute nome_prepare(param_1)
end if;
...
 
Meu objetivo é dentro de uma procedure poder chamar alguma function ou outra coisa pra executar umas rotinas inserts e updates.
 
Engraçado eh q mandar executar isoladamente a prepare, num editor de script, funciona na boa.
 


A instrução EXECUTE do servidor não pode ser utilizada dentro das funções PL/pgSQL
(http://pgdocptbr.sourceforge.net/pg80/plpgsql.html) veja nota no final do item 35.1 Visão Geral.

[]s
Osvaldo


Abra sua conta no Yahoo! Mail - 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz.


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a