Parâmetro

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…

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??