Ajuda - chamada function oracle

4 respostas
vinicius_siqueira

Ae Pessoal, se alguem puder me ajudar

Não to conseguindo chamar uma função que eu possuo dentro de uma package.

Alguem tem alguma sugestão ?

try {

cs = conn

.prepareCall("{call ? = TEST5.pgpacotepargainicial.insert_path_element(?,?,?,?); end;");

cs.setString(1, circPathInstId);

cs.setString(2, portInstId);

cs.setString(3, bwDesc);

cs.setString(4, bwInstId);
cs.execute();

/// ---------------------------
Retorna pra mim
java.sql.SQLException: Parâmetro IN ou OUT ausente do índice:: 5

Valeu
vSiqueira

4 Respostas

A

Os parâmetros da function vão de 2 até 5, 1 seria o retorno dela!?

vinicius_siqueira

Não acredito.

Se substituo os parametros por 2 a 5.
O indice ausente se torna o 1.

A

O correto não é:
? = call TEST5.pgpacotepargainicial.insert_path_element(?,?,?,?)
parâmetros de 1 a 4?

vinicius_siqueira

Consegui resolver o Problema dessa forma:

try {

cs = conn

.prepareCall(begin ? := TEST5.pgPacoteCargaInicial.insert_path_element(?,?,?,?); end;”);

cs.registerOutParameter(1, Types.VARCHAR);

cs.setString(2, circPathInstId);

cs.setString(3, portInstId);

cs.setString(4, bwDesc);

cs.setString(5, bwInstId);
cs.execute();

		pathElementId = cs.getString(1);

	}

Setando o register out parameter, para ele conseguir entender quais sao os Índices.

Brigado pela Força ai Arnaldo!

Att,
vSiqueira

Criado 25 de janeiro de 2009
Ultima resposta 25 de jan. de 2009
Respostas 4
Participantes 2