|
|
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Хорошо, хочу научиться на будущее. Что надо было мне сделать в этом случае? - привести пример Код: plaintext 1. 2. 3. 4. Денис ведь тоже вроде на ANSI не ссылался? to All Буду признательна за ссылку на более информативный тект по поводу пустых строк чем мною приведенную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2003, 12:42:14 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Именно. Почему-то в этом форуме очень мало ссылок на стандарты и достаточно много объяснений, в том числе и самих стандартов, на русском, английском и других языках. Подразумевается, что каждый знает, где можно посмотреть эти стандарты, а здесь мы их именно толкуем и обсуждаем. Стандарт ANSI SQL92 явно различает NULL и пустую строку. В данном вопросе Oracle не следует стандарту. Найду прямую ссылку на стандарт- скажу. Пока лишь Краткое сравнение Oracle SQL и ANSI SQL Почему конкатенация NULL и не-NULL дает не-NULL - не знаю, потому и интересно, во-первых, как в стандарте, а во-вторых, как дело обстоит в других БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2003, 13:00:58 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
to Violina: Код: plaintext 1. 2. 3. 4. 5. PL/SQL User’s Guide and Reference Release 8.1.6 December 1999 Part No. A77069-01 Expressions and Comparisons->Handling Nulls->Concatenation Operator-> Код: plaintext 1. 2. 3. 4. Я думаю этого достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2003, 13:10:19 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Самое интересное, что помню когда-то читал книжку, так там авторы со смаком экспериментировали с поведением символьных функций (подло подсовывая NULL) в разных версиях PL/SQL (правда помню точно, что до 8 версии) :) Oracle работает над тем, чтобы PL/SQL соответствовал полному стандарту (пока - начальному), что и видно из той цитаты, что привела Violina. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2003, 13:13:35 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Понятно. Пример Дениса dan@oraspb> select null||'X' from dual; показывает случай когда NULL ведет себя как пустая строка. Правда из приведенной ссылки softbuilder' ом Оракл преподносит это не как NULL ведет себя как пустая строка а более нейтрально the concatenation operator ignores null operands. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2003, 13:20:37 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
select TO_NUMBER(null)||'aaa' from dual Даже в таком виде как пустая строка :) 8.1.7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2003, 17:02:38 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Обсуждение пустой строки в Oracle зашло в глубинные теоретические дебри. И все-же я считаю, что Oracle непоследователен: почему при поиске по пустой строке в условии WHERE нельзя подставить переменную (т.е. параметр Paswd=''): Код: plaintext 1. 2. 3. 4. 5. Почему приходится так извращаться? Почему не работает просто WHERE F_PASWD=Paswd ведь и поле и переменная являются строками нулевой длины = NULL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:32:11 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Потому-что будет сравнение с NULL, которое даст NULL aka "теоретические дебри" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:35:21 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Считаю, что для ХП делающими выборки по строковым параметрам это очень неудобно - придется не только прописывать условие сравнения поля с параметром, но еще и проверять их оба на IS NULL (как в вышеприведенном примере). ЗЫ: Гуру от Oracle! Может существует какая-то более простая конструкция для сравнения поля со строковым параметром на случай NULL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:41:33 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Ochen' nelogicho poluchaet'sia dan@oraspb> select null||'X' from dual; N - X a SQL> select null+5 from dual; NULL+5 ---------- NULL SQL> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:53:30 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Во посмеемся на: Oracle currently treats a character value with a length of zero as null. However, this may not continue to be true in future releases, and Oracle recommends that you do not treat empty strings the same as nulls. Дел будет но вообщето "" не NULL должно быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 17:12:25 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Том Кайт написал, что это сделано в соответствии со спецификацией ANSI, MSSQL (в настройках по умолчанию), напротив нарушает стандарт в этом вопросе. На самом деле хотелось бы имет как минимум 2 типа NULL (ничего и все что угодно) и соответственно четверичную логику. То что пустая строка - NULL действительно странно, но если этого хочет стандарт :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 08:19:35 |
|
||
|
Поле DEFAULT значением
|
|||
|---|---|---|---|
|
#18+
Если кому интересно. Это из Quest-овского Knowledge Xpert for Oracle Administration 6.2 (наверное, соответствует максимум для 8i) Functions will do implicit conversion, if possible, of data types if other than the one needed are specified to them. Calling most functions with a NULL will return a NULL. The only functions that don't return a NULL are: w CONCAT Concatenates strings. w DECODE Performs explicit conversions. w DUMP Dumps a value. w NVL Allows for NULL value substitution. w REPLACE Allows for string replacement. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2003, 12:33:52 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32180442&tid=1989819]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
249ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
3ms |
| others: | 219ms |
| total: | 579ms |

| 0 / 0 |
