powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
12 сообщений из 12, страница 1 из 1
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37697407
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
Еcть такой код:


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	
   ....
   try {                
  
       	conn = ((Session) this.getEntityManager().getDelegate()).connection();

        cs = conn.prepareStatement( "insert into acdsys.Vmiseam values (null, 4, sysdate, 28, 31, ?,'D222','A333')" );
       	cs.setString(1, test2);  
       	cs.executeUpdate();
    ....



в дебагере видно что переменная test2 имеет кириллическую строку! Строка вставляестся - но кириллица путается в знаки вопросов (перевернутые)

Однако если вставтить напрямую из базы:

Код: plsql
1.
update acdsys.Vmiseam set v1 = UNISTR('\041F\0435\0442\044F') where id = 32



то вставленная строка (='Петя') отлична видна на форме Web-приложения! Т.е. проблема только с инсертом, т.е. похоже с драйвером. Нагуглил что вроде надо указать ему на "дефолтность" Nvarchar-a .... Но вот такое у меня увы - падает:

Код: java
1.
2.
3.
	        	Properties connProps = conn.getClientInfo();
	        	connProps.setProperty("oracle.jdbc.defaultNChar","true");
	        	conn.setClientInfo(connProps);



Ах да - cреда: SEAM от JBOSS! - Помогите кто чем сможет, плиз!!!





____________________________________________________________
сейчас работаю на: Oracle 11.2.0.2.0, 64bit, standard edition, SLES-10. APEX 3.2
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37698448
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORAngutang,

Скорее всего у вас неверно установлена кодировка базы в Oracle.
Какая она у вас?
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37698466
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrick,

Прошу прощения, поспешил с ответом не обратив внимание, что вы используете поле типа nvarchar.
Посмотрите здесь и здесь
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37699521
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickGarrick,

Прошу прощения, поспешил с ответом не обратив внимание, что вы используете поле типа nvarchar.
Посмотрите здесь и здесь


Cпасибо! Но че то все равно не получается ((( Когда делаю:

cs.setNString( 3, this.wort1neu );

огребаю:
java.lang.reflect.InvocationTargetException"

а когда:

cs.setObject( 3, this.wort1neu, Types.NVARCHAR ); //также и с Types.NCHAR

- java.sql.SQLException: invalid column type


cs.setObject( 3, this.wort1neu, Types.NCHAR );
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37699540
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё так пробовал:

((OraclePreparedStatement)cs).setNString( 3, this.wort1neu );

огребаю:

"org.jboss.resource.adapter.jdbc.WrappedPreparedStatement cannot be cast to oracle.jdbc.OraclePreparedStatement"

кстати база сейчас: Oracle 9.0.1.1.1
(не знаю, важно ли это в данном случае?)
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37699923
ORAngutangогребаю:

"org.jboss.resource.adapter.jdbc.WrappedPreparedStatement cannot be cast to oracle.jdbc.OraclePreparedStatement"


http://docs.jboss.org/jbossas/javadoc/4.0.4/connector/org/jboss/resource/adapter/jdbc/WrappedPreparedStatement.html#getUnderlyingStatement%28%29 ?
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37699965
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORAngutang
Cпасибо! Но че то все равно не получается ((( Когда делаю:

cs.setNString( 3, this.wort1neu );

огребаю:
java.lang.reflect.InvocationTargetException"

а когда:

cs.setObject( 3, this.wort1neu, Types.NVARCHAR ); //также и с Types.NCHAR

- java.sql.SQLException: invalid column type


cs.setObject( 3, this.wort1neu, Types.NCHAR );
В моей первой ссылке сказано, что это зависимо от версии JDBC драйвера.
I was using ojdbc 11.2.0.1. When I switched to 11.2.0.2, I could get setNString() working properly.
Но тут говорится о "чистом" использовании JDBC, возможно вам следует задействовать какие-то JBoss классы.
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37700246
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот же самый код из консольного приложения в правильной кодировке пишет? Отделите в чем проблема в Oracle или в JBoss.
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37701505
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirТот же самый код из консольного приложения в правильной кодировке пишет? Отделите в чем проблема в Oracle или в JBoss.

понятия не имею, никогда не писал на яве консольные приложения и честно говоря времени на это абсолютно нет! И так всё работает кроме долбанного инсерта юникода!!! (а ведь даже селект - тот же самые nativ query!!! - вычитывает правильно - только с записью бьюсь уже которые день!!!!!!!!!!!!!!!)
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37701509
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrick Но тут говорится о "чистом" использовании JDBC, возможно вам следует задействовать какие-то JBoss классы.

блин, так вот какие?!! Я сам абсолютный новичек в веб-программировании и в ява вообще!
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37701512
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
календареведORAngutangогребаю:

"org.jboss.resource.adapter.jdbc.WrappedPreparedStatement cannot be cast to oracle.jdbc.OraclePreparedStatement"


http://docs.jboss.org/jbossas/javadoc/4.0.4/connector/org/jboss/resource/adapter/jdbc/WrappedPreparedStatement.html#getUnderlyingStatement%28%29 ?

не понял, для чего приведена ссылка?! Можно пример конкретного использования этого WrappedPreparedStatement в моем случае??
Cпасибо!
...
Рейтинг: 0 / 0
кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
    #37701577
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фу блин, наконец-то разобрался! Думал уже рехнусь скоро с этим юникодом!

короче в группе
"open launch configuration "
настроек рабочего JBOSS-Server-а (двойной щелчек мышкой на нем в эклипсе) заносятся 2 параметра.

-Doracle.jdbc.defaultNChar=true
-Doracle.jdbc.convertNcharLiterals=true

и усё - юникод пошел!
Кому поможет в будующем - буду рад! ))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / кто поможет с insert-ом кириллической строки в nvarchar-поле (в Oracle)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]