powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / опять про кодировку для записи в Oracle
17 сообщений из 17, страница 1 из 1
опять про кодировку для записи в Oracle
    #33993642
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

подскажите плиз (еще раз), как занести русский текст в Оракл через .jsp -> bean, если в БД чарсет установлен CL8ISO8859P5?

Спасибо большущее
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993690
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в сервлет приходит нормальный текст?

-----------------------------------
The Bat + My Gate
IE - отстой. Искренне желаю смерти его создателям

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993701
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mastanik wrote:
> подскажите плиз (еще раз), как занести русский текст в Оракл через .jsp
> -> bean, если в БД чарсет установлен CL8ISO8859P5?

Ипользуй поля типа NVARCHAR2.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993861
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой тип соответствует NVARCHAR2 в Java, обычный стринг не лезет
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993870
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mastanik wrote:

> А какой тип соответствует NVARCHAR2 в Java, обычный стринг не лезет

Отчего ж не лезет? NVARCHAR2 это юникодный VARCHAR2.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993890
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиг знает, изменил в табличке с VARCHAR2 на NVARCHAR2, данные просто не заносятся и все. никаких ексепшенов не вылетает.
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993895
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.stanford.edu/dept/itss/docs/oracle/10g/java.101/b10983/datamap.htm

тут вот пишут, что какой-то oracle.sql.NString
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993956
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя нет, туплю

ERROR at line 1:
ORA-12704: character set mismatch
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33993981
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи, кодировки своей базы:
Код: plaintext
select * from sys.props$ where name like 'NLS%CHARACTERSET';

А так все заносится:
Код: 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.
 import  java.sql.*;

 public   class  NCharTest {

   private   static   final  String USERNAME = "<username>";

   private   static   final  String PASSWORD = "<password>";

   private   static   final  String SERVER = "jdbc:oracle:thin:@<server>:1521:<SERVICE_NAME>";

   public   static   void  main(String args[])
     throws  Exception {
    DriverManager.registerDriver( new  oracle.jdbc.OracleDriver());
    Connection con = DriverManager.getConnection(SERVER, USERNAME, PASSWORD);
    Statement st = con.createStatement();
    PreparedStatement pst;

     try  {
      st.execute("drop table test_nchar");
    }  catch  (SQLException e) {}
    st.execute("create table test_nchar(ndata nvarchar2(32))");

    String stEscape = "ЙЦУКЕ";
    System.out.println("stEscape=" + stEscape);
    pst = con.prepareStatement("insert into test_nchar (ndata) values (?)");
    pst.setString( 1 , stEscape);
    pst.execute();
    ResultSet rs = st.executeQuery("select * from test_nchar");
     while  (rs.next()) {
      System.out.println(rs.getString( 1 ));
    }

    rs.close();
    st.close();
    con.close();
  }
}
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994033
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выводит CL8ISO8859P5

кстати, у меня Оракл 8.

пробовал так
http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/nchar/readme.html

не выходит.
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994093
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mastanikвыводит CL8ISO8859P5

кстати, у меня Оракл 8.
Это значение параметра NLS_NCHAR_CHARACTERSET? Тогда имхо придется менять кодировку самой БД, через полное пересоздание или как-то иначе, но на свой страх и риск, например: /topic/278953#2522444

Есть в 8-ке такая багофича, что для Nvarchar\'ов можно выбрать не-юникод. С 9-ки уже нельзя.
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994353
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, это значение NLS_NCHAR_CHARACTERSET.

а какую кодировку надо установить, чтобы все нормальненько было?
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994417
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mastanik wrote:

> да, это значение NLS_NCHAR_CHARACTERSET.
>
> а какую кодировку надо установить, чтобы все нормальненько было?

Если тебе к английским нужны только русские, то при создании БД укажи для нее
кодировку (т.е. NLS_CHARACTERSET) CL8MWWIN1251, а для NLS_NCHAR_CHARACTERSET
возьми какой-нибудь юникод, UTF8, например.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994428
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу, а если мне не только русский необходим к английскому, то все надо в UTF-8 переводить...плохо

спасибо за помощь!
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994437
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и без этого точно никак, да?
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994504
garry_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно поэксперементировать со следующим фрагментом. Может поможет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   public   static  String getConvertString(String s) 
  {
     byte  b[];
    String s1;

     try {
      b=s.getBytes("ISO-8859-1");
      s1= new  String(b,"windows-1251");
    }
     catch (Exception e){
       System.out.println("Ошибка");
       System.out.println(e.toString());
    }
     return  s1;
  }  
...
Рейтинг: 0 / 0
опять про кодировку для записи в Oracle
    #33994554
mastanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, только вопросы одни отображаются
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / опять про кодировку для записи в Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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