powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Путь в Oracle для MS SQL Developer
25 сообщений из 153, страница 2 из 7
Путь в Oracle для MS SQL Developer
    #38604655
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyТо, что вы пишете в этой теме - оффтопик.

Как раз я автору сэкономил кучу времени, потому как с вышеописанными граблями он столкнется чуть раньше, чем сразу...
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604659
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieВот что им мешает сделать нормальный UPDATE FROM...Что такое "нормальный UPDATE FROM"?
У оракла есть MERGE INTO ... USING ... - чем плохо?

Nitro_Junkieпри выборе того как красиво реализовать ту или иную возможность архитекторы изначально выбирают более идиотское решение, чтобы увеличить порог вхождения.Это вы о чем? Пока ничего из вами перечисленного в этом топике не увеличивает порог.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604671
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieBogdanov AndreyТо, что вы пишете в этой теме - оффтопик.

Как раз я автору сэкономил кучу времени, потому как с вышеописанными граблями он столкнется чуть раньше, чем сразу...Я пожалуй вас переплюну и дам совет, гораздо больше экономящий время, чем все другие советы: прочитать сначала документ под названием "Concepts", в котором начать с раздела, который в кратце описывает структуру и логику построения документации, потом, собственно, выборочно читать интересующие главы Concepts (отдельно обращать внимание на приведенные там рекомендации), потом - нужные главы остальных документов. Если уж и тут возникнут проблемы, то всегда можно вернуться обратно на M$SQL
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604679
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimberЯ вот перешел на оракл с постгреса и вообще не вижу в этом проблемы
Потому что PG как и "большой брат" использует систему "один сервер - одна БД".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604686
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovrockclimberЯ вот перешел на оракл с постгреса и вообще не вижу в этом проблемы
Потому что PG как и "большой брат" использует систему "один сервер - одна БД".


Да ладно... У него MSSQL'ая схема, вы что-то путаете...
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604688
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieDimitry Sibiryakovпропущено...

Потому что PG как и "большой брат" использует систему "один сервер - одна БД".


Да ладно... У него MSSQL'ая схема, вы что-то путаете...

С логической, не физической (на которую наплевать по большому счету) точки зрения, ессно.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieВот что им мешает сделать нормальный UPDATE FROM... Религия?
ДА, есть такая религия. "ANSI SQL standard" называется. В котором MERGE - есть, а UPDATE
FROM - нету.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604695
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimberNitro_JunkieВот что им мешает сделать нормальный UPDATE FROM...Что такое "нормальный UPDATE FROM"?
У оракла есть MERGE INTO ... USING ... - чем плохо?


Безотносительно самого оператора, вот зачем мне знать 2 оператора, почему нельзя как все нормальные СУБД сделать один и не издеваться над мозгом разработчика.


rockclimberNitro_Junkieпри выборе того как красиво реализовать ту или иную возможность архитекторы изначально выбирают более идиотское решение, чтобы увеличить порог вхождения.Это вы о чем? Пока ничего из вами перечисленного в этом топике не увеличивает порог.

Это я про то что пересесть с PostgreSQL на MSSQL и наоборот куда проще, чем на оракл (хотя первый действительно делался как младший брат Oracle).

Кстати в копилку - top'ы, limit'ы делаются через rownum и доп. предикат. OK, пусть будет rownum, но в абсолютном большинстве случаем он используется как top и limit - можно было бы добавить такой явный синтаксис. Хотя конечно это не особая проблема, но просто подчеркивает что такое ощущение оракл специально делает не как остальные.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604701
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovNitro_JunkieВот что им мешает сделать нормальный UPDATE FROM... Религия?
ДА, есть такая религия. "ANSI SQL standard" называется. В котором MERGE - есть, а UPDATE
FROM - нету.


Какого года стандарт? 92? Хотя конечно если это и в современной версии стандарта так (то есть его похоже оракл и поддерживает), тогда я понимаю почему реального стандарта де-факто сейчас нету.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604731
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieКакого года стандарт? 92?
Да ни в какого года стандарте UPDATE FROM нету.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604761
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieВ чем минус если не секрет?Если любой пользователь, имеющий право на подключение может создать и произвольное число баз - это дыр(к)а. Вроде, должно быть очевидно.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604839
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_Junkierockclimberпропущено...
Что такое "нормальный UPDATE FROM"?
У оракла есть MERGE INTO ... USING ... - чем плохо?


Безотносительно самого оператора, вот зачем мне знать 2 оператора, почему нельзя как все нормальные СУБД сделать один и не издеваться над мозгом разработчика.Я по-прежнему не понимаю, в чем проблема. Какова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?

P. S. Кстати, когда я переползал с постгреса, меня больше всего ввела в недоумение в оракле тождественность понятий "схема" и "пользователь". "Мы говорим схема - подразумеваем юзера, мы говорим юзер - подразумеваем схему"
Ажно целую неделю привыкал. Других "потрясений" не было.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604844
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovNitro_JunkieВ чем минус если не секрет?Если любой пользователь, имеющий право на подключение может создать и произвольное число баз - это дыр(к)а. Вроде, должно быть очевидно.К вопросу об "очевидности"...
С каких пор (и в какой СУБД) права на подключение к базе данных эквивалентно праву на создание БД?
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604898
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieВот что им мешает сделать нормальный UPDATE FROM... Религия? Причем чем дальше, тем больше возникает ощущение, что именно она.Что такое "нормальный UPDATE FROM"? Это тот самый, результат которого недетерминирован?

http://msdn.microsoft.com/ru-ru/library/ms177523(SQL.90).aspx Результаты инструкции UPDATE не определены, если инструкция включает предложение FROM, в котором для каждого вхождения обновляемого столбца не задано единственное значение, то есть если инструкция UPDATE не является детерминированной.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604899
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimberКакова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?Принципиальная разница как раз в том, что для UPDATE FROM не придумали детерминированной реализации, поэтому в стандарте ее и нет. А вот для MERGE проблем не возникает.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604912
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyrockclimberКакова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?Принципиальная разница как раз в том, что для UPDATE FROM не придумали детерминированной реализации, поэтому в стандарте ее и нет. А вот для MERGE проблем не возникает.

Ну порядок записей в SELECT'е тоже недетерменирован, хотя конечно это не прямая аналогия. В любом случае вас же никто не заставляет писать недетерминированные UPDATE FROM'ы... Кроме того например в 99,9% случаев JOIN идет по равенству 2-х выражений, где одно из них ключевое поле в таблице \ подзапросе, но поддерживается общий случай и это никого не смущает.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604917
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyrockclimberКакова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?Принципиальная разница как раз в том, что для UPDATE FROM не придумали детерминированной реализации, поэтому в стандарте ее и нет. А вот для MERGE проблем не возникает.По-хорошему, ее и в оракле не придумали. Просто когда оракл натыкается не недерминированность, он честно об этом предупреждает и валится с эксепшеном.

Nitro_JunkieНу порядок записей в SELECT'е тоже недетерменированИногда лучше жевать...
Код: sql
1.
2.
3.
select *
from mytable
order by some_column
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604921
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyNitro_JunkieВот что им мешает сделать нормальный UPDATE FROM... Религия? Причем чем дальше, тем больше возникает ощущение, что именно она.Что такое "нормальный UPDATE FROM"? Это тот самый, результат которого недетерминирован?

http://msdn.microsoft.com/ru-ru/library/ms177523(SQL.90).aspx Результаты инструкции UPDATE не определены, если инструкция включает предложение FROM, в котором для каждого вхождения обновляемого столбца не задано единственное значение, то есть если инструкция UPDATE не является детерминированной.Как быстро и как далеко Вас пошлет сервер, выполняя MERGE, в USING которого попал "недетерминированный набор" (ключ связи неуникальный)?
Bogdanov AndreyrockclimberКакова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?Принципиальная разница как раз в том, что для UPDATE FROM не придумали детерминированной реализации, поэтому в стандарте ее и нет. А вот для MERGE проблем не возникает.Во как оно поворачивается... Проблемы нет, но ошибку при этом (почему-то и зачем-то) выбрасываем...

По факту: "отсутствующее в стандарте" UPDATE FROM поддерживается больше, чем 1 вендором СУБД.
Что самое "ужасное" - такая конструкция поддерживается даже в продуктах, производимых ORACLE...
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604924
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimber
Код: sql
1.
2.
3.
select *
from mytable
order by some_column



UPDATE t SET x=v.f FROM v WHERE v.key = t.key; - где key и там и там - тоже детерменирован, и что?
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604927
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_Junkierockclimber
Код: sql
1.
2.
3.
select *
from mytable
order by some_column



UPDATE t SET x=v.f FROM v WHERE v.key = t.key; - где key и там и там - тоже детерменирован, и что?

и там и там - первичный ключ в смысле.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38604930
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieВ любом случае вас же никто не заставляет писать недетерминированные UPDATE FROM'ы... Кроме того например в 99,9% случаев JOIN идет по равенству 2-х выражений, где одно из них ключевое поле в таблице \ подзапросе, но поддерживается общий случай и это никого не смущает.Вы спрашивали "какая религия мешает" - я и ответил, что мешает нелюбовь к кривым вещам, обеспечить корректную работу которых не представляется возможным. Я согласен с тем, что update from очень удобная конструкция и в подавляющем большинстве случаев использования работает корректно. Но некто, отвечающий за идеологию в oracle решил, что вместо нее стоит сделать православно одобренный merge.
Но вообще это различие между oracle и mssql, на мой взгляд, идет на концептуальном уровне. mssql пытается обеспечить максимальную простоту и скорость вхождения игнорируя некоторые нестыковки. oracle пытается обеспечить строгость утяжеляя синтаксис и усложняя использование. Оба подхода имеют право на существованию. Каждый выбирает себе более удобный. Правда в последнее время грани все более стираются - вендоры активно перетягивают друг у друга фичи, да идеологическая чистота со временем оказалась размыта.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38605816
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvС каких пор (и в какой СУБД) права на подключение к базе данных эквивалентно праву на создание БД?Не надо путать право на подключение к серверу и право на подключение к базе.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38605916
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovsphinx_mvС каких пор (и в какой СУБД) права на подключение к базе данных эквивалентно праву на создание БД?Не надо путать право на подключение к серверу и право на подключение к базе.Как будто от этого принципиально что-то меняется... Тем более, что (сюрприз!) очень не все сервера баз данных предполагают разделение подключения к серверу баз данных и подключение к базе данных (как минимум, одной из них) на этом сервере... Не говоря уже о тех серверах, где на одном инстансе сервера может существовать только одна физическая база...

Но, раз Вам захотелось уточнения, то уточняю: с каких пор (и в какой СУБД) право на подключение к серверу БД стало эквивалентным праву на создание базы данных на этом сервере?
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38606317
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_Junkie,

Ну в Postgresql, MSSQL и остальных. Для instance'а есть понятие база, то есть можно подключиться к instance'у и сделать скажем CREATE DATABASE X; CREATE DATABASE Y; потом USE X; и работать с базой X (не видя Y). А потом можно сделать DROP DATABASE X; и опять CREATE DATABASE X; И так сколько угодно раз.

То есть обычная схема работы любого пр


Мужик, если ты не понимаешь, что нормальное приложение на любой СУБД делает такое ТОЛЬКО ОДИН РАЗ В ЖИЗНИ, на новом сервере (точнее это делает dba, а не приложение), то ты что-то очень важное в своей жизни пропустил в смысле образования.
...
Рейтинг: 0 / 0
Путь в Oracle для MS SQL Developer
    #38606334
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieЛогика instance'а и одной единственной базы в нем ни разу не логична
Согласен. Смешение в одном искусственном понятии "база данных" двух разных понятий - tablespace и schema - безусловно, гораздо логичнее, если смотреть со стороны dBase и подобных настольных СУБД.

Nitro_Junkie то есть можно подключиться к instance'у и сделать скажем CREATE DATABASE X; CREATE DATABASE Y; потом USE X; и работать с базой X (не видя Y).
Осталось понять, зачем. Сходу вижу две версии: во-первых, чтобы делать двумя командами (USE/SELECT) то, что удобно делать одним SELECT, во-вторых, чтобы дополнительно геморроиться с тривиальной задачей "а теперь выведи мне те и другие данные вместе".

Впрочем, те из склонных извращаться, кто умеет читать документацию, без особых проблем могут сделать

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
conn sys
create user u1
create table u1.table1(id1 integer);
create user u2
create table u2.table1(id2 integer);
alter session set current_schema=u1;
select * from table1;
alter session set current_schema=u2;
select * from table1;



и получить желаемое (а потом - эпических люлей от первого вменяемого архитектора, который им попадётся).

Nitro_Junkie А потом можно сделать DROP DATABASE X; и опять CREATE DATABASE X; И так сколько угодно раз.
То есть обычная схема работы любого приложения.
Обычная схема работы наколеночной поделки типа студенческого курсача, Вы хотели сказать. Я вот прямо представил, как с утра десять тысяч пользователей включили компьютеры, вошли в систему - и каждый пошёл делать DROP/CREATE DATABASE...

rockclimber P. S. Кстати, когда я переползал с постгреса, меня больше всего ввела в недоумение в оракле тождественность понятий "схема" и "пользователь"
Да, это тяжкое наследие семидесятых. На самом деле ещё и понятие "роль" им почти тождественно, но это уже снаружи не видно (и я почти вижу, как радовался тот проектировщик, который сэкономил на этом байты). В десятке оракл двинулся вроде бы в правильную сторону (create schema), но, судя по всему, пока что не очень представляет себе, как идти дальше.

топикстартеру
Вот, кстати, Вы получили наглядный пример астроений, с которыми в переход лучше не соваться, всем будет спокойнее.
...
Рейтинг: 0 / 0
25 сообщений из 153, страница 2 из 7
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Путь в Oracle для MS SQL Developer
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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