|
|
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Взято с Metalink . При работе через THIN-драйвер отсутствует возможность передачи -приема pl/sql таблиц Oracle. Но можно воспользоваться оракловыми объектными типами. Код, который необходимо выполнить на сттороне Oracle: Код: 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. Демонстрация работы с массивами: Код: 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. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:37 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Можно дополнить и описать использование Custom Object Classes for Oracle Objects (завтра может напишу). Но есть глюк , от которого избавиться не удалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 16:17 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Пусть имеются вышеописанные типы rectype и rectab. Код: plaintext 1. 2. 3. 4. 5. 6. 1) стандартный интерфейс SQLData; 2) оракловые интерфейсы ORAData и ORADataFactory. Опишу второй способ. 1) Для генерации java-классов, которые будут представлять оракловые типы, удобно воспользоваться утилитой JPublisher ([ORACLE_HOME]/bin/jbub.exe). Необходимо прописать следующие пути: [ORACLE_HOME]/jdbc/lib/classes12.zip; [ORACLE_HOME]/sqlj/lib/runtime12.zip and [ORACLE_HOME]/sqlj/translator.zip; [ORACLE_HOME]/jdbc/lib/nls_charset12.zip 2) Создаем файл jprop.txt: jpub.driver=oracle.jdbc.driver.OracleDriver jpub.numbertypes=oracle jpub.url=jdbc:oracle:thin:@localhost:1521:info jpub.builtintypes=oracle jpub.user=tim/t jpub.sql=rectab 3) В командной строке: Код: plaintext 1. 2. 4) Код: 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. 52. 53. 54. 55. 56. 57. 58. 59. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 11:02 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
2Timm: я свою часть предложил в разделе FAQ, предложи свою:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 13:00 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Denis Popov2Timm: я свою часть предложил в разделе FAQ, предложи свою:)на всякий: фак опубликован, но, думаю, что не стоит удалять одноименные топики (как этот, например) из форума - яндекс и гугл пусть посетителей увеличивают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 13:10 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
TimmМожно дополнить и описать использование Custom Object Classes for Oracle Objects (завтра может напишу). Но есть глюк , от которого избавиться не удалось. От этого глюка избавиться можно, если поставить orai18n.jar и classes12.jar из 10g . Кроме того, проблемы с выводом русских букв не останется если использовать BLOB, как это показано здесь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2005, 15:40 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
А подходят ли драйвера от 10g к базам на oracle 8i и 9i. У меня при их использовании вываливается ошибка ORA-12705: invalid or unknown NLS parameter value specified хотя установлено set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:42 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
йцукенА подходят ли драйвера от 10g к базам на oracle 8i и 9i У меня после наката пача Oracle 9.2.0.6 перестал работать возврат курсоров из хранимых процедур при использовании JDBC от 10g. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:53 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Denis Popov[У меня после наката пача Oracle 9.2.0.6 перестал работать возврат курсоров из хранимых процедур при использовании JDBC от 10g. А как ты запустил клиента? Дело в том, что он у меня вообще не поднимается с этими драйверами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 14:02 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
йцукенА как ты запустил клиента? Дело в том, что он у меня вообще не поднимается с этими драйверами. Запустил и все:) Ни с какой ошибкой при "запуске" (т.е. при создании соединения?) не столкнулся. М.б. из-за того, что у нас все базы созданы в юникоде, а это порой избавляет от многих проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 14:45 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Denis Popov[Запустил и все:) Ни с какой ошибкой при "запуске" (т.е. при создании соединения?) не столкнулся. М.б. из-за того, что у нас все базы созданы в юникоде, а это порой избавляет от многих проблем. Ну тогда конечно, у меня база в 1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 14:51 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Сделал всё по написанному выше: в java на строчке pArrayList.add(new STRUCT(structDesc, con, pRecord)); вываливается ошибка: java.sql.SQLException: Non supported character set: oracle-character-set-171 at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46) at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:171) at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:135) at oracle.sql.CHAR.<init>(CHAR.java:159) at oracle.sql.CHAR.<init>(CHAR.java:183) at oracle.jdbc.oracore.OracleTypeCHAR.toDatum(OracleTypeCHAR.java:161) at oracle.sql.StructDescriptor.toOracleArray(StructDescriptor.java:830) at oracle.sql.StructDescriptor.toArray(StructDescriptor.java:1735) at oracle.sql.STRUCT.<init>(STRUCT.java:145) БД 8.1.7 NLS_NAME = AMERICAN_AMERICA.CL8MSWIN1251 Причём задаю для структуры не русские буквы, английские слова пишу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 13:13 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
nls_charset12.zip в CLASSPATH есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 14:25 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Да есть. Я вообще в сервлете всё это делаю, а сервлет запускается на Tomcat'е. Эту библиотеку nls_charset.zip я положил вместе с остальными в Tomcat\common\lib\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 15:58 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
причём, я посмотрел, что в этой библиотеке nls_charset12.zip есть класс oracle\sql\converter\CharacterConverter00ab.class 00ab = 171 наверное который работает с этим чарсетом. после компиляции все библиотеки правильно лежат для Томкэта: в %Tomcat%\webapps\Имя_приложения\WEB-INF\lib\ но всё-равно ошибка вылетает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 16:08 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Локально тоже не работает? Что возвращает запрос? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 16:29 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Вот еще, вдруг чего подскажет: http://forums.oracle.com/forums/search.jspa?threadID=&q=%22oracle-character-set-171%22&objID=&dateRange=all&userID=&numResults=30 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 16:42 |
|
||
|
FAQ: Java & Oracle, передача-прием массивов.
|
|||
|---|---|---|---|
|
#18+
Денис, спасибо за помощь! решил проблему: оказывается надо было использовать более свежую nls_charset12.zip, вернее nls_charset12.jar. Я брал эту библиотеку для 8-ой версии оракла - не работало, взял для 9-ки - всё стало работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 17:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33433651&tid=2150701]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 408ms |

| 0 / 0 |
