Parâmetro

1 resposta
D

Pessoal, vê se vocês podem me ajudar.

Tenho a seguinte procedure:

PROCEDURE IDENT_BASE01
Argument Name Type In/Out Default?


TIPO NUMBER IN
DADO_CONTA CHAR IN
RESULTADO REF CURSOR IN/OUT

Repare bem que é um REF CURSOR, tenho que pegar o resultado dele passando os parâmetros.

Fiz da seguinte forma:

CallableStatement cs = con.prepareCall("{call IDENT_BASE01(1,'Márcio',null)}");
        cs.setString(1, "Entrou"); 
        cs.registerOutParameter(2,java.sql.Types.VARCHAR); 
        cs.executeQuery(); 

        cs.getString(2);

Só que deu o seguinte erro dizendo que o valor do parâmetro não pode ser nulo

java.sql.SQLException: ORA-06550: line 1, column 61:
PLS-00567: cannot pass NULL to a NOT NULL constrained formal parameter
ORA-06550: line 1, column 61:
PLS-00363: expression ’ NULL’ cannot be used as an assignment target
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

No caso do 3º parâmetro é o resultado e não tenho o que passar nele.

Sei que tem um jeito de fazer isso, só que não estou sabendo como.

Pelo SQL_PLUS eu consegui fazer da seguinte maneira:

SQL> declare

2  TYPE cat_cv IS REF CURSOR;

3  mar cat_cv;

4  begin

5  EBT_TELACORE_CAT.EBT_TELACORE_IDENT_BASE01(4,Marcio,mar);

6  end;

7  /

Grato…

1 Resposta

J

bah… pelos eros que vc descreveu o parametro que esta sendo passado está sendo nulo, e o campo da tabela esta como not Null …

printa os valores antes de manda-los para certificar =)

ja conseguiste resolver??

Criado 14 de julho de 2004
Ultima resposta 21 de ago. de 2004
Respostas 1
Participantes 2