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…