Re: Passing Array from Java to Postgres

Поиск
Список
Период
Сортировка
От Alexander Panzhin
Тема Re: Passing Array from Java to Postgres
Дата
Msg-id 49175681.3030003@gmail.com
обсуждение исходный текст
Ответ на Passing Array from Java to Postgres  (lathasuresh.s@gmail.com)
Список pgsql-jdbc
Witch driver version are you using? I was testing with
postgresql-8.3-603.jdbc4.jar.
Do you use connection pooling? This might not even be a driver problem,
since connection pools don't give you the underlying connection created
by the native driver. If the connection pool facade connection does not
implement createArrayOf, it will throw AbstractMethodException.
> Hi Alexander ,
>      I tried it,but still get the same problem.(program execution
> skips when it reaches the following code)
> sqlArray = connection.createArrayOf("int4", new Integer[] { 47,46 });
>
> Using GlassFish server and Netbeans IDE.
> DB-Postgresql 8.2
>
> Also pasted DB connection info.
> String driver="org.postgresql.Driver";
> String URL="jdbc:postgresql://localhost:5432/dbhmisdemo_sep20f";
>
> Also pasted code and the output in console
>      System.out.println("\n inside executeProc");
>             DBConnection dbconn=new DBConnection();
>             Connection connection=dbconn.getDBConnection();
>             System.out.println("\n before creating sqlArray ");
>             Array sqlArray = null;
>             sqlArray = connection.createArrayOf("int4", new Integer[]
> { 47,46 });
>             System.out.println("\n After creating sqlArray");
>             CallableStatement  cstmt = connection.prepareCall("{?=
> call testit(?)}");
>             System.out.println("\n after CallableStatement");
>             cstmt.registerOutParameter(1, Types.INTEGER);
>             System.out.println("\n before SetArray");
>             try{
>                     cstmt.setArray(2, sqlArray);
>             }catch(Exception e)    {
>             e.printStackTrace();
>             }
>             System.out.println("\n After Array");
>             System.out.println("\n before execute");
>             cstmt.execute();
>             System.out.println("\n after execute");
>             result = cstmt.getInt(1);
>             System.out.println("\nThe result is " + result);
>
> Server Log
>  inside executeProc
>  before creating sqlArray
>
> Thanks in advance
>
>
>
>
>
> On Nov 4, 9:38 pm, jalexo...@gmail.com (Alexander Panzhin) wrote:
>
>> Tried it on PostgreSQL 8.2, PL/pgSQL function.
>>
>>         Array sqlArray = cn.createArrayOf("int4", new Integer[] { 47,46 });
>>
>>         CallableStatement cstmt = cn.prepareCall("{? = call testit(?)}");
>>         cstmt.registerOutParameter(1, Types.INTEGER);
>>         try {
>>             cstmt.setArray(2, sqlArray);
>>         } catch (Exception e) {
>>             e.printStackTrace();
>>         }
>>         cstmt.execute();
>>         int result = cstmt.getInt(1);
>>         System.out.println("Result: "+result);
>>
>> CREATE FUNCTION testit(number integer[]) RETURNS integer
>>     AS $$BEGIN
>>    RETURN number[1];
>> END;$$
>>     LANGUAGE plpgsql;
>>
>> Got: "Result: 47"
>>
>>
>>
>>
>>> Hi,
>>>     I need to pass array from Java to postgres DB.Tried the following
>>> code given in net,but it   doesnt work,please help me to solve this.
>>>
>>>   Getting no exceptions but program execution skips when it reaches
>>> the following code
>>>    cstmt.setArray(2, connection.createArrayOf("int4", intarr ));
>>>
>>> I have also copied the following code for reference,
>>>
>>>            DBConnection dbconn=new DBConnection();
>>>             Connection connection=dbconn.getDBConnection();
>>>             CallableStatement  cstmt = connection.prepareCall("{?=
>>> call testit(?)}");
>>>             cstmt.registerOutParameter(1, Types.INTEGER);
>>>             try{
>>>                     cstmt.setArray(2, connection.createArrayOf("int4",
>>> intarr ));
>>>             }catch(Exception e)    {
>>>             e.printStackTrace();
>>>             }
>>>             cstmt.execute();
>>>             result = cstmt.getInt(1);
>>>
>>> Regards,
>>> Latha S
>>>
>>
>>  smime.p7s
>> 4KViewDownload- Hide quoted text -
>>
>> - Show quoted text -
>>
>
>
>


Вложения

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

Предыдущее
От: "Gopalakrishnan, Mythili"
Дата:
Сообщение: Re: DatabaseMetaData.getTypeInfo()
Следующее
От: "Shawn Chasse"
Дата:
Сообщение: Pgsql jdbc driver 8.3 Build 603: Commit deadlock