|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Bogdanov AndreyТо, что вы пишете в этой теме - оффтопик. Как раз я автору сэкономил кучу времени, потому как с вышеописанными граблями он столкнется чуть раньше, чем сразу... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:02 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieВот что им мешает сделать нормальный UPDATE FROM...Что такое "нормальный UPDATE FROM"? У оракла есть MERGE INTO ... USING ... - чем плохо? Nitro_Junkieпри выборе того как красиво реализовать ту или иную возможность архитекторы изначально выбирают более идиотское решение, чтобы увеличить порог вхождения.Это вы о чем? Пока ничего из вами перечисленного в этом топике не увеличивает порог. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:04 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieBogdanov AndreyТо, что вы пишете в этой теме - оффтопик. Как раз я автору сэкономил кучу времени, потому как с вышеописанными граблями он столкнется чуть раньше, чем сразу...Я пожалуй вас переплюну и дам совет, гораздо больше экономящий время, чем все другие советы: прочитать сначала документ под названием "Concepts", в котором начать с раздела, который в кратце описывает структуру и логику построения документации, потом, собственно, выборочно читать интересующие главы Concepts (отдельно обращать внимание на приведенные там рекомендации), потом - нужные главы остальных документов. Если уж и тут возникнут проблемы, то всегда можно вернуться обратно на M$SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:11 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
rockclimberЯ вот перешел на оракл с постгреса и вообще не вижу в этом проблемы Потому что PG как и "большой брат" использует систему "один сервер - одна БД". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:19 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovrockclimberЯ вот перешел на оракл с постгреса и вообще не вижу в этом проблемы Потому что PG как и "большой брат" использует систему "один сервер - одна БД". Да ладно... У него MSSQL'ая схема, вы что-то путаете... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:24 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieDimitry Sibiryakovпропущено... Потому что PG как и "большой брат" использует систему "один сервер - одна БД". Да ладно... У него MSSQL'ая схема, вы что-то путаете... С логической, не физической (на которую наплевать по большому счету) точки зрения, ессно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:24 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieВот что им мешает сделать нормальный UPDATE FROM... Религия? ДА, есть такая религия. "ANSI SQL standard" называется. В котором MERGE - есть, а UPDATE FROM - нету. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:31 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
rockclimberNitro_JunkieВот что им мешает сделать нормальный UPDATE FROM...Что такое "нормальный UPDATE FROM"? У оракла есть MERGE INTO ... USING ... - чем плохо? Безотносительно самого оператора, вот зачем мне знать 2 оператора, почему нельзя как все нормальные СУБД сделать один и не издеваться над мозгом разработчика. rockclimberNitro_Junkieпри выборе того как красиво реализовать ту или иную возможность архитекторы изначально выбирают более идиотское решение, чтобы увеличить порог вхождения.Это вы о чем? Пока ничего из вами перечисленного в этом топике не увеличивает порог. Это я про то что пересесть с PostgreSQL на MSSQL и наоборот куда проще, чем на оракл (хотя первый действительно делался как младший брат Oracle). Кстати в копилку - top'ы, limit'ы делаются через rownum и доп. предикат. OK, пусть будет rownum, но в абсолютном большинстве случаем он используется как top и limit - можно было бы добавить такой явный синтаксис. Хотя конечно это не особая проблема, но просто подчеркивает что такое ощущение оракл специально делает не как остальные. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:32 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovNitro_JunkieВот что им мешает сделать нормальный UPDATE FROM... Религия? ДА, есть такая религия. "ANSI SQL standard" называется. В котором MERGE - есть, а UPDATE FROM - нету. Какого года стандарт? 92? Хотя конечно если это и в современной версии стандарта так (то есть его похоже оракл и поддерживает), тогда я понимаю почему реального стандарта де-факто сейчас нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:35 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieКакого года стандарт? 92? Да ни в какого года стандарте UPDATE FROM нету. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 18:58 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieВ чем минус если не секрет?Если любой пользователь, имеющий право на подключение может создать и произвольное число баз - это дыр(к)а. Вроде, должно быть очевидно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 19:31 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_Junkierockclimberпропущено... Что такое "нормальный UPDATE FROM"? У оракла есть MERGE INTO ... USING ... - чем плохо? Безотносительно самого оператора, вот зачем мне знать 2 оператора, почему нельзя как все нормальные СУБД сделать один и не издеваться над мозгом разработчика.Я по-прежнему не понимаю, в чем проблема. Какова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING? P. S. Кстати, когда я переползал с постгреса, меня больше всего ввела в недоумение в оракле тождественность понятий "схема" и "пользователь". "Мы говорим схема - подразумеваем юзера, мы говорим юзер - подразумеваем схему" Ажно целую неделю привыкал. Других "потрясений" не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 20:52 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Basil A. SidorovNitro_JunkieВ чем минус если не секрет?Если любой пользователь, имеющий право на подключение может создать и произвольное число баз - это дыр(к)а. Вроде, должно быть очевидно.К вопросу об "очевидности"... С каких пор (и в какой СУБД) права на подключение к базе данных эквивалентно праву на создание БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 21:03 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieВот что им мешает сделать нормальный UPDATE FROM... Религия? Причем чем дальше, тем больше возникает ощущение, что именно она.Что такое "нормальный UPDATE FROM"? Это тот самый, результат которого недетерминирован? http://msdn.microsoft.com/ru-ru/library/ms177523(SQL.90).aspx Результаты инструкции UPDATE не определены, если инструкция включает предложение FROM, в котором для каждого вхождения обновляемого столбца не задано единственное значение, то есть если инструкция UPDATE не является детерминированной. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 22:22 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
rockclimberКакова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?Принципиальная разница как раз в том, что для UPDATE FROM не придумали детерминированной реализации, поэтому в стандарте ее и нет. А вот для MERGE проблем не возникает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 22:27 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Bogdanov AndreyrockclimberКакова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?Принципиальная разница как раз в том, что для UPDATE FROM не придумали детерминированной реализации, поэтому в стандарте ее и нет. А вот для MERGE проблем не возникает. Ну порядок записей в SELECT'е тоже недетерменирован, хотя конечно это не прямая аналогия. В любом случае вас же никто не заставляет писать недетерминированные UPDATE FROM'ы... Кроме того например в 99,9% случаев JOIN идет по равенству 2-х выражений, где одно из них ключевое поле в таблице \ подзапросе, но поддерживается общий случай и это никого не смущает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 22:56 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Bogdanov AndreyrockclimberКакова принципиальная разница между этими командами, кроме того, что в одной СУБД надо писать UPDATE FROM, а в другой - MERGE ... USING?Принципиальная разница как раз в том, что для UPDATE FROM не придумали детерминированной реализации, поэтому в стандарте ее и нет. А вот для MERGE проблем не возникает.По-хорошему, ее и в оракле не придумали. Просто когда оракл натыкается не недерминированность, он честно об этом предупреждает и валится с эксепшеном. Nitro_JunkieНу порядок записей в SELECT'е тоже недетерменированИногда лучше жевать... Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 23:05 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
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... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 23:07 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
rockclimber Код: sql 1. 2. 3.
UPDATE t SET x=v.f FROM v WHERE v.key = t.key; - где key и там и там - тоже детерменирован, и что? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 23:10 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_Junkierockclimber Код: sql 1. 2. 3.
UPDATE t SET x=v.f FROM v WHERE v.key = t.key; - где key и там и там - тоже детерменирован, и что? и там и там - первичный ключ в смысле. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 23:11 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_JunkieВ любом случае вас же никто не заставляет писать недетерминированные UPDATE FROM'ы... Кроме того например в 99,9% случаев JOIN идет по равенству 2-х выражений, где одно из них ключевое поле в таблице \ подзапросе, но поддерживается общий случай и это никого не смущает.Вы спрашивали "какая религия мешает" - я и ответил, что мешает нелюбовь к кривым вещам, обеспечить корректную работу которых не представляется возможным. Я согласен с тем, что update from очень удобная конструкция и в подавляющем большинстве случаев использования работает корректно. Но некто, отвечающий за идеологию в oracle решил, что вместо нее стоит сделать православно одобренный merge. Но вообще это различие между oracle и mssql, на мой взгляд, идет на концептуальном уровне. mssql пытается обеспечить максимальную простоту и скорость вхождения игнорируя некоторые нестыковки. oracle пытается обеспечить строгость утяжеляя синтаксис и усложняя использование. Оба подхода имеют право на существованию. Каждый выбирает себе более удобный. Правда в последнее время грани все более стираются - вендоры активно перетягивают друг у друга фичи, да идеологическая чистота со временем оказалась размыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 23:19 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
sphinx_mvС каких пор (и в какой СУБД) права на подключение к базе данных эквивалентно праву на создание БД?Не надо путать право на подключение к серверу и право на подключение к базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2014, 19:30 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Basil A. Sidorovsphinx_mvС каких пор (и в какой СУБД) права на подключение к базе данных эквивалентно праву на создание БД?Не надо путать право на подключение к серверу и право на подключение к базе.Как будто от этого принципиально что-то меняется... Тем более, что (сюрприз!) очень не все сервера баз данных предполагают разделение подключения к серверу баз данных и подключение к базе данных (как минимум, одной из них) на этом сервере... Не говоря уже о тех серверах, где на одном инстансе сервера может существовать только одна физическая база... Но, раз Вам захотелось уточнения, то уточняю: с каких пор (и в какой СУБД) право на подключение к серверу БД стало эквивалентным праву на создание базы данных на этом сервере? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2014, 23:36 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
Nitro_Junkie, Ну в Postgresql, MSSQL и остальных. Для instance'а есть понятие база, то есть можно подключиться к instance'у и сделать скажем CREATE DATABASE X; CREATE DATABASE Y; потом USE X; и работать с базой X (не видя Y). А потом можно сделать DROP DATABASE X; и опять CREATE DATABASE X; И так сколько угодно раз. То есть обычная схема работы любого пр Мужик, если ты не понимаешь, что нормальное приложение на любой СУБД делает такое ТОЛЬКО ОДИН РАЗ В ЖИЗНИ, на новом сервере (точнее это делает dba, а не приложение), то ты что-то очень важное в своей жизни пропустил в смысле образования. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2014, 09:42 |
|
Путь в Oracle для MS SQL Developer
|
|||
---|---|---|---|
#18+
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.
и получить желаемое (а потом - эпических люлей от первого вменяемого архитектора, который им попадётся). Nitro_Junkie А потом можно сделать DROP DATABASE X; и опять CREATE DATABASE X; И так сколько угодно раз. То есть обычная схема работы любого приложения. Обычная схема работы наколеночной поделки типа студенческого курсача, Вы хотели сказать. Я вот прямо представил, как с утра десять тысяч пользователей включили компьютеры, вошли в систему - и каждый пошёл делать DROP/CREATE DATABASE... rockclimber P. S. Кстати, когда я переползал с постгреса, меня больше всего ввела в недоумение в оракле тождественность понятий "схема" и "пользователь" Да, это тяжкое наследие семидесятых. На самом деле ещё и понятие "роль" им почти тождественно, но это уже снаружи не видно (и я почти вижу, как радовался тот проектировщик, который сэкономил на этом байты). В десятке оракл двинулся вроде бы в правильную сторону (create schema), но, судя по всему, пока что не очень представляет себе, как идти дальше. топикстартеру Вот, кстати, Вы получили наглядный пример астроений, с которыми в переход лучше не соваться, всем будет спокойнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2014, 10:40 |
|
|
start [/forum/topic.php?fid=35&msg=38604688&tid=1552377]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 299ms |
0 / 0 |