EU QUERO TESTAR DE O ITEM DO CURSOR é IGUAL AO PRIMEIRO DIVISAO (primeira_divisao) mas da o seguinte erro
Error(91,18 ): PLS-00306: numero incorreto de tipos de argumentos na chamada para '='
Error(91,18 ): PLS-00306: numero incorreto de tipos de argumentos na chamada para '<>'
create or replace
PROCEDURE "PRAZO_DIVISAO" (ORDERID PEDIDO.CDPEDIDO%TYPE,CNPJ PEDIDO.CNPJ%TYPE) IS
BEGIN
DECLARE
CURSOR C_PRODUTO IS SELECT CDPRODUTO FROM PEDIDOITEM WHERE CDPEDIDO=ORDERID ORDER BY CDPRODUTO;
CURSOR C_DIVISAO IS SELECT CDDIVISAO FROM DIVISAO WHERE CDDIVISAO IN(SELECT CDDIVISAO FROM PRODUTO WHERE CDLABORATORIO= cdlaboratorio AND CDPRODUTO IN(SELECT CDPRODUTO FROM PEDIDOITEM WHERE CDPEDIDO=ORDERID));
prazo_pedido NUMBER:=0;
atual NUMBER:=0;
divisao C_DIVISAO%ROWTYPE;
produto C_PRODUTO%ROWTYPE;
linha C_DIVISAO%ROWTYPE;
primeira_divisao PRODUTO%TYPE;
cnpj_lab PEDIDOLAB.CNPJ%TYPE;
cdlaboratorio_lab PEDIDOLAB.CDLABORATORIO%TYPE;
cdpedidolab_lab PEDIDOLAB.CDPEDIDOLAB%TYPE;
rentrada_lab PEDIDOLAB.RENTRADA%TYPE;
situacao_lab PEDIDOLAB.SITUACAO%TYPE;
data_lab PEDIDOLAB.DATA_RETORNO%TYPE;
rsaida_lab PEDIDOLAB.RSAIDA%TYPE;
datacadastro_lab PEDIDOLAB.DATACADASTRO%TYPE;
dataretorno_lab PEDIDOLAB.DATA_RETORNO%TYPE;
cdpedido PEDIDO.CDPEDIDO%TYPE;
cnpj PEDIDO.CNPJ%TYPE;
cdlaboratorio PEDIDO.CDLABORATORIO%TYPE;
cdrepresentante PEDIDO.CDREPRESENTANTE%TYPE;
uf PEDIDO.UF%TYPE;
cdol PEDIDO.CDOL%TYPE;
datacadastro PEDIDO.DATACADASTRO%TYPE;
cdsituacao PEDIDO.CDSITUACAO%TYPE;
cdpi PEDIDO.CDPI%TYPE;
origem PEDIDO.ORIGEM%TYPE;
obs PEDIDO.OBS%TYPE;
formapagto PEDIDO.FORMAPAGTO%TYPE;
BEGIN
SELECT CDPEDIDO,CNPJ,CDLABORATORIO,CDREPRESENTANTE,UF,CDOL,DATACADASTRO,CDSITUACAO,CDPI,ORIGEM,OBS,FORMAPAGTO INTO
cdpedido,cnpj,cdlaboratorio,cdrepresentante,uf,cdol,datacadastro,cdsituacao,cdpi,origem,obs,formapagto FROM PEDIDO WHERE CDPEDIDO = ORDERID;
SELECT CDPEDIDOLAB,RENTRADA,SITUACAO,DATA_RETORNO,RSAIDA INTO
cdpedidolab_lab,rentrada_lab,situacao_lab, dataretorno_lab,rsaida_lab FROM PEDIDOLAB WHERE CDPEDIDO = ORDERID;
SELECT CDDIVISAO INTO primeira_divisao FROM PRODUTO WHERE CDLABORATORIO=cdlaboratorio
AND CDPRODUTO IN(SELECT CDPRODUTO FROM PEDIDOITEM WHERE CDPEDIDO=ORDERID)
AND ROWNUM=1 ORDER BY CDPRODUTO;
OPEN C_DIVISAO;
OPEN C_PRODUTO;
FETCH C_PRODUTO INTO produto;
FETCH C_DIVISAO INTO divisao;
IF C_PRODUTO%Rowcount = 0 OR C_DIVISAO%ROWCOUNT = 0 THEN
RAISE_APPLICATION_ERROR(-20023, 'Sem Produto Cadastrado na PEDIDOITEM.');
END IF;
LOOP
FETCH C_DIVISAO INTO divisao;
FETCH C_PRODUTO INTO produto;
WHILE divisao = reg LOOP **************//ERRO AQUI
atual := divisao;
END LOOP;
BEGIN
SELECT PRAZO INTO prazo_pedido FROM DIVISAO WHERE CDLABORATORIO= cdlaboratorio AND CDDIVISAO=atual;
DELETE FROM PARCELA WHERE CDPEDIDO=ORDERID;
ADD_PARCEL(ORDERID, cnpj,prazo_pedido);
END;
IF divisao <> atual *************//ERRO AQUI
THEN
SELECT Seq_CDPEDIDO.NEXTVAL AS CODIGO FROM DUAL;
INSERT INTO PEDIDO SELECT CODIGO,CNPJ,CDLABORATORIO,CDREPRESENTANTE,UF,CDOL,DATACADASTRO,CDSITUACAO,CDPI,ORIGEM,OBS,FORMAPAGTO
FROM PEDIDO WHERE CDPEDIDO=ORDERID;
INSERT INTO PEDIDOITEM SELECT CODIGO,CNPJ,CDPRODUTO,QTPEDIDA,CDLABORATORIO,DATACADASTRO,DESCONTO
FROM PEDIDOITEM WHERE CDPEDIDO=ORDERID AND CDPRODUTO = C_PRODUTO;
INSERT INTO PEDIDOLAB SELECT CODIGO,CDLABORATORIO,CDPEDIDOLAB,RENTRADA,CNPJ,SITUACAO,DATACADASTRO
FROM PEDIDOLAB WHERE CDPEDIDO=ORDERID;
atual :=divisao;
ELSE
INSERT INTO PEDIDOITEM SELECT CDPEDIDO,CNPJ,CDPRODUTO,QTPEDIDA,CDLABORATORIO,DATACADASTRO,DESCONTO
FROM PEDIDOITEM WHERE CDPEDIDO=CODIGO AND CDPRODUTO = C_PRODUTO;
IF divisao != atual
THEN
SELECT PRAZO INTO prazo_pedido FROM DIVISAO WHERE CDLABORATORIO= cdlaboratorio;
ADD_PARCEL(ORDERID, cnpj,prazo_pedido);
END IF;
END IF;
EXIT WHEN C_DIVISAO%NOTFOUND OR C_PRODUTO%NOTFOUND;
END LOOP;
CLOSE C_DIVISAO;
CLOSE C_PRODUTO;
END PRAZO_DIVISAO;
END;
alguém PODE ME AJUDAR COM ESSE ERRO..???