[Pljava-dev] Calling pl/pgsql functions from pl/java?

From: jeffreylyon at mac(dot)com (Jeffrey Lyon)
To:
Subject: [Pljava-dev] Calling pl/pgsql functions from pl/java?
Date: 2007-12-11 02:17:43
Message-ID: 141A53EE-DEE3-4C80-B4EF-F5A888F6F568@mac.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

Lucas,

You need to position the ResultSet:
> ResultSet res = stmt.getResultSet();
res.next();
>
> ret = res.getString(1);
> res.close();
> stmt.close();
> sql.close();

J

On Dec 10, 2007, at 8:29 PM, Lucas Madar wrote:

> Hello,
>
> I'm trying to call preexisting plpgsql functions from pljava. I've
> been
> beating my head against a wall with them all day, and I can't seem to
> figure out what I'm doing wrong. Apologies if this is too much junk,
> but
> this is a low-traffic list ;)
>
> Thanks,
> Lucas Madar
>
>
>
> Given the following setup, why does this happen? I can't seem to call
> *any* plpgsql functions from within pl/java.
>
> create or replace function pljava_test_internal(integer) returns
> varchar
> as 'stupid.test.Dummy.test_internal' LANGUAGE 'javaU' VOLATILE;
> create or replace function pljava_test_external(integer) returns
> varchar
> as 'stupid.test.Dummy.test_external' LANGUAGE 'javaU' VOLATILE;
>
> CREATE OR REPLACE FUNCTION plpgsql_test_external(varchar) RETURNS
> varchar AS $$
> BEGIN
> return $1 || ' from plpgsql!';
> END;
> $$ LANGUAGE plpgsql VOLATILE;
>
> package stupid.test;
> import java.sql.*;
> public class Dummy {
>
> public static String test_internal(int number) {
> return "internal test la la la " + number;
> }
>
> public static String test_external(int number) throws
> SQLException {
> String text = "internal test la la la " + number;
> Connection sql =
> DriverManager.getConnection("jdbc:default:connection");
> String ret;
>
> Statement stmt = sql.createStatement();
> if(stmt.execute("SELECT plpgsql_test_external('" + text
> + "');"))
> throw new SQLException("No results from
> query?");
> ResultSet res = stmt.getResultSet();
> ret = res.getString(1);
> res.close();
> stmt.close();
> sql.close();
>
> return ret;
> }
> }
>
>
> # select pljava_test_internal(1);
> pljava_test_internal
> --------------------------
> internal test la la la 1
> (1 row)
>
> # select plpgsql_test_external('test');
> plpgsql_test_external
> -----------------------
> test from plpgsql!
> (1 row)
>
> # select pljava_test_external(1);
> ERROR: java.sql.SQLException: ResultSet is not positioned on a
> valid row
>
> _______________________________________________
> Pljava-dev mailing list
> Pljava-dev at pgfoundry.org
> http://pgfoundry.org/mailman/listinfo/pljava-dev

In response to

Responses

Browse pljava-dev by date

  From Date Subject
Next Message Lucas Madar 2007-12-11 02:31:06 [Pljava-dev] Calling pl/pgsql functions from pl/java?
Previous Message Lucas Madar 2007-12-11 01:29:06 [Pljava-dev] Calling pl/pgsql functions from pl/java?