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

Откуда:
Сообщений: 78
Например в MSSQL
чтобы реализовать транзацию
Begin tran
// ..
Rollback Tran
на Oracle ?

Например в MSSQL есть хороший оператор select TOP 10 *
в Oracle такого нету есть только workaround тут

Есще кто-нибуть везкие знает отличия?
На сколько я помню то Oracle использует PL SQL
31 янв 05, 16:13    [1287884]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
borcik
Например в MSSQL
чтобы реализовать транзацию
Begin tran
// ..
Rollback Tran
на Oracle ?

Например в MSSQL есть хороший оператор select TOP 10 *
в Oracle такого нету есть только workaround тут

Есще кто-нибуть везкие знает отличия?
На сколько я помню то Oracle использует PL SQL

А зачем Вам это ? Поставьте себе доки от MSSQL и Oracle и сравните по всем пунктам, TSQL и PL/SQL разные диалекты, далее совместимости с ANSI92 все в разные стороны расходится.
31 янв 05, 16:47    [1288067]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
borcik
Member

Откуда:
Сообщений: 78
Так в том то оно и дело что долго это тут хотелось собрать основные различия и статьи хорошей не нашел. С MSSQL более мение разбираюсь а щас волею сутьбы приходиться с PL/SQL и Oracle разбираться. Даже тот просто rollback незнаю как сделать :(
31 янв 05, 16:54    [1288109]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
а документацию по каждому из продуктов почитать? воспользоваться поиском?
Действительно PL\SQL, который намного богаче по сравнению с TSQL.

Странный вопрос.
31 янв 05, 19:16    [1288695]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
alexey_tm
Member

Откуда: Томск
Сообщений: 173
Разница очень большая, если Вас интересует SQL, то Oracle 9i полность соответсвует стандарту SQL1999 и сравнивать следует MSSQL на соответсвие этому стандарту.
Если Вас интересует ПРОЦЕДУРНОЕ расширение SQL - PL/SQL то о существовании стандарта на него (процедурное расширение) я не знаю.
Что касается управления транзакциями, то по умолчаню любой DDL начинается и заканчивается COMMIT, DDL надо фиксировать отдельно (правда в случае использования TOOLS типа SQL*Plus и проча и иже с ними, все зависит от настроек. Существует понятие автономных транзакций. Впрочем документация по PL/SQL занимает порядка тысячи страниц, и все пересказывать трудно. Тем более если Вы захотите использовать объектную опцию (ООП), то и того больше.
По поводу ROWNUM, это только MSSQL может утверждать что может по номеру записи чего-то возвращать, никто Вам не гарантирунет, что запись в реляционной БД будет находится в том же месте ( а если ее удалят?)
1 фев 05, 13:42    [1290463]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
segun
Member

Откуда: Москва
Сообщений: 504
alexey_tm
По поводу ROWNUM, это только MSSQL может утверждать что может по номеру записи чего-то возвращать, никто Вам не гарантирунет, что запись в реляционной БД будет находится в том же месте ( а если ее удалят?)
в смысле?
для этого в MSSQL нужно создавать отдельный столбец, как, впрочем, и в других СУБД. Физически записи могут храниться как угодно.
1 фев 05, 13:58    [1290541]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
segun
alexey_tm
По поводу ROWNUM, это только MSSQL может утверждать что может по номеру записи чего-то возвращать, никто Вам не гарантирунет, что запись в реляционной БД будет находится в том же месте ( а если ее удалят?)
в смысле?
для этого в MSSQL нужно создавать отдельный столбец, как, впрочем, и в других СУБД. Физически записи могут храниться как угодно.


На самом деле, это только в MySQL есть такая фича:
select * from table LIMIT 100092091 7
1 фев 05, 15:33    [1291012]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
www.fun4me.narod.ru
На самом деле, это только в MySQL есть такая фича: select * from table LIMIT 100092091 7

Вопрос не столько в фиче, сколько в эффективности ее реализации. По-хорошему для этого нужны двунаправленные курсоры.
1 фев 05, 15:46    [1291072]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
www.fun4me.narod.ru
На самом деле, это только в MySQL есть такая фича:
select * from table LIMIT 100092091 7

И что это делает?
2 фев 05, 08:40    [1292672]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
это означает, что следует вернуть из выборки записи начиная с ... и всего ... штук.

удобная вещь, конечно.
2 фев 05, 09:03    [1292708]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
Хрен
Member

Откуда: Brisbane
Сообщений: 1455
сходи на сервер mysql, выбери mssql и oracle и смотри себе отличия
2 фев 05, 09:25    [1292773]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
Dogen
Member

Откуда: Гондурас
Сообщений: 2976
www.fun4me.narod.ru
segun
alexey_tm
По поводу ROWNUM, это только MSSQL может утверждать что может по номеру записи чего-то возвращать, никто Вам не гарантирунет, что запись в реляционной БД будет находится в том же месте ( а если ее удалят?)
в смысле?
для этого в MSSQL нужно создавать отдельный столбец, как, впрочем, и в других СУБД. Физически записи могут храниться как угодно.


На самом деле, это только в MySQL есть такая фича:
select * from table LIMIT 100092091 7

Это не гарантирует повторяемость результата, т.к. например в таблицах MyISAM удаление записей приводит к появлению пустых строк, заполняемых позже (насколько я понимаю). Если добавить order by, то это становится более полезным. Но вообще смысл имеет при показе последних записей в списке документов и т.д. и т.п., а также при администрировании БД бывает удобно.
2 фев 05, 09:55    [1292921]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
AAron
это означает, что следует вернуть из выборки записи начиная с ... и всего ... штук.

Значит
select * from table LIMIT 100092091 7
вернет 7 записей. Но что такое 100092091?
2 фев 05, 12:40    [1293753]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
alexey_tm
Member

Откуда: Томск
Сообщений: 173
www.fun4me.narod.ru

На самом деле, это только в MySQL есть такая фича:
select * from table LIMIT 100092091 7

В Oracle существует понятие ROWID, но так как это ФИЗИЧЕСКИЙ адрес строки, то, как и Вашем случае, гарантировать валидность выбороки в любой момент времени никто не сможет, использую ЛОГИЧЕСКИЙ номер записи (ROWNUM) в запросе можно довольно таки просто реализовать подобный запрос в Oracle, стой разницей, что можно самому пропросить строку из таблицы номер, файла данных номер, блока номер и т.д. (теоретически, я не пробовал)
3 фев 05, 09:25    [1296142]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
2f_w_p
Начиная именно с этой записи. А вообще, я MySQL года 4 не видел уже. Лучше посмотреть в документации.
3 фев 05, 15:46    [1297898]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
andrushok
Member

Откуда: от верблюда
Сообщений: 7430
Дык, не ответили однако зачем сие нужно....
Посадили за оракл -
- Забудте все, чему вас учили в школе ...
А. Райкин (С)


... И вперед.
4 фев 05, 00:08    [1298973]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
AAron
2f_w_p Начиная именно с этой записи. А вообще, я MySQL года 4 не видел уже. Лучше посмотреть в документации.

Вот я и спрашиваю, к.о. определяется первая запись? Как формируется номер записи?
4 фев 05, 09:07    [1299251]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Ребята, нет никаких первых и последних записей. Есть только первичные и внешние ключи. Все. Точка.
Хотя, rowid в Oracle бывает полезен при работе с данными в процедурах/функциях.
4 фев 05, 09:58    [1299357]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
alexey_tm
Member

Откуда: Томск
Сообщений: 173
Urri
Ребята, нет никаких первых и последних записей. Есть только первичные и внешние ключи. Все. Точка.
Хотя, rowid в Oracle бывает полезен при работе с данными в процедурах/функциях.

Полностью и целиком согласен. Номер записи это их DBF что было давно и не правда. В реляционной БД номер записи не имеет смысла.
4 фев 05, 11:49    [1299745]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
2f_w_p
Да ко мне-то какие вопросы? я откуда знаю? я только сказал, что выбираются записи с указанного номера. А как оно работает - я уже и не помню.
4 фев 05, 14:15    [1300538]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
pilot911
Member [заблокирован]

Откуда: Москва
Сообщений: 3906
ну вы даете.. уже и не помните отличных фишек мускуля

100092091 - это значение первой строки из всех найденных

например, LIMIT 10,3 - значит вывести 10,11,12 записи из найденных
11 май 10, 05:43    [8751454]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
pilot911
ну вы даете.. уже и не помните отличных фишек мускуля

100092091 - это значение первой строки из всех найденных

например, LIMIT 10,3 - значит вывести 10,11,12 записи из найденных
детстве не мечтал стать патологоанатомом?

Сообщение было отредактировано: 11 май 10, 09:32
11 май 10, 09:31    [8751800]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
Saller
Member

Откуда: exUSSR
Сообщений: 1141
pilot911
ну вы даете.. уже и не помните отличных фишек мускуля

100092091 - это значение первой строки из всех найденных

например, LIMIT 10,3 - значит вывести 10,11,12 записи из найденных

Всем уже пофик, дату последнего поста посмотри
11 май 10, 09:33    [8751807]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
Guest1239756
Guest
Saller, мне не пофиг, с удовольствием почитал эту ветку :-)
30 май 14, 12:57    [16096875]     Ответить | Цитировать Сообщить модератору
 Re: Разница SQL синтаксиса в MSSQL и Oracle  [new]
29 Белых Котиков
Member

Откуда: ИТ-бог. Мне доверяют 30 человек.
Сообщений: 2860
О каком анси можно говорить, если в оракле даже эксцепт минусом обозвали. Ну, объективно же, недоделка и баг.
30 май 14, 23:12    [16099933]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить