Porque sera esse erro ?

25/05/2004

0

To tentando abrir um cursor sempre da erro.

eu declarei assim :

PED PEDIDO¬ROWTYPE;
CURSOR PEDI   IS SELECT  * FROM PEDIDO         WHERE CDPEDIDO = ORDERID AND CNPJ IN (CLIENTS) ;


depois eu abro assim:
OPEN PEDI;
FETCH PEDI INTO PED;



Mais da erro :

18/1 PLS-00394: numero incorreto de valores na lista INTO de uma
instruc?o FETCH

18/1 PL/SQL: SQL Statement ignored

na linha 18 ta fetch


Ualex

Ualex

Responder

Posts

25/05/2004

Motta

o certo é algo assim ...

CURSOR PEDI IS SELECT * FROM PEDIDO WHERE CDPEDIDO = ORDERID AND CNPJ IN (select cnpj from CLIENTS) ;


Responder

27/05/2004

Ualex

não necessariamente.

Pois a variavel clients ta com os seguintes valores :

clients := ´2112212,121212,22222121´;

sabe tipo uma lista. então funciona.


Mas ja resolvi este problema acho que era algum bug do oracle pois foi só eu apagar uma coluna e cria-la novamente na tabela pedido que funcionou.


Responder

27/05/2004

Motta

falta um typecast, nao ?

Select Cast(clients) From dual)

ou

Select Cast(clients) as tipocliente From dual)

tipocliente é o tipo de definiu a tabela virtual


Responder

04/06/2004

Paladino

O Mota o o Ualex estão corretos quanto ao tipo de entrada de dados, mas acredito que para a solicitação do Ualex está faltando identificar a variável, já que a seleção de dados restringe-se a caracteres aleatórios.
ex:
1 caso - Variável externa ao cursor:
procedure/function (clients varchar2) ...
... CURSOR PEDI IS SELECT * FROM PEDIDO WHERE CDPEDIDO =
ORDERID AND CNPJ IN (clients) ;

2 caso - Variável interna no cursor:
CURSOR PEDI (clients varchar2) IS SELECT * FROM PEDIDO WHERE CDPEDIDO = ORDERID AND CNPJ IN (clients) ;
...
Open PEDI(´2112212,121212,22222121´);

Espero ter ajudado!


Responder

04/06/2004

Ualex

entendi.

Mas o problema não é esse é que tinha colocado um campo na tabela pedido. e depois disso começou dar esse erro.
dae eu retirei o campo e coloquei novamente e funcionou.

foi pau do oracle mesmo 8)


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar