|
|
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
Есть хранимые процедуры оракл. Надо вызывать их динамически из джавы. Т.е. формировать строку 'begin proc(p1=>?,p2=>?,...,pn>?)' и выполнять ее как код, присваивая значения цикл по и set_param(1,value) конец цикла Джава версии 1.3. Возможно ли это? ЗЯ Я сам не джавист. Просто наши джависты уверяют, что невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 17:43:48 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
АФЫВАЫ wrote: > Есть хранимые процедуры оракл. > Надо вызывать их динамически из джавы. > Т.е. формировать строку > 'begin proc(p1=>?,p2=>?,...,pn>?)' > и выполнять ее как код, присваивая значения > > цикл по и > set_param(1,value) > конец цикла > > Джава версии 1.3. > > Возможно ли это? > > ЗЯ Я сам не джавист. Просто наши джависты уверяют, что невозможно. Можно, думаю, А в чем именно загвоздка, пример нужен? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 18:00:18 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
Если не затруднит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 18:27:16 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
Т.е. имеется строка с вызовом процедуры, надо в цикле подставить параметры и вызвать эту самую процедуру? Вроде именно так всегда и делается, непонятно, в чем состоит загвоздка. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 19:00:49 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
Для меня тоже не понятно в чем загвоздка. Но наших джавистов смущает неопределенное число параметров и их порядок. Они ссылаются что для вызова процедур используют какой-то класс, который вызывает заданную процедуру и параметры ей должны передаваться в том же порядке, как они описаны в оракл. Я с джавой не работал, но уверен, что там должен быть какой-то механизм, который позволяет сформировать строку запроса наподобии 'begin proc(p1=>?,p2=>?,...,pn>?); end;', распарсить ее, передать параметры и выполнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 19:44:19 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
АФЫВАЫ wrote: > Для меня тоже не понятно в чем загвоздка. > Но наших джавистов смущает неопределенное число параметров и их порядок. > Они ссылаются что для вызова процедур используют какой-то класс, который > вызывает заданную процедуру и параметры ей должны передаваться в том же > порядке, как они описаны в оракл. Может в этом классе не используется привязка параметров по имени со стороны plsql, т.е. строка вызова выглядит как 'begin proc(?,?,?,...,?); end;'. > Я с джавой не работал, но уверен, что там должен быть какой-то механизм, > который позволяет сформировать строку запроса наподобиe 'begin > proc(p1=>?,p2=>?,...,pn>?); end;', распарсить ее, передать параметры и > выполнить. В JDBC строка вызова может формироваться именно так, т.е: Код: plaintext 1. 2. 3. 4. 5. причем привязка параметров со стороны Java идет по порядковым номерам знаков вопроса как указателей на параметр. В последних версиях JDBC для Оракла появилась возможность привязывать java-параметры прямо по именам параметров процедуры. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 19:57:32 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
Спасибо. Это то. что мне и нужно было. Заодно и ответили в чем суть проблемы для наших джавистов - они грят, что в 1.3 не могут обращаться к параметру по имени. Никак не мог им втолковать, что можно обращаться и по номерам. Ладно буду с ними общаться теперь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2007, 20:54:11 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
................. CallableStatement cstmt = conn.prepereCall("? = myproc(?)") cstmt.retisterOutParameter(1, Types.VARCHAR); cstmt.setString(2, " param 2"); cstmt.executeUpdate(); String returnValue = cstmt.getString(1); conn.close(); ............... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2007, 13:39:20 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
АФЫВАЫСпасибо. Это то. что мне и нужно было. Заодно и ответили в чем суть проблемы для наших джавистов - они грят, что в 1.3 не могут обращаться к параметру по имени. Никак не мог им втолковать, что можно обращаться и по номерам. Ладно буду с ними общаться теперь. Я бы предложил следующее: скачать последние JDBC-драйвера для Oracle, там есть архив - classes12.jar или classes12_g.jar - предназначенный для использования с JDK 1.2 и 1.3. В них, кроме возможности вызова оракловых процерур с привязкой параметров по именам, дополнительно есть методы для привязки java-парамеров по имени. Например, если вместо интерфейса PreparedStatement использовать класс с его реализацией OraclePreparedStatement, то кроме методов setXXX() сможешь использовать методы setXXXAtName(). Примеры можно найти в Oracle10g JDBC Samples , раздел Named Parameters Sample . Может быть новые возможности драйверов позволят вам договориться:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2007, 13:53:26 |
|
||
|
Вызов ХП Оракл
|
|||
|---|---|---|---|
|
#18+
не совсем понятно, зачем спрашивать то, что описано в док. по Oracle JDBC, которую надо просмотреть всякому, кто работает с Oracle, даже если он уже знаком с JDBC. Там эти вопросы отвечены. Также зачем давать ответы, совпадающие с тем, что написано в этой документации. В составе документации Oracle есть отдельная книга по JDBC, и необходимо проситать комментарии к JDBC драйверу (хотя он ставится вместе с Oracle, но на сайте Oracle может оказаться более новая версия, причём драйвер для 10g годится также для 9i). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2007, 17:59:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34493757&tid=2145889]: |
0ms |
get settings: |
15ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
46ms |
get topic data: |
18ms |
get forum data: |
6ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 315ms |
| total: | 520ms |

| 0 / 0 |
