|
|
|
привязка параметров в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть, например, запрос, оформленный в виде хранимой процедуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. Код: plaintext 1. 2. - тоже самое. 1. Как это сделать? И для чего вообще тогда существуют <callablestmt>.setXXX с первым параметром - строкой? Разве туда не имя параметра указывается? Ни в спеке, ни в oracle jdbc faq примеров по этому поводу не нашел. 2. Мне нужно назначить параметры на единый pl/sql-ник с несколькими запросами: Код: plaintext 1. 2. 3. 4. И что, каждый раз один и тот же параметр по новой через индексы переназначать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 12:20:54 |
|
||
|
привязка параметров в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
Привязка параметров по имени работает в драйверах от 10-ки, но не везде, не во всех случаях. setXXX() с первым параметром-строкой описаны в интерфейсах JDBC, поэтому они есть, но имхо недореализованы. Более того, ораклы лепят свои методы, например, OraclePreparedStatement.setStringAtName(). Примеры есть тут: http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/oracle10g/index.html , например, Named Parameters Sample ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 12:52:29 |
|
||
|
привязка параметров в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
ddockerДобрый день! Есть, например, запрос, оформленный в виде хранимой процедуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Это не ХП. Это анонимный блок PL/SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 13:02:03 |
|
||
|
привязка параметров в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
Timm Это не ХП. Это анонимный блок PL/SQL. Да, конечно. А как кто поступает с этим? Ориентироваться на jdbc и вынужденно привязывать по номеркам или писать под OracleStatement-ы, а потом глядишь и jdbc поправят? И еще: действительно ли такие вот анонимные блоки значительно проигрывают по производительности PreparedStatement? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 16:23:10 |
|
||
|
привязка параметров в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
ddocker Timm Это не ХП. Это анонимный блок PL/SQL. Да, конечно. А как кто поступает с этим? Ориентироваться на jdbc и вынужденно привязывать по номеркам или писать под OracleStatement-ы, а потом глядишь и jdbc поправят? И еще: действительно ли такие вот анонимные блоки значительно проигрывают по производительности PreparedStatement? 1. Бинд по имени c драйверами 10ки работает только с ХП. 2. Смотря как использовать. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 17:26:15 |
|
||
|
привязка параметров в хранимую процедуру
|
|||
|---|---|---|---|
|
#18+
Не удивительно что в 5 раз быстрее даже на 10-кратном объёме: pstmt.executeBatch() после последнего цикла не делается. ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 18:31:01 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34016621&tid=2147993]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 501ms |

| 0 / 0 |
