Olá a todos, 
não obtive muito sucesso com a minha questão anterior a respeito de funções 
Plpgsql, então resolvi reformular minha dúvida, pra ver se alguém se habilita a 
me ajudar...rsss

É o seguinte, estou tentando fazer uma chamada a uma função PL/pgslq pelo java. 
A função é bem simples, é apenas pra verificar se duas informações estão 
cadastradas no banco. A função e o código em java que estou usando pra chamá-la 
segue abaixo:

CREATE FUNCTION cadaseq(character varying, character varying) RETURNS character 
varying
AS '
DECLARE

retorno varchar;
BEGIN
SELECT INTO retorno * FROM tag WHERE tag=$1 AND grupo=$2;
IF FOUND THEN
RAISE NOTICE ''Foi encontrado % %!'' ,$1,$2;
RETURN retorno;
ELSE 
RAISE NOTICE ''Não Foi Encontrado % %!'' , $1,$2;
RETURN null; 
END IF;
END;


Código java:

try {
Class.forName("org.postgresql.Driver");
Connection db = DriverManager.getConnection (dburl, "postgres", "senha");
a = request.getParameter ("tag"); 
grupo = request.getParameter ("grupo");
CallableStatement getInfo = db.prepareCall ("{? = call cadaseq(?,?)}");
getInfo.registerOutParameter(1,java.sql.Types.VARCHAR);
getInfo.setString(2,a);
getInfo.setString(3,grupo);
getInfo.execute();
ResultSet info = (ResultSet) getInfo.getResultSet().getObject(1);
if(info.next()) 
{
String mess = " TAG Already Exists in Cambium, Leaf or Plantlet, verify: 
<br><br>"+ a;
%>
<jsp:forward page="erro.jsp"> 
<jsp:param name="erro" value="<%=mess%>"/>
<jsp:param name="voltar" value="1"/>
</jsp:forward>
<%
} 



As messagens de erro são as seguintes:

Quando tento cadastrar algo que já existe: Erro ocorrido no banco de dados: 
java.lang.ClassCastException: java.lang.String

Quando tento cadastrar algo que NÃO existe: Erro ocorrido no banco de dados: 
java.lang.NullPointerException

Alguém poderia me dizer aonde estou errando?!?!

Desde já agradeço muitoooo!!!!
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a