Migrar SP de Firebird para Oracle
28/02/2008
0
estou comecando agora no oracle, antes usuava firebird, tenho uma procedure feita em firebird que preciso migrar para oracle fiz algumas correcoes mais ainda não esta funcionando, segue abaixo o codigo:
create or replace PROCEDURE "LISTA_LUGAR" ( "PCEP" IN VARCHAR2, "PESTADO" OUT VARCHAR2, "PCIDADE" OUT VARCHAR2, "PBAIRRO" OUT VARCHAR2, "PENDERECO" OUT VARCHAR2, "PCEPS" OUT VARCHAR2, "PCOMPLEMENTO" OUT VARCHAR ) AS begin select a.uf_sigla, b.cidade_descricao, c.bairro_descricao, d.endereco_logradouro, d.endereco_cep, d.endereco_complemento from uf a,cidade b, bairro c, endereco d where (a.uf_codigo = b.uf_codigo) and (b.cidade_codigo = c.cidade_codigo) and (c.bairro_codigo = d.bairro_codigo) and (d.endereco_cep = pcep) order by c.bairro_descricao,d.endereco_logradouro,d.endereco_cep into pestado,pcidade,pbairro,pendereco,pceps,pcomplemento; end "LISTA_LUGAR";
um forte abarco a todos
alineri
Alineri
Posts
28/02/2008
Lucas Silva
Boa tarde...
O erro acontece ao compilar a procedure no oracle ou ela não retorna os resultados esperados?
T+,
Lucas.
29/02/2008
Alineri
Consegui acertar a procedure. so que nao sei como chamar essa procedure via aplicacao delphi, segue abaixo a procedure
create or replace PROCEDURE "LISTA_LUGAR" ( "PCEP" IN VARCHAR2, "PESTADO" OUT VARCHAR2, "PCIDADE" OUT VARCHAR2, "PBAIRRO" OUT VARCHAR2, "PENDERECO" OUT VARCHAR2, "PCEPS" OUT VARCHAR2, "PCOMPLEMENTO" OUT VARCHAR2 ) AS begin select a.uf_sigla, b.cidade_descricao, c.bairro_descricao, d.endereco_logradouro, d.endereco_cep, d.endereco_complemento into pestado, pcidade, pbairro, pendereco, pceps, pcomplemento from uf a,cidade b, bairro c, endereco d where (a.uf_codigo = b.uf_codigo) and (b.cidade_codigo = c.cidade_codigo) and (c.bairro_codigo = d.bairro_codigo) and (d.endereco_cep = pcep) order by c.bairro_descricao,d.endereco_logradouro,d.endereco_cep; end "LISTA_LUGAR";
com uma ajuda que recebi de outro forum eu consigo executar essa procedure dessa forma diretamente no oracle ( a versao que estou utilizando e a Oracle XE )
segue abaixo o codigo:
DECLARE V_ESTADO VARCHAR2(10); V_CIDADE VARCHAR2(200); V_BAIRRO VARCHAR2(100); V_ENDERECO VARCHAR2(200); V_CEPS VARCHAR2(200); V_COMPLEMENTO VARCHAR2(100); BEGIN LISTA_LUGAR(PCEP => ´123456´, PESTADO => V_ESTADO, PCIDADE => V_CIDADE, PBAIRRO => V_BAIRRO, PENDERECO => V_ENDERECO, PCEPS => V_CEPS, PCOMPLEMENTO => V_COMPLEMENTO); dbms_output.put_line(´O Endereço é: ´||V_ENDERECO); END;
um forte abraco a todos
alineri
29/02/2008
Flyskin
29/02/2008
Alineri
com o adostoredproc nao consigo rodar essa procedura, da uma mensagem de erro informando que o provedor nao tem suporte para esse tipo de resultado, e no adoquery nao sei como fazer para funcionar essa procedure, ja tentei varias formas, e nao consigo executa-la, no oracle vai, oq eu pode ser ?
um forte abraco a todos
alineri
03/03/2008
Flyskin
não sei se este recurso é somente do dbexpress ou se tem tb no ado... dá uma olhada a respeito, poi ele roda diretamente no servidor...
Clique aqui para fazer login e interagir na Comunidade :)