Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6]      все
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

pkarklin wrote:
> Навскидку из тех, что былди в 2000. Зависание транзакции....
Не, меня интересуют те проблемы, которые находятся при помощи анализа
текста процедуры/функции/етк.
Хотя, кстати, коммит/ролбэк без бегин/сэйв трана - тоже надо запомнить.

Posted via ActualForum NNTP Server 1.4

14 апр 08, 16:21    [5543773]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
locky
Не, меня интересуют те проблемы, которые находятся при помощи анализа
текста процедуры/функции/етк.
Хотя, кстати, коммит/ролбэк без бегин/сэйв трана - тоже надо запомнить.


Ну так как раз "та самая" проблема. Ссылка на отсутствующий объект приводила к описанной по ссылке ситуации.
14 апр 08, 16:47    [5543975]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

pkarklin wrote:
> Ну так как раз "та самая" проблема. Ссылка на отсутствующий объект
> приводила к описанной по ссылке ситуации.
сорри, видимо - недочитал.
Это когда по 208 ошибке валится батч и транзакция остаётся
незакомиченной/неотролбеченой?
кстати, отлов ДНР - надо запомнить.
С таблицами/вью/ТВФ будут проблемы, а вот процедуры/скалярные функции -
это я влёгкую могу ловить.

Posted via ActualForum NNTP Server 1.4

14 апр 08, 17:16    [5544220]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

кстати, наиболее "забавная" весчь, на мой взгля, это
create proc _TEST_
as begin
  select a,sum(b) from aaa group by c
end

Posted via ActualForum NNTP Server 1.4

15 апр 08, 19:59    [5551079]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
locky

кстати, наиболее "забавная" весчь, на мой взгля, это
create proc _TEST_
as begin
  select a,sum(b) from aaa group by c
end


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

Сравните с:

CREATE proc _TEST_
as begin
  select xtype, count(*) from sysobjects group by c
end
16 апр 08, 08:49    [5551993]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
pkarklin
locky

кстати, наиболее "забавная" весчь, на мой взгля, это
create proc _TEST_
as begin
  select a,sum(b) from aaa group by c
end


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

Сравните с:

CREATE proc _TEST_
as begin
  select xtype, count(*) from sysobjects group by c
end



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

Column 'aaaa.a' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
16 апр 08, 10:41    [5552643]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
drev
По идее, уже на стадии синтаксического контроля можно выдать ошибку:

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, а синтаксического разборщика, как такового. ;)
16 апр 08, 10:44    [5552675]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 68071
Блог
pkarklin
Это уже "проблема" не DNR, а синтаксического разборщика, как такового. ;)

Ну в общем да. Точнее - при программировании синтаксических анализаторов (ох, и ругались же мы с drev на эту тему ;-) есть практика - натыкаясь на ошибку, пытаться искусственно дополнить контекст и компилировать дальше (искать следующие ошибки). В данном случае было бы - найдя такой селект, дополнить метаданные таблицей aaa, колонками a, b, c и пахать дальше.

Правда, есть одна тонкость - не знаю как по синтаксису mssql, но a, b и c с тем же успехом могут оказаться, например, функциями. Я не готов оценить все возможные следствия и сказать "да, можно было бы сделать, получилось бы без особых проблем и лучше, чем без этого".
16 апр 08, 10:49    [5552714]     Ответить | Цитировать Сообщить модератору
 Re: Циклы и IF'ы в Oracle по сравнению с MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
softwarer
Правда, есть одна тонкость - не знаю как по синтаксису mssql, но a, b и c с тем же успехом могут оказаться, например, функциями. Я не готов оценить все возможные следствия и сказать "да, можно было бы сделать, получилось бы без особых проблем и лучше, чем без этого".


В том, что "получилось бы без особых проблем и лучше, чем без этого" Вы правы, ибо синтаксис вызова скалярных функций требует обязательности наличия префикса схемы и скобок (даже если нет ни одного параметра), так что отличить имена колонок или их алиасы от функций можно (нужно).
16 апр 08, 11:03    [5552872]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6]      все
Все форумы / Сравнение СУБД Ответить