› Fóruns › SQL e PL/SQL › Procedure criada com erro de compilação
- Este tópico contém 5 respostas, 4 vozes e foi atualizado pela última vez 19 anos, 10 meses atrás por
Anônimo.
-
AutorPosts
-
3 de julho de 2006 às 8:47 pm #75943
izaura
ParticipantePessoal, a procedure abaixo qdo criada na versão 8 dá a msg “Procedure criada com erro de compilação”. Alguém pode dizer o q há de errado??
CREATE OR REPLACE PROCEDURE “P_BAG_BUSCALOJAS”
(p_id in NUMBER,
p_TpOcor in varchar2,
p_Cursor out TYPES.cursorType)
is
beginif p_TpOcor is not null then
OPEN p_Cursor FOR
SELECT ID,NOME,EMAIL,ENDERECO,NUMERO,COMPLEMENTO,BAIRRO,CIDADE,TIPO,
ENDERECO || ‘, ‘ || NUMERO AS END,
DECODE (TIPO,1,’EMPRESA REPARADORA’,2,’PONTO DE COLETA’,3,’EMPRESA DE HANDLING’) NMTIPO
FROM BAG_LOJASCONVENIADAS
WHERE TIPO in (1,2)
ORDER BY TIPO,NOME;else
OPEN p_Cursor FOR
SELECT ID,NOME,EMAIL,ENDERECO,NUMERO,COMPLEMENTO,BAIRRO,CIDADE,TIPO,
DECODE (TIPO,1,’EMPRESA REPARADORA’,2,’PONTO DE COLETA’,3,’EMPRESA DE HANDLING’) NMTIPO
FROM BAG_LOJASCONVENIADAS
WHERE TIPO = p_id
ORDER BY TIPO,NOME;end if;
END P_BAG_BUSCALOJAS;
3 de julho de 2006 às 8:54 pm #75944Marcio68Almeida
Participanteapós tentar criar / compilar a sua procedure você tentou usar o comando show errors no sqlplus ?
ele mostra o erro que ocorreu no último processo executado no sqlplus…3 de julho de 2006 às 8:57 pm #75945izaura
Participante[quote=”Marcio68Almeida”:37242tv9]após tentar criar / compilar a sua procedure você tentou usar o comando show errors no sqlplus ?
ele mostra o erro que ocorreu no último processo executado no sqlplus…[/quote]Usei o comando show err e dá a msg q não existe erro.
4 de julho de 2006 às 4:33 pm #75949Marcio68Almeida
ParticipanteFaz muito tempo que não faço procedures com cursores, mas creio que você deva primeiro definir os cursores e depois, dentro do begin, chamar um ou outro…
Tem que ver exemplos de cursores… 😳5 de julho de 2006 às 10:54 pm #75956mhlourenco
ParticipanteIsaura, o q o Márcio disse ele tem razã … experimente declarar o cursor que vc estiver usando fora da declaração das variáveis, usando a seguinte sintaxe:
….
TYPE T_CURSOR IS REF CURSOR;
–Recebe o cursor do SQL a ser executado
V_CURSORFETCH1 T_CURSOR;…..
19 de julho de 2006 às 4:52 pm #76058Anônimo
tem razão sim…
Na verdade o cursor deve ser uma parametro de saída apenas…
(p_id in NUMBER,
p_TpOcor in varchar2,
p_Cursor out TYPES.cursorType)Isso indica que vc vai retornar um cursor, exatamente como está fazendo, só que faltou a declaração desse mesmo cursor dentro do bloco… para fazer as operações que está pretendendo…
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › Procedure criada com erro de compilação