|
|
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Всем привет! Столкнулся с проблемой приема массива из Oracle (out параметр процедуры) в Java. У меня используются три типа T_REC,T_NUMBER1,T_TAB Код: plsql 1. 2. 3. 4. 5. 6. Типы T_NUMBER1 и T_TAB это таблицы типов NUMBER и T_REC соответственно. Взято из примера Дениса Попова, но переделал под свой случай! Код: java 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. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Теперь собственно проблема, при работе с полученными массивами у меня вместо текста у p_func_all выводится просто "???". Т.е. любое текстовое значение выводится как "???". Такая проблема с типом T_TAB. У T_NUMBER1 все нормально p_dvs_id выводится нужный. При выполнении процедуры в базе там все нормально выводится, текст какой и должен быть. Вопрос как получать правильные значения типа VARCHAR2? Просто пробовал заменять тип T_TAB, на T_VARCHAR2 (таблица VARCHAR2), разницы никакой, все теже "???" Что это, проблема с кодировкой? Что то в джаве надо дописать? Использую netbeans... Помогите кто, чем может... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 13:49:44 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Алексей LEXUS, к тоже OUT в процедурах использует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 14:45:02 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Алексей LEXUSЧто это, проблема с кодировкой? Что то в джаве надо дописать? Использую netbeans... В Oracle JDBC-драйвере 10.2 и 11.2 есть файл orai18n.jar - он подключен к проекту? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 15:37:16 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
На сколько помню именно данный файл не подключен. Вроде только orai06n.jar подключен. Из-за данного файла могут быть проблемы?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 19:03:23 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
NLS_LANG ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 19:12:57 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Алексей LEXUSНа сколько помню именно данный файл не подключен. Вроде только orai06n.jar подключен. Из-за данного файла могут быть проблемы?????? без него у меня в консоли тоже одни вопросы: + CallableStructArray.java Код: java 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 20:13:11 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Сейчас вообще непонятное творится. При добавлении библиотеки orai18n.jar перестал создаваться Connection. Выдает следующую ошибку авторException in thread "main" java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter; at oracle.sql.converter.CharacterConverterFactoryOGS.make(CharacterConverterFactoryOGS.java:43) at oracle.sql.CharacterSetWithConverter.getInstance(CharacterSetWithConverter.java:95) at oracle.sql.CharacterSetFactoryThin.make(CharacterSetFactoryThin.java:126) at oracle.sql.CharacterSet.make(CharacterSet.java:450) at oracle.jdbc.driver.DBConversion.init(DBConversion.java:151) at oracle.jdbc.driver.DBConversion.<init>(DBConversion.java:112) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1075) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) at java.sql.DriverManager.getConnection(DriverManager.java:579) at java.sql.DriverManager.getConnection(DriverManager.java:221) at contooracle.CallableStructArray.main(CallableStructArray.java:38) Если библиотеку убрать, оставить только ojdbc6.jar, то по прежнему выводятся вопросы вместо текста. Чудеса прям((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 07:43:56 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Забыл сказать Денис, тоже самое если выполнить приведенный выше новый код класса CallableStructArray. Только у меня свои настройки подключения Код: java 1. 2. 3. База 10.2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 07:49:44 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
On 15.11.2012 08:43, Алексей LEXUS wrote: > Сейчас вообще непонятное творится. При добавлении библиотеки orai18n.jar перестал создаваться Connection. Может Быть orai18n.jar и ojdbc6.jar из разных версий jdbc-драйвера, или они берутся из одного ORACLE_HOME? И в какой кодировке создана сама база? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 08:04:11 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
С файлом ojdbc6.jar не работает ни файл orai18n.jar, ни nls_charset12.jar. выдается та самая ошибка выше. Но если заменить файл ojdbc6.jar на ojdbc14.jar. То все начинает работать! Вопрос почему??? И какая разница между ojdbc6.jar и ojdbc14.jar? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 08:05:59 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
ojdbc6.jar оказывается вообще не лежит в директории oracle, он у нас в проекте используется, его походу отдельно скачивали. А ojdbc14.jar лежит в C:\oracle\product\10.2.0\client_1\jdbc\lib. orai18n.jar лежит в C:\oracle\product\10.2.0\client_1\jlib. Походу да, ojdbc6.jar и ojdbc14.jar с orai18n.jar из разных версий драйверов. Надо будет согласовать мне замену ojdbc6.jar на ojdbc14.jar. Денис, спасибо большое!!! Все таки проблема была в нехватке orai18n.jar или nls_charset12.jar. База с кодировкой CL8MSWIN1251. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 08:27:13 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
On 15.11.2012 09:05, Алексей LEXUS wrote: > С файлом ojdbc6.jar не работает ни файл orai18n.jar, ни nls_charset12.jar. выдается та самая ошибка выше. > > Но если заменить файл ojdbc6.jar на ojdbc14.jar. То все начинает работать! И русские буквы появились? > Вопрос почему??? И какая разница между ojdbc6.jar и ojdbc14.jar? По-моему у тебя они из разных версий драйверов, в 10.1 еще нет ojdbc6.jar: http://www.oracle.com/technetwork/database/enterprise-edition/jdbc101040-094982.html а в 11.2 уже нет ojdbc14.jar: http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html А разница в используемой JDK для сборки архива. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 08:28:58 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
On 15.11.2012 09:27, Алексей LEXUS wrote: > Надо будет согласовать мне замену ojdbc6.jar на ojdbc14.jar. Думаю лучше подняться на последнюю версию, т.е. ojdbc6.jar, взяв все необходимое отсюда: http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 08:42:02 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Скачал новую версию orai18n.jar, все заработало! Денис, спасибо огромное! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 12:06:51 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
Денис, мучает еще один вопрос. Мы можем обращаться только к глобальным типам, которые описаны в разделе TYPES. Я пробовал обращаться к типам описанным непосредственно в пакете, но у меня ничего не получилось. Вылетает ошибка и их просто не видно. Можно ли как-то вызывать процедуры с типами описанными в пакете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 13:09:16 |
|
||
|
Проблема приема массива из Oracle
|
|||
|---|---|---|---|
|
#18+
On 15.11.2012 14:09, Алексей LEXUS wrote: > Можно ли как-то вызывать процедуры с типами описанными в пакете? Только к скалярным, например, вида TABLE OF NUMBER: http://docs.oracle.com/cd/E11882_01/java.112/e16548/oraint.htm#JJDBC28182 Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 14:41:55 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2130562]: |
0ms |
get settings: |
14ms |
get forum list: |
29ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
65ms |
get topic data: |
23ms |
get forum data: |
6ms |
get page messages: |
95ms |
get tp. blocked users: |
3ms |
| others: | 307ms |
| total: | 558ms |

| 0 / 0 |
