Acredito que o erro é por que os atributos cable_type e nature são NUMBER e
os resultados para 1, 2 e 3 de cada decode são do tipo CHAR
Ex. ('Metalico','Optico','Coaxial')
Experimente colocar TO_CHAR() :
DECODE(cable_type,
1, 'Metalico',
2, 'Optico',
3, 'Coaxial',
TO_CHAR(cable_type)) Tipo
DECODE(nature,
1, 'Tronco',
2, 'Alimentador',
3, 'Distribuidor',
TO_CHAR(nature)) Natureza
Ok?
Att.
Diones Kleber Cruz
----------------------------------------------------------
DBA Oracle 9i
Desenv de Sistemas Senior
[EMAIL PROTECTED]
[EMAIL PROTECTED]
----------------------------------------------------------
JOSAPAR - ARROZ TIO JOÃO
Joaquim Oliveira S/A Participações
Fone: (53) 3284-1044
----------------------------------------------------------
-----Mensagem original-----
De: Luciana Camargo [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 27 de abril de 2006 16:59
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Package com wrap não funciona.
Pessoal,
Deve ser bug mesmo.
O problema é colocar DECODE no procedimento.
============================================
Criando tabela:
CREATE TABLE cables
(id number(10),
num varchar2(10),
cable_type number(10),
nature number(10),
est_length number(5,2));
INSERT INTO cables VALUES (1,'A', 1,1,10);
INSERT INTO cables VALUES (2,'A', 2,2,11);
INSERT INTO cables VALUES (3,'A', 3,2,12);
INSERT INTO cables VALUES (4,'B', 2,3,13);
INSERT INTO cables VALUES (5,'B', 1,3,14);
============================================
Package:
CREATE OR REPLACE PACKAGE pck_teste
AS
PROCEDURE proc_report;
END pck_teste;
/
CREATE OR REPLACE PACKAGE BODY pck_teste
AS
PROCEDURE proc_report
IS
CURSOR c_cables IS
SELECT num
, SUM (est_length) est_length
, DECODE(cable_type,
1, 'Metalico',
2, 'Optico',
3, 'Coaxial',
cable_type) Tipo
, DECODE(nature,
1, 'Tronco',
2, 'Alimentador',
3, 'Distribuidor',
nature) Natureza
FROM cables
GROUP BY num
, cable_type
, nature;
BEGIN
FOR l IN c_cables LOOP
DBMS_OUTPUT.PUT_LINE (l.num ||'-'|| l.est_length ||'-'||
l.tipo||'-'||
l.natureza);
END LOOP;
END proc_report;
END pck_teste;
/
========================================
--- com .plb = PROBLEMA
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
With the Partitioning option
JServer Release 9.2.0.5.0 - Production
SQL> @teste.plb
Package created.
Elapsed: 00:00:00.05
Package body created.
Elapsed: 00:00:00.06
SQL> exec pck_teste.proc_report
BEGIN pck_teste.proc_report; END;
*
ERROR at line 1:
ORA-01722: invalid number
ORA-06512: at "CD_CAS2.PCK_TESTE", line 33
ORA-06512: at line 1
===============================
---- com SQL = NORMAL
SQL> @teste.sql
Package created.
Elapsed: 00:00:00.04
Package body created.
Elapsed: 00:00:00.06
SQL> exec pck_teste.proc_report
A-11-Optico-Alimentador
A-12-Coaxial-Alimentador
A-10-Metalico-Tronco
B-13-Optico-Distribuidor
B-14-Metalico-Distribuidor
PL/SQL procedure successfully completed.
========================================
O curioso é que se trocar o DECODE por IF ou CASE no corpo do procedimento
não dá erro.
Luciana
2006/4/27, Luciana Camargo <[EMAIL PROTECTED]>:
> O wrap e banco estão em versões iguais.
>
> Estou tentando montar o menor caso possível com o mesmo problema
>
> Luciana
>
>
> Em 26/04/06, Marcia Bussolaro <[EMAIL PROTECTED]> escreveu:
>
> > Oi,
> >
> > O wrap gerado em algumas versões do Oracle não funciona em outras. Veja
> > se não está gerando o wrap em uma versão e executando em outra.
> >
> > []
> > Marcia
> >
> >
> >
> > On Wed, 26 Apr 2006 16:37:29 -0300, "Luciana Camargo" <
> > [EMAIL PROTECTED]> escreveu:
> >
> > > De: "Luciana Camargo" < [EMAIL PROTECTED]>
> > > Data: Wed, 26 Apr 2006 16:37:29 -0300
> > > Para: oracle_br@yahoogrupos.com.br
> > > Assunto: Re: [oracle_br] Package com wrap não funciona.
> > >
> > > <html><body>O que eu acho estranho é do fonte funcionar e o wrap
> > não.<BR><BR>O meu procedimento é bem simples:<BR><BR> Tem um cursor com
a
> > estrutura:<BR><BR> SELECT ....<BR> FROM tabela1<BR>
> > , tabela2<BR> , (SELECT DISTINCT
> > ...<BR> FROM tabela11, tabela22<BR> UNION
> > ALL<BR> SELECT DISTINCT ...<BR> FROM
tabela33,
> > tabela44<BR> UNION ALL<BR> SELECT DISTINCT
> > ...<BR> FROM tabela55, tabela66)<BR> WHERE ....<BR><BR>
No
> > corpo do procedimento tem um FOR, onde ele manda os dados para
> > o<BR>arquivo.<BR><BR> só isso.<BR><BR>Luciana<BR><BR><BR>2006/4/26,
Marcio
> > Portes < [EMAIL PROTECTED]>:<BR>><BR>> Posta o código para a
> > lista. Talvez alguem possa reproduzir na sua versão.<BR>><BR>> On
4/26/06,
> > Luciana Camargo < [EMAIL PROTECTED]> wrote:<BR>> ><BR>> >
> > Pessoal,<BR>> ><BR>> > Estou com um erro estranho no meu package.<BR>>
>
> > Meu banco é Oracle9i Enterprise Edition Release 9.2.0.5.0<BR>> ><BR>>
> > > Executei wrap no meu package e criei no meu banco. Ao executar
o<BR>> >
> > procedimento dá problema de "Invalid Number".<BR>> > No entanto, se
eu
> > criar a package sem ter passado pelo wrap no meu<BR>> > banco,<BR>> > o
> > procedimento é executado até o final sem problemas.<BR>> ><BR>> >
Alguém
> > sabe o que pode estar acontecendo?<BR>> ><BR>> > Obrigada<BR>>
> > > Luciana<BR>> ><BR>> ><BR>> > [As partes desta mensagem que não
> > continham texto foram removidas]<BR>> ><BR>> ><BR>> ><BR>> ><BR>> ><BR>>
> >
----------------------------------------------------------------------------
----------------------------------------------<BR>>
> > > Atenção! As mensagens deste grupo são de acesso público e de
inteira<BR>>
> > > responsabilidade de seus remetentes.<BR>> > Acesse: <a href=""> > >
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/">http://www.mail-a
rchive.com/oracle_br@yahoogrupos.com.br/
> > </a><BR>> ><BR>> ><BR>>
> >
----------------------------------------------------------------------------
----------------------------------------------______________________________
____________________________________<BR>>
> > ><BR>> > Este Grupo recebe o apoio da SQL Magazine -<BR>> >
> > www.devmedia.com.br/sqlmagazine<BR>> >
> > __________________________________________________________________<BR>>
> O
> > grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,<BR>>
> > tenha<BR>> > o link do mesmo para evitar trafego(pedidos)
> > desnecessário.<BR>> > Links do Yahoo! Grupos<BR>> ><BR>> ><BR>> ><BR>>
> > ><BR>> ><BR>> ><BR>> ><BR>> ><BR>> ><BR>><BR>><BR>> --<BR>> Marcio
> > Portes<BR>> Material Tecnico em Portugues - <a href=""> > > http://mportes.blogspot.com">http://mportes.blogspot.com</a><BR>>
> > Practical Learning Oracle -<BR>> <a href=""> > >
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html">http://m
portes.blogspot.com/2006/02/practical-learning-oracle.html</a><BR>><BR>><BR>
>
> > [As partes desta mensagem que não continham texto foram
> > removidas]<BR>><BR>><BR>><BR>><BR>>
> >
----------------------------------------------------------------------------
----------------------------------------------<BR>>
> > Atenção! As mensagens deste grupo são de acesso público e de
inteira<BR>>
> > responsabilidade de seus remetentes.<BR>> Acesse: <a href=""> > >
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/">http://www.mail-a
rchive.com/oracle_br@yahoogrupos.com.br/
> > </a><BR>><BR>>
> >
----------------------------------------------------------------------------
----------------------------------------------______________________________
____________________________________<BR>><BR>>
> > Este Grupo recebe o apoio da SQL Magazine -<BR>>
> > www.devmedia.com.br/sqlmagazine<BR>>
> > __________________________________________________________________<BR>>
O
> > grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,
tenha<BR>>
> > o link do mesmo para evitar trafego(pedidos) desnecessário.<BR>> Links
do
> > Yahoo! Grupos<BR>><BR>><BR>><BR>><BR>><BR>><BR>><BR>><BR><BR><BR>[As
partes
> > desta mensagem que não continham texto foram removidas]<BR><BR><!--
> > |**|begin egp html banner|**|
> >
--><br><br><tt>-------------------------------------------------------------
-------------------------------------------------------------<BR>Atenção!
> > As mensagens deste grupo são de acesso público e de inteira
responsabilidade
> > de seus remetentes.<BR>Acesse: <a href=""> > >
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/">http://www.mail-a
rchive.com/oracle_br@yahoogrupos.com.br/
> > </a>
> >
<BR>------------------------------------------------------------------------
--------------------------------------------------__________________________
________________________________________<BR><BR>Este
> > Grupo recebe o apoio da SQL Magazine -
www.devmedia.com.br/sqlmagazine<BR>_________________________________________
_________________________<BR>O
> > grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha
o
> > link do mesmo para evitar trafego(pedidos)
desnecessário.</tt><br><br><!--
> > |**|end egp html banner|**| --> <!-- |**|begin egp html banner|**|
> > --><br> <hr width="500"><b>Links do Yahoo! Grupos</b><br><ul><li>Para
> > visitar o site do seu grupo na web, acesse:<br><a href=""> > > http://br.groups.yahoo.com/group/oracle_br/">
> > http://br.groups.yahoo.com/group/oracle_br/</a><br> <li>Para sair deste
> > grupo, envie um e-mail para:<br><a href=""> > >
[EMAIL PROTECTED]">oracle_br-unsu
[EMAIL PROTECTED]
> > </a><br> <li>O uso que você faz do Yahoo! Grupos está sujeito aos <a
> > href="" href="http://br.yahoo.com/info/utos.html">http://br.yahoo.com/info/utos.html">Termos do Serviço do
> > Yahoo!</a>.</ul></br><!-- |**|end egp html banner|**| --></body></html>
> >
> >
> >
> >
> >
> >
> >
----------------------------------------------------------------------------
----------------------------------------------
> > Atenção! As mensagens deste grupo são de acesso público e de inteira
> > responsabilidade de seus remetentes.
> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> >
----------------------------------------------------------------------------
----------------------------------------------______________________________
____________________________________
> >
> >
> > Este Grupo recebe o apoio da SQL Magazine -
> > www.devmedia.com.br/sqlmagazine
> > __________________________________________________________________
> > O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo,
> > tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
>
>
[As partes desta mensagem que não continham texto foram removidas]
----------------------------------------------------------------------------
----------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
----------------------------------------------------------------------------
----------------------------------------------______________________________
____________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o
link do mesmo para evitar trafego(pedidos) desnecessário.
Links do Yahoo! Grupos
--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.