Fórum Stored Procedures #26696
30/01/2007
0
Bom dia pessoal,
Estou migrando um banco SQL Server 2000 para o PostgreSQL 8 e estou tendo dificuldades para migrar as storeds procedures. Já procurei na documentação e na internet mas tudo que consegui descobrir é que não existem storeds procedures no postgre, mas que as functions deveriam suprir as necessidades de stored procedures, (me corrijam se estiver errado).
Bom, o problema é o seguinte: No SQL Server eu costumava criar procedures que executavam selects em conjuntos de tabelas, exemplo:
Bom, meu problema é exatamente esse, não estou conseguindo migrar uma simples procedure como essa. Ja tentei criar uma function retornando void, record, etc, mas nao consegui. Alguem tem alguma sugestão?
Desde já agradeço.
Estou migrando um banco SQL Server 2000 para o PostgreSQL 8 e estou tendo dificuldades para migrar as storeds procedures. Já procurei na documentação e na internet mas tudo que consegui descobrir é que não existem storeds procedures no postgre, mas que as functions deveriam suprir as necessidades de stored procedures, (me corrijam se estiver errado).
Bom, o problema é o seguinte: No SQL Server eu costumava criar procedures que executavam selects em conjuntos de tabelas, exemplo:
CREATE PROCEDURE UP_TESTE( @PARAM_01 INTEGER ) AS SELECT * FROM TABELA_01 A LEFT JOIN TABELA_02 B ON (A.ID_TABELA_01 = B.ID_TABELA_01) WHERE A.CAMPO_X = @PARAM_01
Bom, meu problema é exatamente esse, não estou conseguindo migrar uma simples procedure como essa. Ja tentei criar uma function retornando void, record, etc, mas nao consegui. Alguem tem alguma sugestão?
Desde já agradeço.
Virgulino
Curtir tópico
+ 0
Responder
Posts
12/04/2007
Ajfurtado
Virgulino, tente fazer desta forma:
CREATE FUNCTION UP_TESTE( PARAMETRO TIPO) RETURNS VARCHAR
´
AS
DECLARE
RESULTADO VARCHAR;
REG RECORD;
SELECT A.CAMPO1,A.CAMPO2....,A.CAMPON INTO REG
FROM TABELA_01 A, TABELA_02 B
WHERE (A.CAMPO_CHAVE=B.CAMPO_CHAVE) AND
(A.CAMPO_CHAVE = PARAMETRO)
RESULTADO := REG.CAMPO1 || ´´ - ´´|| REG.CAMPO2;
RETURN RESULTADO;
END;
´
LANGUAGE ´PLPGSQL´
ESPERO TER AJUDADO.
AILTON FURTADO
CREATE FUNCTION UP_TESTE( PARAMETRO TIPO) RETURNS VARCHAR
´
AS
DECLARE
RESULTADO VARCHAR;
REG RECORD;
SELECT A.CAMPO1,A.CAMPO2....,A.CAMPON INTO REG
FROM TABELA_01 A, TABELA_02 B
WHERE (A.CAMPO_CHAVE=B.CAMPO_CHAVE) AND
(A.CAMPO_CHAVE = PARAMETRO)
RESULTADO := REG.CAMPO1 || ´´ - ´´|| REG.CAMPO2;
RETURN RESULTADO;
END;
´
LANGUAGE ´PLPGSQL´
ESPERO TER AJUDADO.
AILTON FURTADO
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)