|
|
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Есть ХР такого плана (posytgres) автор create function delsmth(ids int[]) returns void as $body$ begin delete from table where id = ANY (ids); end; $body$ LANGUAGE 'plpgsql' VOLATILE; Смысл в том, что она принимает в качестве параметра массив. Подскажите код ее вызывающий. Сейчас пишу Код: plaintext 1. 2. 3. 4. на что получаю: Can't infer the SQL type to use for an instance of [I. Use setObject() with an explicit Types value to specify the type to use. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 17:48:29 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
А так? proc.setObject(1, param, Types.ARRAY ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 17:51:19 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, А так Cannot cast an instance of [I to type Types.ARRAY =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 17:54:34 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Забыл сказать. Тип параметра в ХП можно менять, но без фанатизма, т.е. чтобы она все равно массив принимала. Если это что-то меняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 17:55:43 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Если я все правильно понимаю, вам нужно преобразователь сделать из Postgresql Array в java Array http://jdbc.postgresql.org/documentation/head/ext.html http://jdbc.postgresql.org/documentation/publicapi/org/postgresql/util/PGobject.html http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/jdbc/pgjdbc/org/postgresql/util/PGobject.java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 18:04:52 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Саабразим Аль-каши Бухани wrote: > Смысл в том, что она принимает в качестве параметра массив. Подскажите Видишь ли, это не совсем стандартная фича - массив в качестве параметра процедуры. И я не удивлюсь, если это вообще в JDBC не поддерживается. Т.е. ты должен посмотреть: -- поддерживается ли это в JDBC, -- если нет, то есть ли расширение в конкретном драйвере PG для этого. Если ни того, ни другого нет, то -- всё. Вообще, передавать массив в качестве параметра процедуры очень странно, и не очень правильно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 20:21:16 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
MasterZiv Вообще, передавать массив в качестве параметра процедуры очень странно, и не очень правильно. Возможно. Необходимо просто передавать переменное число параметров запросу. Вот начало обсуждения. Может, посоветуете еще варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 20:53:34 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Саабразим Аль-каши Бухани пишет: > Возможно. Необходимо просто передавать переменное число параметров > запросу. Вот <http://sql.ru/forum/actualthread.aspx?tid=667182> начало > обсуждения. Может, посоветуете еще варианты? Не передавать запросу переменное число параметров. вызывать процедуру 1 N раз, передавая по одному параметру, параметры накапливать в БД, потом вызвать процедуру 2, с идентификатором этого набора параметров (или неявным идентификатором сессии, если это возможно). И уже процедура 2 делает то, что надо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 20:56:26 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Devider А так Cannot cast an instance of [I to type Types.ARRAY =) Придется ему реализацию java.sql.Array скармливать. Кстати, есть мнение что в вырожденых случаях можно через запятую и в setString()/setObject() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 21:03:58 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
И ещё вариантик: http://java.sun.com/javase/6/docs/api/java/sql/Connection.html#createArrayOf(java.lang.String,%20java.lang.Object%5B])]http://java.sun.com/javase/6/docs/api/java/sql/Connection.html#createArrayOf(java.lang.String,%20java.lang.Object[]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 21:09:25 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Ну в итоге работает так. Код: plaintext 1. 2. 3. 4. 5. Есть некоторые сомнения по поводу не фигню ли я делаю, но это уже другой вопрос. Спасибо за идеи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2009, 14:44:04 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Работает, да не совсем. Работает только если конектиться так: Код: plaintext 1. 2. Если же получать конекшн из пула Код: plaintext 1. 2. 3. 4. то на строку Array array = connection.createArrayOf("integer", param); получаю Цитата: авторorg.apache.jasper.JasperException: An exception occurred processing JSP page /hello.jsp at line 52 49: out.println("so, you can cook:<br>"); 50: 51: try{ 52: java.sql.Array array = cn.createArrayOf("integer", params); 53: CallableStatement proc = cn.prepareCall("{ call getallprods(?) }"); 54: proc.setArray(1, array); 55: ResultSet rs = proc.executeQuery(); Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) root cause javax.servlet.ServletException: java.lang.AbstractMethodError: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array; org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) org.apache.jsp.hello_jsp._jspService(hello_jsp.java:125) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) root cause java.lang.AbstractMethodError: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array; org.apache.jsp.hello_jsp._jspService(hello_jsp.java:105) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) Что бы это значило? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 11:17:34 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Используемый DBCP контейнера не поддерживает JDBC API последней версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 17:05:32 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
BlazkowiczИспользуемый DBCP контейнера не поддерживает JDBC API последней версии. А.. что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 11:33:33 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
Пропатчить томкат либо прикрутить другой пул, который поддерживает нужный метод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 13:42:52 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
А как прикрутить и который? И где почитать? Блин.. Что хоть в гугле написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 14:28:58 |
|
||
|
Передача массива в ХП
|
|||
|---|---|---|---|
|
#18+
вот тоже наступил на такую граблю с c3p0-0.92.jar Кто то знает уже способ лечения ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2013, 16:27:36 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38231221&tid=2129521]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
46ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
79ms |
get tp. blocked users: |
3ms |
| others: | 273ms |
| total: | 465ms |

| 0 / 0 |
