Re: passing user defined data types to stored procedures

Поиск
Список
Период
Сортировка
От Jay Howard
Тема Re: passing user defined data types to stored procedures
Дата
Msg-id 7569a8ec0811150943l62746eefm8e4f034a1d69b624@mail.gmail.com
обсуждение исходный текст
Ответ на Re: passing user defined data types to stored procedures  (Kris Jurka <books@ejurka.com>)
Ответы Re: passing user defined data types to stored procedures  (Kris Jurka <books@ejurka.com>)
Список pgsql-jdbc
Interesting.  I did some experimenting with this last night, and it led to a followup question:

Is it possible to return (and pass) arrays using java.sql.Array?

I wrote a test proc that returns an array of integers.  I can retrieve it on the java side as a Jdbc3Array, which implements java.sql.Array.

Unfortunately, getArray() (and its variants) seem not to have been implemented yet by Jdbc3Array.

Any way to pass arrays back and forth?  I could always have the proc return a refcursor and handle it in Java as a ResultSet, but I was looking for a convenient way to avoid that.

On Sat, Nov 15, 2008 at 11:25 AM, Kris Jurka <books@ejurka.com> wrote:


On Fri, 14 Nov 2008, Jay Howard wrote:

Does the driver support passing UDTs as arguments to stored procs?


Sort of, but not in the standard fashion.  SQLData is not supported, but it is possible to do it using PGobject (a postgresql specific extension).  If you make your class Foo extend PGobject [1] and make getType return the type name and getValue return the text representation that the server expects it will work for sending data to the server.  To get objects of this type back from the server, you must register them via PGConnection.addDataType [2].

Sample text representation of a complex type:

jurka=# create type mytype as (a int, b text, c date);
CREATE TYPE
jurka=# select '(3,"a,b",2008-11-20)'::mytype;
       mytype
----------------------
 (3,"a,b",2008-11-20)
(1 row)

Kris Jurka

[1] http://jdbc.postgresql.org/documentation/publicapi/org/postgresql/util/PGobject.html
[2] http://jdbc.postgresql.org/documentation/publicapi/org/postgresql/PGConnection.html#addDataType(java.lang.String,%20java.lang.Class)

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Generated keys support
Следующее
От: Kris Jurka
Дата:
Сообщение: Re: passing user defined data types to stored procedures