|
|
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuriС точки зрения остального кода на tsql резалтсет уходит в никуда. По поводу способа возврата резалтсета из хп у нас уже был здесь спор. Поищите. По сабжу. Рассмотрим пример: Код: plaintext 1. 2. 3. и Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Почему в первом случаи вы знаете, "куда" уходит резалтсет, а во втором нет?! Раз Вы не указали "вкуда" направлять результат, он будет отправлен на клиента. В отличии от Oracle поведение результата выборки в MS SQL однозначно, будь она AdHoc запросом или запросом в хп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:44 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
угу вот есть Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. и еще есть Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. PS про "уходит на клиента" это круто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 14:04 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
упс, правильный код такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 14:07 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > упс, правильный код такой insert .... exec? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 14:11 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri -- как мне использовать результат работы AnotherTestProcThatUsesTestProc Код: plaintext funikovyuriPS про "уходит на клиента" это круто Это действительно "круто", ибо куда еще можно уходить результату SELECT?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 14:13 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
авторINSERT @TableVar\#TempTable EXEC ... ну не мне же вас в faq по mssql отсылать http://www.sql.ru/faq/faq_topic.aspx?fid=416 авторНедостатки: # таким образом можно получить только первый набор данных # невозможно "унаследовать" получение набора. При попытке получить таким образом набор из хранимой процедуры, которая в свою очередь получает набор из другой процедуры insert exec'ом, мы получим ошибку : An INSERT EXEC statement cannot be nested чтож вы умолчали про эти "фичи"? авторЭто действительно "круто", ибо куда еще можно уходить результату SELECT?! будете удивлены, но есть такое свойство как замкнутость, в данном случае имеется в виду что обычно в языке программирования результатом любой операции языка является объект этого языка. В случае TSQL это не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 14:27 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > будете удивлены, но есть такое свойство как замкнутость, в данном случае > имеется в виду что обычно в языке программирования результатом любой > операции языка является объект этого языка. В случае TSQL это не так В Т-СКЛ и объетов то нету :( И массивов... и ваще - он как бы не "язык программирования" :( "как страшно жыть" (С) Р.Литвинова. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 15:24 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > чтож вы умолчали про эти "фичи"? Никто не ставил граничных условий - потому и "умолчали". Если РЕАЛЬНО надо сделать - можно сделать. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 15:25 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuriну не мне же вас в faq по mssql отсылать Действительно, не надо. Я его и так хорошо знаю... funikovyuriчтож вы умолчали про эти "фичи"? Эт не "фичи". Эт "by design". Почему Вас не удивляет то, что в char(1) нельзя вписать более 1го символа? Да и workaround этого "by design" есть. funikovyuriбудете удивлены, но есть такое свойство как замкнутость, в данном случае имеется в виду что обычно в языке программирования результатом любой операции языка является объект этого языка. В случае TSQL это не так И каким объектом языка в Oracle будет результат INSERT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 15:32 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri авторINSERT @TableVar\#TempTable EXEC ... ну не мне же вас в faq по mssql отсылать http://www.sql.ru/faq/faq_topic.aspx?fid=416 авторНедостатки: # таким образом можно получить только первый набор данных # невозможно "унаследовать" получение набора. При попытке получить таким образом набор из хранимой процедуры, которая в свою очередь получает набор из другой процедуры insert exec'ом, мы получим ошибку : An INSERT EXEC statement cannot be nested чтож вы умолчали про эти "фичи"? как-то мелковато для демонстрации сравнения космического корабля с самолетом братьев райт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 16:59 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin И каким объектом языка в Oracle будет результат INSERT? Известно каким - записью в соответствующей таблице. Вы можете получить эту запись с помощью SELECT. А вы как думали? SergSuper как-то мелковато для демонстрации сравнения космического корабля с самолетом братьев райт Ну т.е., я надеюсь, вы согласны что insert/exec это очень ограниченная конструкция и писать универсальный, повторно используемый код на TSQL ситуация с "резалтсетами ушедшими на клиента" только мешает? тогда можно поговорить про обработку ошибок в MSSQL 2k (с Yukon я не работал), а именно отсутствие исключений и "костыли" в виде SET XACT_ABORT ON? Согласитесь, что писать универсальный код с SET XACT_ABORT ON сложно, а с постоянным анализом кода возврата каждого SQL-выражения долго и неудобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:16 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > тогда можно поговорить про обработку ошибок в MSSQL 2k (с Yukon я не > работал), а именно отсутствие исключений и "костыли" в виде SET > XACT_ABORT ON? Согласитесь, что писать универсальный код с SET > XACT_ABORT ON сложно, а с постоянным анализом кода возврата каждого > SQL-выражения долго и неудобно. насчет "долго и неудобно"- вопрос спорный, дело "самодисциплины" ;) В принципе, раз мы не касаемся юкона... и катмая... Поговорим о достоинствах и недостатках Оракл 8? Как там насчет "how to rollback DDL statements"? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:21 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
SergSuper как-то мелковато для демонстрации сравнения космического корабля с самолетом братьев райт T-SQL от mssql2k по сравнению с oracle9i/10g действительно так и выглядел, а SQL так вообще как дельтаплан. 2locky >Как там насчет "how to rollback DDL statements"? а что у mssql с этим лучше ? как на счет # CREATE INDEX # CREATE XML INDEX # ALTER INDEX # ALTER TABLE # DBCC DBREINDEX # ALTER PARTITION FUNCTION # ALTER PARTITION SCHEME # DROP INDEX на IL snapshot ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:27 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! wrote: > на IL snapshot ;) Я этого не пробовал - значит, мне это не нужно :) зы не смотрел. Видимо - проблемы? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:28 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
конечно проблемы :) Msg 3964, Level 16, State 1, Line 1 Transaction failed because this DDL statement is not allowed inside asnapshot isolation transaction. Since metadata is not versioned,a metadata change can lead to inconsistency if mixed within snapshot isolation. + будет очень интересно что будет делать МС когда дорастет до статусов t-sql процедур (valid/invalid) ... имхо тут тоже никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:38 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuriИзвестно каким - записью в соответствующей таблице. С таким же успехом результатом SELECTа будет резалтсет. Не правда ли? funikovyuriВы можете получить эту запись с помощью SELECT. А вы как думали? Вы можете получить это резалтсет на клиенте. А Вы как думали? В том то и дело, что не стоит натягивать на SQL понятие "замкнутости" и придумывать для INSERT в качестве результата запись в таблице, которая не является ОБЪЕКТОМ ЯЗЫКА! funikovyuriтогда можно поговорить про обработку ошибок в MSSQL 2k ... а именно отсутствие исключений... А что об этом говорить. Их там действительно не было. Разве с этим кто спорит?! funikovyuri"костыли" в виде SET XACT_ABORT ON? Согласитесь, что писать универсальный код с SET XACT_ABORT ON сложно, Гм... Универсальный в моем понимании - это код, в котором ошибка любого рода приводит к полному откату транзакции, что и достигается с помощью SET XACT_ABORT ON. А уж для распределенных транзакций без него вообще никуда. funikovyuriа с постоянным анализом кода возврата каждого SQL-выражения долго и неудобно. Анализ наличия ошибки после каждой инструкции необходим только в случие различной реакции на ошибку для каждой инструкции. funikovyuri(с Yukon я не работал), Ну, и не работая, наверно слышали, про try...catch? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:47 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! wrote: > конечно проблемы :) > > Msg 3964, Level 16, State 1, Line 1 > Transaction failed because this DDL statement is not allowed > inside asnapshot isolation transaction. Since metadata is not > versioned,a metadata change can lead to inconsistency > if mixed within snapshot isolation. > > + будет очень интересно что будет делать МС когда дорастет до статусов > t-sql процедур (valid/invalid) ... имхо тут тоже никак. Это, по большому счету, фигня... А вот автокоммит ДДЛ - он иногда напрягает.... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:47 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuriНу т.е., я надеюсь, вы согласны что insert/exec это очень ограниченная конструкция Мать... Мать... Мать... :) Ну не используйте "ограниченную инструкцию" то? Возвращайте набор через курсор в выходном параметре. funikovyuriи писать универсальный, повторно используемый код на TSQL ситуация с "резалтсетами ушедшими на клиента" только мешает? Если Вы не будете отправлять их на клиента, то и мешать ничего не будет. У каждой хп должно быть назначение. Возвращает данные на клиента - должен быть SELECT. Данные будут обрабатываться на стороне сервера - курсор через параметр или это вообще должна быть НЕ ХП. Вариант с "не ХП" может быть использован и в задаче "возврата" данных на клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:52 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky В принципе, раз мы не касаемся юкона... и катмая... Поговорим о достоинствах и недостатках Оракл 8? Как там насчет "how to rollback DDL statements"? Т.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10? DDL в Oracle не транзакционны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:53 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuriТ.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10? DDL в Oracle не транзакционны. Ага... Так же, как и SERIALIZABLE не SERIALIZABLE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:55 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin funikovyuriНу т.е., я надеюсь, вы согласны что insert/exec это очень ограниченная конструкция Мать... Мать... Мать... :) Ну не используйте "ограниченную инструкцию" то? Возвращайте набор через курсор в выходном параметре. У каждой хп должно быть назначение. Вы, по-моему, путаете "назначение" и способ использования (контекст использования). Разработчику кода совершенно необязательно (а иногда это и просто невозможно) знать кем этот код будет вызываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:59 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! конечно проблемы :) Господа, ну ей богу. Сказано - нельзя INSERT ... EXEC ... быть вложенным, нет я все равно буду пытаться это использовать. Сказано об ограничениях DDL при снапшоте, нет я все равно буду это использовать. И после этого кричать: "ну ребятя, ну фигня же это". Еще раз спрощу, почему не кричите "фигня", что в char(1) два символа не влазит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:59 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin funikovyuriТ.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10? DDL в Oracle не транзакционны. Ага... Так же, как и SERIALIZABLE не SERIALIZABLE. Не позорьтесь, и не начинайте того чего не сможете закончить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:00 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri pkarklin funikovyuriТ.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10? DDL в Oracle не транзакционны. Ага... Так же, как и SERIALIZABLE не SERIALIZABLE. Не позорьтесь, и не начинайте того чего не сможете закончить Я бы посоветовал Вам быть чуть-чуть по-корректней, дабы мне не приходилось Вас посылать в тынц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:02 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > Т.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10? Нет, просто... Почему бы не вспомнить "предания старины глубокой"? У нас иногда с семёркой люди появляются... Зачем брать "то что есть"? Когда всегда можно посмотреть "то что было" - и то, что уже, ессно, не улучшится ;) > DDL в Oracle не транзакционны. Вот это и напрягает... begin tran drop table rollback - и жоППА.... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=34911214&tid=1553126]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 154ms |

| 0 / 0 |
