powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разный DEFAULT NULL в словаре
3 сообщений из 3, страница 1 из 1
Разный DEFAULT NULL в словаре
    #39681185
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нарвался сегодня на неприятность.
Будьте осторожнее с обработкой значения поля %_TAB_COL[UMN]S.DATA_DEFAULT (LONG), если поле DEFAULT NULL:
Код: plsql
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.
Connected to Oracle Database 12c Enterprise Edition Release 12.1.///
Connected as ///

SQL> 
SQL> Create Table Def_Null_Test (n Number);

Table created


SQL> Create Table Def_Null_Log (Seq Number, Def_Val Clob);

Table created


SQL> Insert Into Def_Null_Log
  2    (Seq, Def_Val)
  3    Select 0, To_Lob(Data_Default)
  4      From User_Tab_Columns
  5     Where Table_Name = 'DEF_NULL_TEST';

1 row inserted


SQL> Alter Table Def_Null_Test Modify n Default Null;

Table altered


SQL> Insert Into Def_Null_Log
  2    (Seq, Def_Val)
  3    Select 1, To_Lob(Data_Default)
  4      From User_Tab_Columns
  5     Where Table_Name = 'DEF_NULL_TEST';

1 row inserted


SQL> Alter Table Def_Null_Test Modify (n Default Null);

Table altered


SQL> Insert Into Def_Null_Log
  2    (Seq, Def_Val)
  3    Select 2, To_Lob(Data_Default)
  4      From User_Tab_Columns
  5     Where Table_Name = 'DEF_NULL_TEST';

1 row inserted


SQL> Select Seq, Dump(Dbms_Lob.Substr(Def_Val, 4000)) Def_Val_Len
  2    From Def_Null_Log
  3   Order By Seq;

       SEQ DEF_VAL_LEN
---------- --------------------------------------------------------------------------------
         0 NULL
         1 Typ=1 Len=5: 78,117,108,108,10
         2 Typ=1 Len=4: 78,117,108,108

SQL> Drop Table Def_Null_Test;

Table dropped


SQL> Drop Table Def_Null_Log;

Table dropped


SQL> 


В первой форме команды ALTER TABLE в DATA_DEFAULT добавляется 1 или 2 символа перевода строки/возврата каретки в зависимости от платформы.
Во второй форме команды эти символы не добавляются.
Испробовано на 12.1.0.1.0 Win x64 & 12.1.0.2.0 HP-UX .
...
Рейтинг: 0 / 0
Разный DEFAULT NULL в словаре
    #39681193
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d.nemolchevВ первой форме команды ALTER TABLE в DATA_DEFAULT добавляется 1 или 2 символа перевода строки/возврата каретки в зависимости от платформы.Проверь в SQL*Plus-е.
...
Рейтинг: 0 / 0
Разный DEFAULT NULL в словаре
    #39681367
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Да.
В плюсе норм.
PL/SQL Dev лажает рожает чудеса...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разный DEFAULT NULL в словаре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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