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