powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Циклы и IF'ы в Oracle по сравнению с MS SQL
9 сообщений из 134, страница 6 из 6
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35253952
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin wrote:
> Навскидку из тех, что былди в 2000. Зависание транзакции....
Не, меня интересуют те проблемы, которые находятся при помощи анализа
текста процедуры/функции/етк.
Хотя, кстати, коммит/ролбэк без бегин/сэйв трана - тоже надо запомнить.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35254056
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyНе, меня интересуют те проблемы, которые находятся при помощи анализа
текста процедуры/функции/етк.
Хотя, кстати, коммит/ролбэк без бегин/сэйв трана - тоже надо запомнить.

Ну так как раз "та самая" проблема. Ссылка на отсутствующий объект приводила к описанной по ссылке ситуации.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35254177
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin wrote:
> Ну так как раз "та самая" проблема. Ссылка на отсутствующий объект
> приводила к описанной по ссылке ситуации.
сорри, видимо - недочитал.
Это когда по 208 ошибке валится батч и транзакция остаётся
незакомиченной/неотролбеченой?
кстати, отлов ДНР - надо запомнить.
С таблицами/вью/ТВФ будут проблемы, а вот процедуры/скалярные функции -
это я влёгкую могу ловить.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35257309
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, наиболее "забавная" весчь, на мой взгля, это
Код: plaintext
1.
2.
3.
4.
create proc _TEST_
as begin
  select a,sum(b) from aaa group by c
end

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35257705
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
кстати, наиболее "забавная" весчь, на мой взгля, это
Код: plaintext
1.
2.
3.
4.
create proc _TEST_
as begin
  select a,sum(b) from aaa group by c
end


Гм... И что тут забавного?! Стадию синтаксического контроля эта конструкция в хп (да и не только в хп) пройдет на ура. А так как таблицы не существует, то наличие полей в ней при создании хп проверяться не будет. Все как и положено с DNR.

Сравните с:

Код: plaintext
1.
2.
3.
CREATE proc _TEST_
as begin
  select xtype, count(*) from sysobjects group by c
end
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35258015
drev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin locky
кстати, наиболее "забавная" весчь, на мой взгля, это
Код: plaintext
1.
2.
3.
4.
create proc _TEST_
as begin
  select a,sum(b) from aaa group by c
end


Гм... И что тут забавного?! Стадию синтаксического контроля эта конструкция в хп (да и не только в хп) пройдет на ура. А так как таблицы не существует, то наличие полей в ней при создании хп проверяться не будет. Все как и положено с DNR.

Сравните с:

Код: plaintext
1.
2.
3.
CREATE proc _TEST_
as begin
  select xtype, count(*) from sysobjects group by c
end



По идее, уже на стадии синтаксического контроля можно выдать ошибку:

Код: plaintext
Column 'aaaa.a' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35258032
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drevПо идее, уже на стадии синтаксического контроля можно выдать ошибку:

Код: plaintext
Column 'aaaa.a' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


Это уже "проблема" не DNR, а синтаксического разборщика, как такового. ;)
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35258058
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinЭто уже "проблема" не DNR, а синтаксического разборщика, как такового. ;)
Ну в общем да. Точнее - при программировании синтаксических анализаторов (ох, и ругались же мы с drev на эту тему ;-) есть практика - натыкаясь на ошибку, пытаться искусственно дополнить контекст и компилировать дальше (искать следующие ошибки). В данном случае было бы - найдя такой селект, дополнить метаданные таблицей aaa, колонками a, b, c и пахать дальше.

Правда, есть одна тонкость - не знаю как по синтаксису mssql, но a, b и c с тем же успехом могут оказаться, например, функциями. Я не готов оценить все возможные следствия и сказать "да, можно было бы сделать, получилось бы без особых проблем и лучше, чем без этого".
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35258121
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerПравда, есть одна тонкость - не знаю как по синтаксису mssql, но a, b и c с тем же успехом могут оказаться, например, функциями. Я не готов оценить все возможные следствия и сказать "да, можно было бы сделать, получилось бы без особых проблем и лучше, чем без этого".

В том, что "получилось бы без особых проблем и лучше, чем без этого" Вы правы, ибо синтаксис вызова скалярных функций требует обязательности наличия префикса схемы и скобок (даже если нет ни одного параметра), так что отличить имена колонок или их алиасы от функций можно (нужно).
...
Рейтинг: 0 / 0
9 сообщений из 134, страница 6 из 6
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Циклы и IF'ы в Oracle по сравнению с MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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