powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Все таки Oracle впереди планеты всей!
25 сообщений из 419, страница 16 из 17
Все таки Oracle впереди планеты всей!
    #36750965
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FavnЯ считаю, что строковый NULL в Оракле ведет себя как "пустая строка" в строковых операциях и как общепринятый NULL в остальных,
Не совсем так, к сожалению.

Favn1. Внутренне противоречиво.
Это значит, что Вы можете назвать "внутреннее противоречие" - то есть некое противоречие во внутренних, сугубо оракловых концепциях. Что-то я не совсем в этом уверен :) Хотя сам одно место, пожалуй, назову.

Favn2. Противоречит поведению базового типа varchar во всех остальных РСУБД.
Безусловно.

FavnТ.е. является архитектурной "багой",
Из (2) это никак не следует и следовать не может.
Из (1) будет следовать не раньше, чем будет обосновано (1). Да и тогда.... есть в оракле одна чертовски забавная бага, проистекающая из самой сути реализации версионного механизма. Но было бы глупо из-за одной исчезающе редкой проблемы отказываться от всей версионности.

FavnПричем "фича" эта deprecated самим Ораклом.
Чушь.

Favn ... изначальным ... неправомерно.
Такое ощущение, что Вы обсуждаете юридический вопрос. В инженерной работе такая постановка вопроса просто нелепа.

Скажем, у меня был проект, где было удобно принять, что N/0=null. И я определил операцию деления именно таким образом. И это значительно упростило всем работу и уменьшило количество ошибок. И честное слово, забавно было бы понаблюдать, как какой-нибудь "тру математик" кричал бы, что это неправомерно, на ноль делить нельзя и мы обязаны немедленно взвалить на себя тройной геморрой.
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36751120
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!пересказывать, что утверждалось, когда есть текст на предыдущей странице мне лень. еще раз, теперь что я имел ввиду фразой "процедурный код сторед процедуры на SQLJ выполняются сторонней жава машиной, которая о принятых в SQL DB2 правилах не в курсе" надеюсь ясно ?Не надейтесь, не ясно. Даже после того, как Вам стало лень :)
Еще раз - ни одна JVM о правилах SQL не в курсе. Т.к. любой SQL выполняется движком SQL, а Java-код - JVM.
По поводу фразы - процедурный код Java SP в любом случае выполняется какой-то JVM, а собственно SQLJ-вставки в него, т.е. #sql директивы - в любом случае выполняются движком SQL. Или Оракл JVM сама SQL выполняет, без собственно Oracle Database? :)
Поэтому что сторонняя Java машина, что своя - о правилах SQL конкретной СУБД должен знать SQLJ препоцессор, с СУБД поставляемый, а вовсе не сама JVM.
Кстати, с DB2 всегда в комплекте поставляется именно IBM JVM.
Yo.!по мне так спроектированная под нужды субд, интегрированная в структуру SGA JVM существенно отличается от работающей во внешнем процессе JVM общего назначения.Уже обсуждали, так что замнем для ясности :) В любом случае, к выполнению SQLJ все это никакого отношения не имеет.
Yo.!не выполняется. там создается такой же profile как и в дб2, структура этого profile файлика описана в стандарте. просто перед созданием profile валидируется SQL...
1. все то же самое, что и у дб2, все согласно стандарту. к статик SQL прислоняется любая JVM, рядом кладутся profile, только JDBC через который дергается база зовется чуть по другому.
У DB2 - совсем не так. Разница в том, что в DB2 создается package не только в виде стандартного файлика, а как объект внутри БД, содержащий все запросы SQLJ. И объект этот валидируется с последующими изменениями в БД, и может стать инвалидным, запретив выполнение ставшей "неправильной" SP. JDBC при этом вообще не используется, у них с SQLJ просто общий универсальный драйвер, но внутри драйвера механизмы разные.
Yo.!2. не совместимая со стандартом загрузка SQLJ как единое целое в субд, где выполняется под интегрированной в ядро JVM. второй вариант естественно гораздо быстрее. думаю тут просто SQLJ транслируется в обычную Java stored procedure. вот они, по моему, имеют такие же зависимости как и pl/sqlХотелось бы поглядеть на какую-либо инфу по варианту 2. Я в свое время искал на тему SQLJ по доке Оракла, но ничего похожего не видел.
Yo.!возвращаясь к нашим нулам: для меня выглядит дико когда говорят, что когда я обрабатываю нулл языком сторед процедур, то это один нулл, а когда я обрабатываю ту же сущность из той же таблицы, из того же поля но уже на уровне апп-сервера это уже какой-то другой нулл.И что делать, если это действительно разные нуллы в разных языках? В JDBC, чтобы не было путаницы, даже функцию wasNull() ввели. Не isNull(), чтобы не было нездоровых ассоциаций :)
Да, в SQLJ, в отличие от JDBC, можно использовать Java null для индикации SQL NULL. ИМХО, это неправильно и путает - хороший шанс получить в лоб эксепшн в рантайме при случайном использовании простых типов в хост-переменных.
Лучше по-старинке пользоваться indicator переменными . Меньше путаницы будет.
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36751319
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnХотелось бы поглядеть на какую-либо инфу по варианту 2. Я в свое время искал на тему SQLJ по доке Оракла, но ничего похожего не видел.

начать можно отсюда
http://download.oracle.com/docs/cd/E11882_01/java.112/e10590/inserver.htm

дальше о реализации sqlj мне не интересно. не моя тема.


Yo.!И что делать, если это действительно разные нуллы в разных языках?

с чего бы им быть разными если описывают они одно понятие (то что лежит в бд) ?
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36751870
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Favn
В дополнение к этому я считаю, что изначальным значением NULL в SQL в описании полей было именно "неопределенное значение", и это следует из логичесих операций с участием NULL. Но этот вопрос к данной дискуссии не относится. О "неопределенности" я говорил именно в свете того, что раз NULL может означать неопределенность, толковать его именно как пустую строку неправомерно..

Дополнение ЭТОГО выглядит значительно важнее самого ЭТОГО (NULL много важнее в МД, чем пустая строка, скорее всего). Про "следует" у нас там были все время трудности. У Вас там логические операции возвращали NULL, а из этого может следовать все что угодно, в общем случае, и даже, возможно, может ни чего не следовать.

FavnОк. Определимся. Я считаю, что строковый NULL в Оракле ведет себя как "пустая строка" в строковых операциях и как общепринятый NULL в остальных, что бы он там не значил. И это:
1. Внутренне противоречиво.
2. Противоречит поведению базового типа varchar во всех остальных РСУБД.
Т.е. является архитектурной "багой", проистекающей из совпадающего способа хранения NULL и '', традиционно для архитектурных "баг" (не только Оракла :) ) замаскированной под "фичу". Причем "фича" эта deprecated самим Ораклом.

Строковые операции, логические, арифметические это все же, возможно, разные алгебры в общем случае, чтобы так уж сразу и противоречивость была. Так лавры Рассела в выявлении противоречий нам с Вами, скорей всего, не заполучить.
Про другие СУБД: ну зато не надо писать проверку на пустые строки. Поди плохо?
Favn
Да, NULL. А имея в виду именно "пустоту" могли бы назвать VOID, например.

Ну видите, нас с Вами не спрашивают как назвать. А, возможно, и зря. Уж мы бы им понапридумывали.

Favn
По моему мнению, принципиальное отличие не в "изначальности", а в результатах логических операций. Если использовать логику кроме is null в запросах с этим полем не предполагается, NULL может значить что Вам угодно. Но не надо делать из частного случая общее правило.
За сим теоретический спор с привлечением лингвистики и философии предлагаю закончить в виду полной бесперспективности :)
И сосредоточится на конкретном толковании NULL varchar в Оракле и остальных РСУБД.

Но тада зачем Вы про изначальность рассуждали, раз дело, как теперь, неожиданно вдруг выясняется не в ней?
Favn
Когда речь идет о расширениях SQL - безусловно. Но мы говорим о базовой операции || над базовым же типом varchar.

Вот какда речь идет о стандартах, то здесь изначальное может играть роль. И я про стандарты уклоняюсь в связи такого рода моментами. Я одобряю Ваши усилия по приведение к стандартам, но поскоку у меня много сомнений, остаюсь в стане болельщиков.
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759462
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хммм... Оказывается, Оракул позволяет в базу загрузить не только инвалидные метаданные, но
и данные тоже: http://www.sql.ru/forum/actualthread.aspx?tid=776900
А что, вполне логично...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759472
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Хммм... Оказывается, Оракул позволяет в базу загрузить не только инвалидные метаданные, но
и данные тоже: http://www.sql.ru/forum/actualthread.aspx?tid=776900
А что, вполне логично...


Есть предложения какие констрейнты вешать на кривые ручки вальнувшие текст в другой кодировке в виде RAW в CLOB???

Внимаем
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759480
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)
Есть предложения какие констрейнты вешать на кривые ручки вальнувшие текст в другой
кодировке в виде RAW в CLOB???

Не, если индусы не сделали валидацию UTF8, то это не лечится.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759485
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Gluk (Kazan)
Есть предложения какие констрейнты вешать на кривые ручки вальнувшие текст в другой
кодировке в виде RAW в CLOB???

Не, если индусы не сделали валидацию UTF8, то это не лечится.


Лили RAW, наплевав на любую валидацию
База сказала "Хазяина UTF8", как бы повел себя FB???
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759513
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)База сказала "Хазяина UTF8", как бы повел себя FB???

Сказала бы "пшолнах, malformed string". Нефиг выдавать win1251 за utf8.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759574
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Gluk (Kazan)База сказала "Хазяина UTF8", как бы повел себя FB???

Сказала бы "пшолнах, malformed string". Нефиг выдавать win1251 за utf8.
а как он отличает win1251 от utf8?
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759594
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperа как он отличает win1251 от utf8?

Она и не различает, просто проверяет входные текстовые данные на соответствие заявленному
клиентскому character set (то, что в оракловском NLS_LANG идёт после точки).
В utf8 разрешены отнюдь не любые сочетания байт, поэтому если заявлена строка в utf8, а
подсунута в win1251, то скорее всего валидацию она не пройдёт.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759618
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
SergSuperа как он отличает win1251 от utf8?

Она и не различает, просто проверяет входные текстовые данные на соответствие заявленному
клиентскому character set (то, что в оракловском NLS_LANG идёт после точки).
В utf8 разрешены отнюдь не любые сочетания байт, поэтому если заявлена строка в utf8, а
подсунута в win1251, то скорее всего валидацию она не пройдёт.


AI detected

Нетушки, когда льем RAW пусть уж лучше разрешает лить всякий бред, чем отшибает руки на основании того, что данные не понравились его AI
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759744
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
SergSuperа как он отличает win1251 от utf8?

Она и не различает, просто проверяет входные текстовые данные на соответствие заявленному
клиентскому character set (то, что в оракловском NLS_LANG идёт после точки).
В utf8 разрешены отнюдь не любые сочетания байт, поэтому если заявлена строка в utf8, а
подсунута в win1251, то скорее всего валидацию она не пройдёт.
да ну нафиг
а если я чего-то решил на каком-то своём новом языке написать?

т.е. можно спорить нужно это или нет, но как-то на Оракул позволяет в базу загрузить инвалидные данные не тянет
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759839
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper
как-то на Оракул позволяет в базу загрузить инвалидные данные не тянет

А какая именно часть этого утверждения "не тянет"? "Оракул"? Так Оракул. "Позволяет"? Так
позволяет ведь! "Загрузить"? Именно загрузить. "Инвалидные"? А как ещё назвать данные в
кодировке, не соответствующей кодировке базы, которые потом (при выборке) не могут быть
правильно отображены?.. "Данные"? Дык вроде бы данные...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759940
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
SergSuper
как-то на Оракул позволяет в базу загрузить инвалидные данные не тянет

А какая именно часть этого утверждения "не тянет"? "Оракул"? Так Оракул. "Позволяет"? Так
позволяет ведь! "Загрузить"? Именно загрузить. "Инвалидные"? А как ещё назвать данные в
кодировке, не соответствующей кодировке базы, которые потом (при выборке) не могут быть
правильно отображены?.. "Данные"? Дык вроде бы данные...
кодировка - это же типа информация как надо отображать данные, а мало ли что клиент не может отобразить?
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36759971
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperкодировка - это же типа информация как надо отображать данныеВот зачем говорить о том, в чём ничего не понимаешь ?
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760107
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSergSuperкодировка - это же типа информация как надо отображать данныеВот зачем говорить о том, в чём ничего не понимаешь ?да я уже понял, что кто с FB не работает, тот ничего в жизни не понимает
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760125
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperhvladSergSuperкодировка - это же типа информация как надо отображать данныеВот зачем говорить о том, в чём ничего не понимаешь ?да я уже понял, что кто с FB не работает, тот ничего в жизни не понимает"информация как надо отображать данные" находится в файле со шрифтом, например.
Кодировка символов не имеет к этому отношения.

При чём тут FB ? Он конечно развивает способности, заставляя думать, но в данном случае и FB не поможет, увы :)
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760128
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSergSuperкодировка - это же типа информация как надо отображать данныеВот зачем говорить о том, в чём ничего не понимаешь ?

To be Nullor not to be Null в строках уже обсудили. Теперь новый виток - что такое символ, первична ли кодировка или значение =)
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760147
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglТеперь новый виток - что такое символ, первична ли кодировка или значение =)Я промолчал на
SergSuperда ну нафиг
а если я чего-то решил на каком-то своём новом языке написать?но на второй ляп уже не сдержался :)

Ну а насчёт витков - пинайте недовольного Ораклом DS'а :)
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760415
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSergSuperhvladSergSuperкодировка - это же типа информация как надо отображать данныеВот зачем говорить о том, в чём ничего не понимаешь ?да я уже понял, что кто с FB не работает, тот ничего в жизни не понимает"информация как надо отображать данные" находится в файле со шрифтом, например.
Кодировка символов не имеет к этому отношения.
и зачем же тогда в ХТМЛе это страницы написано <META content="text/html; charset=windows-1251">? вся ж информация как отображать есть в файле со шрифтом
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760617
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperhvlad"информация как надо отображать данные" находится в файле со шрифтом, например.
Кодировка символов не имеет к этому отношения.
и зачем же тогда в ХТМЛе это страницы написано <META content="text/html; charset=windows-1251">? вся ж информация как отображать есть в файле со шрифтомМожет для того, чтобы выбрать файл со шрифтом, в котором таки есть информация о том, как рисовать символы ?
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760658
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladМожет для того, чтобы выбрать файл со шрифтом, в котором таки есть информация о том, как рисовать символы ?
в файле со шрифтом и так есть информация о том как рисовать символы
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760677
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSergSuperhvlad"информация как надо отображать данные" находится в файле со шрифтом, например.
Кодировка символов не имеет к этому отношения.
и зачем же тогда в ХТМЛе это страницы написано <META content="text/html; charset=windows-1251">? вся ж информация как отображать есть в файле со шрифтомМожет для того, чтобы выбрать файл со шрифтом, в котором таки есть информация о том, как рисовать символы ?то есть содержит информацию, какой файл нужно выбрать и соответственно как отобразить данные, не так ли?
...
Рейтинг: 0 / 0
Все таки Oracle впереди планеты всей!
    #36760690
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperhvladSergSuperhvlad"информация как надо отображать данные" находится в файле со шрифтом, например.
Кодировка символов не имеет к этому отношения.
и зачем же тогда в ХТМЛе это страницы написано <META content="text/html; charset=windows-1251">? вся ж информация как отображать есть в файле со шрифтомМожет для того, чтобы выбрать файл со шрифтом, в котором таки есть информация о том, как рисовать символы ?то есть содержит информацию, какой файл нужно выбрать и соответственно как отобразить данные, не так ли?Не так.

После того, как было дано достаточное кол-во намёков, я даже не буду спрашивать - а что имеется в виду под словом отображать и при чём тут СУБД.
Мне этот цирк быстро надоедает, уж извините.
...
Рейтинг: 0 / 0
25 сообщений из 419, страница 16 из 17
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Все таки Oracle впереди планеты всей!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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