powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Циклы и IF'ы в Oracle по сравнению с MS SQL
25 сообщений из 134, страница 1 из 6
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35219093
Diablas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно,вопрос больше к знатокам Оракла... Но в сравнении с MS SQL'ем.
Недавно спорили мы с одним человеком на давнюю тему MSSQL vs. Oracle и среди прочего затронули вопрос написания сторед-процедур.
Он утерждает,что в Oracle нет таких конструкций,как IF и циклы (я слабо себе представляю многие мои сторед-процедуры без этого).Я же стоял на том,что ну не может такая серьезная система,как Оракл,существовать без таких простых вещей,как,например,IF.Он доказывал,что может и существует.

Вобщем,отсюда вопрос... Есть ли аналог MSSQL'ных IF'ов и циклов (например,WHILE) в Oracle или нет.

Спасибо и извиняюсь за такой несколько ламерский вопрос. :)
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35219099
Фотография !!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В PL/SQL есть конструкции
Код: plaintext
1.
2.
3.
4.
5.
6.
if <> then
...
elsif <> then
...
else
...
end if;
и
Код: plaintext
1.
2.
 FOR i IN  1  ..  10  LOOP
 ...
 END LOOP;
В SQL вместо MSSQL-ного if используется CASE ... END или функция decode()
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35219113
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
!!!В SQL вместо MSSQL-ного if используется CASE ... END или функция decode()
В MS SQL в SQL запросе if не используется.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35219145
Фотография !!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк !!!В SQL вместо MSSQL-ного if используется CASE ... END или функция decode()
В MS SQL в SQL запросе if не используется.Вероятно, я ошибся, т.к. опыт работы с этим продуктом у меня минимальный :-) Помню что некая конструкция, аналогичная оракловому CASE, в MS SQL Server существовала.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35219167
Diablas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В MSSQL есть IF,но он действительно в запросе не используется,в запросе используется CASE,например
Код: plaintext
SELECT field1, CASE field2 WHEN значение THEN другое значение ELSE еще значение END, field3
Но в сторед-процедуре можно написать
Код: plaintext
1.
2.
3.
4.
IF условие BEGIN
SELECT бла-бла-бла
ELSE
SELECT дргое бла-бла-бла
END

Вот. :)
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35219375
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Diablas пишет:

> Он утерждает,что в Oracle нет таких конструкций,как IF и циклы (я слабо
> себе представляю многие мои сторед-процедуры без этого).

Он и прав, и не прав. Дело в том, что в ORACLE, в отличие от MSSQL,
где язык один - TransactSQL - и для процедур, и для триггеров, и для
запросов, языков у СУБД два - SQL и PL/SQL. В первом нет ни IF, ни
циклов (CONNECT BY не в счет). Но на нем не пишутся ни процедуры,
ни триггера. Они пишутся на PL/SQL. А там есть уже все.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229011
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivMSSQL,где язык один - TransactSQL - и для процедур, и для триггеров, и для
запросов,А когда TransactSQL стал языком запросов?
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229035
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyА когда TransactSQL стал языком запросов?

Он был им всегда. :)
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229068
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey пишет:

> А когда TransactSQL стал языком запросов?
Со своего рождения.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229078
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Он и прав, и не прав. Дело в том, что в ORACLE, в отличие от MSSQL,
где язык один - TransactSQL - и для процедур, и для триггеров, и для
запросов, языков у СУБД два - SQL и PL/SQL.
не стоит принимать на веру все, что пишут на заборе, тьфу на MSDN ... ну не разобрались там, в том что SQL это вообще-то декларативный язык, а язык процедур - процедурный, ну бывает
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229100
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!не стоит принимать на веру все, что пишут на заборе, тьфу на MSDN ... ну не разобрались там, в том что SQL это вообще-то декларативный язык, а язык процедур - процедурный, ну бывает

Угу. Тока что PL\SQL, что T-SQL считаются процедрными расширениями декларативного SQL. Тока в MS не стали его дробить на два.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229137
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Угу. Тока что PL\SQL, что T-SQL считаются процедрными расширениями декларативного SQL. Тока в MS не стали его дробить на два.
нифига, где-то на MSDN было забавное определение сваливающее декларативность и процедурность в кучу, вечерком поищу.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229256
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! пишет:
> не стоит принимать на веру все, что пишут на заборе, тьфу на MSDN ... ну
> не разобрались там, в том что SQL это вообще-то декларативный язык, а
> язык процедур - процедурный, ну бывает

Transact SQL - это один язык, включающий как подязык SQL (с расширениями).
Он и декларативный, и императивный одновременно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229571
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv Bogdanov AndreyА когда TransactSQL стал языком запросов?

Со своего рожденияТо есть в запросах можно использовать любые конструкции этого языка? Если нет, то языком запросов является не TransactSQL, а некое его подмножество.

MasterZivTransact SQL - это один язык, включающий как подязык SQL (с расширениями).
Он и декларативный, и императивный одновременно.Так в чем же разница с PL/SQL? Только в том, что Oracle терминологически разделил декларативную и процедурную части, а MSSQL решил терминологией себя не озабачивать. Количество имеющихся синтаксических конструкций практически одинаково.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229645
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо есть в запросах можно использовать любые конструкции этого языка?

Что значит "любые конструкции"?! Как прикажете цикл в запросе использовать?
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229646
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey wrote:
> Так в чем же разница с PL/SQL?
А Вы знакомы с PL/SQL?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229655
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin авторТо есть в запросах можно использовать любые конструкции этого языка?

Что значит "любые конструкции"?! Как прикажете цикл в запросе использовать?Ну этого я не знаю. Было утверждение, что TransactSQL - язык запросов, значит конструкции этого языка предназначены для написания запросов. Вот пусть автор утверждения и расскажет.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229664
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey пишет:

> То есть в запросах можно использовать любые конструкции этого языка?

Ну в общем да, но не везде можно использовать все конструкции.
Т.е. внутри SELECT-а написать IF например нельзя.
Но например послать батч (посылку на сервер) типа
Код: plaintext
1.
2.
3.
4.
5.
if some_condition
   select ... from a
else
   select ... from b
endif
можно. На сколько я знаю, такого сделать в ORACLE нельзя.
Там либо ты посылаешь на сервер SQL - запрос, либо PL/SQL блок.
В PL/SQL блоке конечно тоже можно сделать SELECT, но уже по-другому.


> Так в чем же разница с PL/SQL? Только в том, что Oracle терминологически
> разделил декларативную и процедурную части, а MSSQL решил терминологией
> себя не озабачивать. Количество имеющихся синтаксических конструкций

Не терминологически, а технологически. В оракле оно как-то поотдельности
живет. Я выше попытался объяснить.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229677
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyБыло утверждение, что TransactSQL - язык запросов, значит конструкции этого языка предназначены для написания запросов. Вот пусть автор утверждения и расскажет.

Еще как предназначены. Посмотрите любой скрипт на bid=1.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229679
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyА Вы знакомы с PL/SQL?Мне казалось, что мы здесь не мои знания обсуждаем.
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229687
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin Bogdanov AndreyБыло утверждение, что TransactSQL - язык запросов, значит конструкции этого языка предназначены для написания запросов. Вот пусть автор утверждения и расскажет.

Еще как предназначены. Посмотрите любой скрипт на bid=1.А вы сейчас кому отвечаете? Если мне, то я не спрашивал предназначены ли конструкции TransactSQL для написания запросов. А если кому-то другому, то зачем меня цитировать?
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229712
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА вы сейчас кому отвечаете? Если мне, то я не спрашивал предназначены ли конструкции TransactSQL для написания запросов.

Простите, следующее не Вы спрашивали?!

Bogdanov AndreyА когда TransactSQL стал языком запросов?

Bogdanov AndreyТо есть в запросах можно использовать любые конструкции этого языка
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229987
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey wrote:
> А Вы знакомы с PL/SQL?
>
> Мне казалось, что мы здесь не мои знания обсуждаем.
Да, не их.
Однако, если Вы не знакомы с PL/Sql, то было бы странно выслушивать Ваше
мнение по поводу похожести и/или непохожести оного на T-Sql.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35229992
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey Было утверждение, что TransactSQL - язык запросов, значит конструкции этого языка предназначены для написания запросов. Вот пусть автор утверждения и расскажет.Если у Вас автомобиль, предназначенных для перевозки 5 человек - это же не значит что на нём нельзя ездить одному

по-моему демагогией занимаетесь
...
Рейтинг: 0 / 0
Циклы и IF'ы в Oracle по сравнению с MS SQL
    #35230111
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin авторА вы сейчас кому отвечаете? Если мне, то я не спрашивал предназначены ли конструкции TransactSQL для написания запросов.

Простите, следующее не Вы спрашивали?!

Bogdanov AndreyА когда TransactSQL стал языком запросов?

Bogdanov AndreyТо есть в запросах можно использовать любые конструкции этого языка
А слово ЛЮБЫЕ вы решили проигнорировать.

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


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