powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Microsoft задавит Oracle
25 сообщений из 408, страница 6 из 17
Microsoft задавит Oracle
    #34910247
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriС точки зрения остального кода на tsql резалтсет уходит в никуда.

По поводу способа возврата резалтсета из хп у нас уже был здесь спор. Поищите. По сабжу.

Рассмотрим пример:

Код: plaintext
1.
2.
3.
SELECT
  *
FROM
  authors

и

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROC TestProc
AS
  SELECT
    *
  FROM
    authors
GO

EXEC TestProc

Почему в первом случаи вы знаете, "куда" уходит резалтсет, а во втором нет?! Раз Вы не указали "вкуда" направлять результат, он будет отправлен на клиента. В отличии от Oracle поведение результата выборки в MS SQL однозначно, будь она AdHoc запросом или запросом в хп.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910323
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу вот есть
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROC TestProc
AS
  SELECT
    *
  FROM
    authors
GO

EXEC TestProc

и еще есть
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROC AnotherTestProcThatUsesTestProc
AS
    exec AnotherTestProcThatUsesTestProc

    -- как мне использовать результат работы AnotherTestProcThatUsesTestProc
GO

EXEC AnotherTestProcThatUsesTestProc

PS про "уходит на клиента" это круто
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910340
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс, правильный код такой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROC AnotherTestProcThatUsesTestProc
AS
    exec ProcThat

    -- как мне использовать результат работы TestProc
GO

EXEC AnotherTestProcThatUsesTestProc
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910349
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri wrote:
> упс, правильный код такой
insert .... exec?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910362
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri -- как мне использовать результат работы AnotherTestProcThatUsesTestProc

Код: plaintext
INSERT @TableVar\#TempTable EXEC ...

funikovyuriPS про "уходит на клиента" это круто

Это действительно "круто", ибо куда еще можно уходить результату SELECT?!
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910431
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

чтож вы умолчали про эти "фичи"?

авторЭто действительно "круто", ибо куда еще можно уходить результату SELECT?!

будете удивлены, но есть такое свойство как замкнутость, в данном случае имеется в виду что обычно в языке программирования результатом любой операции языка является объект этого языка. В случае TSQL это не так
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910631
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri wrote:
> будете удивлены, но есть такое свойство как замкнутость, в данном случае
> имеется в виду что обычно в языке программирования результатом любой
> операции языка является объект этого языка. В случае TSQL это не так
В Т-СКЛ и объетов то нету :(
И массивов... и ваще - он как бы не "язык программирования" :(

"как страшно жыть" (С) Р.Литвинова.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910635
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri wrote:
> чтож вы умолчали про эти "фичи"?

Никто не ставил граничных условий - потому и "умолчали".
Если РЕАЛЬНО надо сделать - можно сделать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910678
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriну не мне же вас в faq по mssql отсылать

Действительно, не надо. Я его и так хорошо знаю...

funikovyuriчтож вы умолчали про эти "фичи"?

Эт не "фичи". Эт "by design". Почему Вас не удивляет то, что в char(1) нельзя вписать более 1го символа? Да и workaround этого "by design" есть.


funikovyuriбудете удивлены, но есть такое свойство как замкнутость, в данном случае имеется в виду что обычно в языке программирования результатом любой операции языка является объект этого языка. В случае TSQL это не так

И каким объектом языка в Oracle будет результат INSERT?
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34910991
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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

чтож вы умолчали про эти "фичи"?

как-то мелковато для демонстрации сравнения космического корабля с самолетом братьев райт
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911055
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin И каким объектом языка в Oracle будет результат INSERT?
Известно каким - записью в соответствующей таблице. Вы можете получить эту запись с помощью SELECT. А вы как думали?

SergSuper
как-то мелковато для демонстрации сравнения космического корабля с самолетом братьев райт

Ну т.е., я надеюсь, вы согласны что insert/exec это очень ограниченная конструкция и писать универсальный, повторно используемый код на TSQL ситуация с "резалтсетами ушедшими на клиента" только мешает?

тогда можно поговорить про обработку ошибок в MSSQL 2k (с Yukon я не работал), а именно отсутствие исключений и "костыли" в виде SET XACT_ABORT ON? Согласитесь, что писать универсальный код с SET XACT_ABORT ON сложно, а с постоянным анализом кода возврата каждого SQL-выражения долго и неудобно.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911073
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911092
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 ;)
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911098
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! wrote:
> на IL snapshot ;)
Я этого не пробовал - значит, мне это не нужно :)

зы не смотрел. Видимо - проблемы?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911123
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
конечно проблемы :)

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) ... имхо тут тоже никак.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911153
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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?
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911155
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911181
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriНу т.е., я надеюсь, вы согласны что insert/exec это очень ограниченная конструкция

Мать... Мать... Мать... :) Ну не используйте "ограниченную инструкцию" то? Возвращайте набор через курсор в выходном параметре.

funikovyuriи писать универсальный, повторно используемый код на TSQL ситуация с "резалтсетами ушедшими на клиента" только мешает?

Если Вы не будете отправлять их на клиента, то и мешать ничего не будет. У каждой хп должно быть назначение. Возвращает данные на клиента - должен быть SELECT. Данные будут обрабатываться на стороне сервера - курсор через параметр или это вообще должна быть НЕ ХП. Вариант с "не ХП" может быть использован и в задаче "возврата" данных на клиента.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911182
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
В принципе, раз мы не касаемся юкона... и катмая...
Поговорим о достоинствах и недостатках Оракл 8?

Как там насчет "how to rollback DDL statements"?

Т.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10?

DDL в Oracle не транзакционны.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911187
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriТ.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10?

DDL в Oracle не транзакционны.

Ага... Так же, как и SERIALIZABLE не SERIALIZABLE.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911202
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin funikovyuriНу т.е., я надеюсь, вы согласны что insert/exec это очень ограниченная конструкция

Мать... Мать... Мать... :) Ну не используйте "ограниченную инструкцию" то? Возвращайте набор через курсор в выходном параметре.

У каждой хп должно быть назначение.

Вы, по-моему, путаете "назначение" и способ использования (контекст использования). Разработчику кода совершенно необязательно (а иногда это и просто невозможно) знать кем этот код будет вызываться.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911208
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! конечно проблемы :)

Господа, ну ей богу.

Сказано - нельзя INSERT ... EXEC ... быть вложенным, нет я все равно буду пытаться это использовать.

Сказано об ограничениях DDL при снапшоте, нет я все равно буду это использовать.

И после этого кричать: "ну ребятя, ну фигня же это". Еще раз спрощу, почему не кричите "фигня", что в char(1) два символа не влазит?
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911209
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin funikovyuriТ.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10?

DDL в Oracle не транзакционны.

Ага... Так же, как и SERIALIZABLE не SERIALIZABLE.

Не позорьтесь, и не начинайте того чего не сможете закончить
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911214
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri pkarklin funikovyuriТ.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10?

DDL в Oracle не транзакционны.

Ага... Так же, как и SERIALIZABLE не SERIALIZABLE.

Не позорьтесь, и не начинайте того чего не сможете закончить

Я бы посоветовал Вам быть чуть-чуть по-корректней, дабы мне не приходилось Вас посылать в тынц.
...
Рейтинг: 0 / 0
Microsoft задавит Oracle
    #34911222
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri wrote:
> Т.е. вы считаете что Yukon надо сравнивать с Oracle 9, а не 10?
Нет, просто...
Почему бы не вспомнить "предания старины глубокой"?
У нас иногда с семёркой люди появляются...
Зачем брать "то что есть"? Когда всегда можно посмотреть "то что было" -
и то, что уже, ессно, не улучшится ;)

> DDL в Oracle не транзакционны.
Вот это и напрягает...

begin tran
drop table
rollback

- и жоППА....
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
25 сообщений из 408, страница 6 из 17
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Microsoft задавит Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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