Romeu <[EMAIL PROTECTED]> escreveu:
Senhores, estou fazendo as minhas conversões de sp do sql para o Postgresql, li algum material a respeito e tive algumas duvidas, sei que algumas são bem básicas e são encontradas na documentação oficial da PostgreSQL que andei lendo a respeito , mas gostaria que tivesse um pouco de paciência  para sanar algumas duvidas :)

Você não especificou qual versão está utilizando. Vou assumir 8.1

 
vamo la :
Pergunta 1:
 
Quando crio uma Function , e declaro os campos de entrada
 
CREATE OR REPLACE FUNCTION public.UPSINTETICA
(INT,INT,INT,INT,INT,INT,VARCHAR(15),DECIMAL(15,2),INT,INT,INT,INT)
  RETURNS "trigger" AS
não consigo colocar quais serão meus parametros de entrada ??
Somente coloco o tipo de dado e acesso ele por $1,$2,$3 etc... na minha
Function, seria isto??

Você tem duas maneiras de especificar um alias para os parâmetros:
. no próprio CREATE FUNCTION:
CREATE FUNCTION foo(a INT, b VARCHAR)...
. na área DECLARE:
CREATE FUNCTION foo(INT, VARCHAR)...
DECLARE
    a  ALIAS FOR $1;
    b  ALIAS FOR $2;
BEGIN...

Veja:
http://www.postgresql.org/docs/8.1/interactive/plpgsql-declarations.html#PLPGSQL-DECLARATION-ALIASES

Pergunta 2:
Na declaração de variavel, eu simplesmente delcaro elas,não teria nenhum caracter especial para diferencia-las na hora de setar um valor para ela ou simplesmente ele respeita a ordem de declaraçao ou seja a esquerda do = é a minha variavel e a direita do = é o valor que vai ser assumido por ela.
DECLARE
  DigNivel1Plano   INT,
   DigNivel2Plano   INT,
   DigNivel3Plano   INT
...
SELECT DigNivel1Plano = DigNivel1Plano,
            DigNivel2Plano = DigNivel2Plano,
            DigNivel3Plano = DigNivel3Plano
FROM EmpreCTB
 
Nunca vi este tipo de sintaxe. Talvez você deseje o SELECT INTO.
Veja:
http://www.postgresql.org/docs/8.1/interactive/plpgsql-statements.html#PLPGSQL-SELECT-INTO

Pergunta 3
O PostgreSQL não aceita cláusula
IF....
ELSE..
Só por duivda mesmo  o
 CASE ... WHEN ... THEN ...
Resolve o meu problema :)


Dentro de um SELECT não aceita, neste caso utilize o CASE (http://www.postgresql.org/docs/8.1/interactive/functions-conditional.html)
mas como você estava falando de functions veja:
http://www.postgresql.org/docs/8.1/interactive/plpgsql-control-structures.html#PLPGSQL-CONDITIONALS


[]s
Osvaldo


Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a