Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / ORA-12899 при исп-и DML формы / 7 сообщений из 7, страница 1 из 1
17.03.2018, 18:06
    #39616277
гр к
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-12899 при исп-и DML формы
Пытаюсь откорректировать поле, у кот-го всего 2 значения - установил на контроле типа select list

In the List of Values attribute group, set Type to Static Values, while in the Static Values text area enter STATIC:b,s

получаю ошибку ORA-12899: value too large for column "BUZ"."RTR_TRADES"."O_DIR" (actual: 3, maximum: 1)
При этом обычным апдейтом поле корректируется норм
Код: plsql
1.
set o_dir = 'b'


Как быть?
Поле таблицы типа char(1)
...
Рейтинг: 0 / 0
17.03.2018, 18:19
    #39616280
гр к,
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-12899 при исп-и DML формы
Apex 5.1, oracle 11 g XE
...
Рейтинг: 0 / 0
19.03.2018, 10:55
    #39616662
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-12899 при исп-и DML формы
В кодировке явно беда.
Скорее всего БД работает в 1251. А приложение в UTF8 (Почему три байта а не два, может даже не UTF8 ).
...
Рейтинг: 0 / 0
19.03.2018, 11:02
    #39616667
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-12899 при исп-и DML формы
Пример. У меня БД работает в UTF8
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
user@oracle
 >CREATE TABLE"A"  ("b" CHAR(1) );

Table created.

user@oracle
 >insert into a values ('Ё');
insert into a values ('Ё')
                      *
ERROR at line 1:
ORA-12899: value too large for column "PORTAL"."A"."b" (actual: 2, maximum: 1)



Поле "b" CHAR(1) означает что поле занимает 1 байт, а не 1 символ.
...
Рейтинг: 0 / 0
19.03.2018, 16:44
    #39616932
гр к
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-12899 при исп-и DML формы
blkangel, а как правильно проблему забороть?
В настройках апекса что-то менять или увеличивать размер поля до 3?
...
Рейтинг: 0 / 0
20.03.2018, 09:45
    #39617242
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-12899 при исп-и DML формы
Размер однозначно установить в байтах согласно кодировки.
...
Рейтинг: 0 / 0
20.03.2018, 13:32
    #39617492
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-12899 при исп-и DML формы
Код: sql
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.
[oracle@OracleTemp ~]$ set |grep NLS
NLS_LANG=AMERICAN_CIS.AL32UTF8
[oracle@OracleTemp ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 20 13:27:57 2018
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

SQL> CREATE TABLE"A"  ("b" CHAR(1) );
Table created.

SQL> insert into a values ('Ё');
1 row created.
SQL> commit;
Commit complete.

SQL> exit;
Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
[oracle@OracleTemp ~]$ unset NLS_LANG
[oracle@OracleTemp ~]$  set |grep NLS
_=NLS_LANG
[oracle@OracleTemp ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 20 13:29:01 2018
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
SQL> insert into a values ('Ё');
insert into a values ('Ё')
                      *
ERROR at line 1:
ORA-12899: value too large for column "SYS"."A"."b" (actual: 2, maximum: 1)

SQL> 


Выставить NLS_LANG=AMERICAN_CIS.AL32UTF8
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / ORA-12899 при исп-и DML формы / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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