Re: Calling functions with table-based-type parametars
| От | Kris Jurka | 
|---|---|
| Тема | Re: Calling functions with table-based-type parametars | 
| Дата | |
| Msg-id | Pine.BSO.4.64.0702231415300.13688@leary.csoft.net обсуждение исходный текст | 
| Ответ на | Calling functions with table-based-type parametars (Mario Splivalo <mario.splivalo@mobart.hr>) | 
| Ответы | Re: Calling functions with table-based-type parametars | 
| Список | pgsql-jdbc | 
On Fri, 23 Feb 2007, Mario Splivalo wrote:
> Hello again :)
>
> I have a PSQL function that accepts table-based-type as parametar:
>
> CREATE TABLE t1(c1 int4, c2 varchar);
>
> CREATE FUNCTION f1(t1) RETURNS VOID
> AS 'BEGIN RETURN END;' LANGUAGE 'plpgsql';
>
> Now, when I call this function from another function (or from psql, for
> instance), i need to do it like this:
>
> select f1(ROW(1, 'sometext'));
>
> How do I do that from JDBC? Usualy I did it like this:
>
> callStatement = conn.getCallStatement("{call f1(?, ?)}");
> ResultSet rs = s.executeQuery("select f1(ROW(1, 'sometext'));");
>
Why not conn.prepareCall("{call f1(ROW(?, ?)}") or
conn.prepareStatement("SELECT f1(ROW(?, ?))");
Technically the JDBC way would be to to create a class implementing
SQLData, but since the JDBC driver doesn't implement such a thing, one of
the above should work.
Kris Jurka
		
	В списке pgsql-jdbc по дате отправления: