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

Откуда: Vilnius
Сообщений: 701
Помогите сравнить, выскажите свои мнения по поводу PL/sql и T/sql, плюсы и минусы
25 май 06, 16:38    [2706456]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Sim.On
Member

Откуда: Ростов-на-Дону
Сообщений: 92
В T-SQL нет иерархических запросов, в PL-SQL нельзя процедурой вернуть набор данных
Если я ошибаюсь, поправьте меня
25 май 06, 16:52    [2706579]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
ну T-SQL от mssql2k5 это немного кастрированый PL/SQL oracle7 (1992 год)
В оракле было отслеживание зависимостей, это когда объекты субд (procedure/function/package/view) имеют стаус valid/invalid и субд отслеживает зависимости между ними. Например удаление таблицы повлечет за собой изменение статуса на «invalid» всех объектов, котрые были связаны с этой таблицой. Это позволяет предотвращать запуск процедур которые выполнятся с ошибкой. Mssql проверяет лишь синтаксис и только во время компиляции, поэтому такая процедура будет запущена и будет работать пока не встетится ошибочная команда, результат такой работы может быть непредсказуем.

- В T-SQL нет масивов
- Отсутствуют ООП фичи (object oriented features)
- Нет аналогов встроеных процедур/пакетов (DBMS_*, UTL_*, и т.п.)
- Нет аналога пакетам
- T-SQL mssql2005 по прежнему имеет ограничение на глубину рекурсии (32 вызова)
- В mssql2005 нет before, on connect тригеров, отсутствует отложеная проверка.

а вообще сравнивать нада комплексно, включая SQL, поведения временых таблиц и почее ... типа так :)
http://oraclemind.blogspot.com/2006/03/oracle-10g-vs-microsoft-sql-server_26.html

Sim.On
В T-SQL нет иерархических запросов, в PL-SQL нельзя процедурой вернуть набор данных
Если я ошибаюсь, поправьте меня


это SQL и вроде в msql2k5 появилось выражение WITH
25 май 06, 16:56    [2706613]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267



чел сравнить просил а не эту шелуху


Posted via ActualForum NNTP Server 1.3

25 май 06, 17:17    [2706794]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
Sim.On
в PL-SQL нельзя процедурой вернуть набор данных
Если я ошибаюсь, поправьте меня

Есть в Оракле pipelined function, которая возвращает набор данных, а можно и и классически - через REF CURSOR (указатель на recordset)
25 май 06, 18:28    [2707208]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Один1
Guest
2 Yo.!!
Это вы хорошо набросили :)
25 май 06, 19:09    [2707360]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
В хранимках Oracle максимальная вложенность запроса - 3
26 май 06, 00:52    [2708080]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2357
3JIA9I с**а
В хранимках Oracle максимальная вложенность запроса - 3


*зееевать
эт в каком оракле ;)? select * from v$version в студию
и вообще, чево, execute immediate отменили?
26 май 06, 09:27    [2708502]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
3JIA9I с**а
В хранимках Oracle максимальная вложенность запроса - 3


ну разве что если руки растут из жопы и не дотягиваются до 4-й вложености :)

aZm

и вообще, чево, execute immediate отменили?


и что через execute immediate запрос будет другой движек обрабатовать ?
26 май 06, 09:54    [2708616]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Guest
Yo.!!
и что через execute immediate запрос будет другой движек обрабатовать ?


А вы что никогда не сталкивались что некоторые конструкции, лекго проглатываемые в коммандном SQL-е, не хотят компилироваться в PL/SQL-е?
В 8.1.5 помню нельзя было использовать ORDER BY в подзапросах. Во всей линии восьмерки аналитические функции не пашут в PL/SQL.

Вообще, конечно PL/SQL вещь неплохая, но огрех, мешающих жить сухо и комфортно - море. Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор. Хреновы индусы!
26 май 06, 11:45    [2709294]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
2Longsvano

неверю. ( но у меня нет восьмерки проверить.) pl/sql всего лишь вызывает движек SQL и все (см рисунок), да в восьмерке помнится были проблемы с несовместимостью некоторых типов, типа в SQL тип сделали, а в pl/sql еще нет.

К сообщению приложен файл. Размер - 0Kb
26 май 06, 12:09    [2709495]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
хм .. гугл говорит точно аналитические не пащут в восьмерке, получается что plsql пытается проверить синтаксис сам и если ему про аналитические функции не сказали, то он не компилит процедуру. выход спрятать синтаксис во view или через execute immediate, тогда действительно можно миновать проверку синтаксиса plsql движком. всеравно сумневаюсь я, что в восьмерке и 4-ная вложеность не работала ...
26 май 06, 12:33    [2709624]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Guest
Yo.!!
неверю.

"- Все ставки сделаны, поэтому денег в кассе быть не может.
- НЕ ВЕРЮ!
- А я тебя ни х..я и не убеждаю. ЭТО ФАКТ." (с) Snatch, Сп..и в переводе Гоблина.

Йо, ну это же несерьезно.
Мы же с вами не на теологическом форуме, жонглировать схемами из доков не собираемся. Мы же технари и инженеры, поэтому практика для нас - единственный критерий истины. Мало ли чего написал тех.писатель со слов пьяного индуса-разработчика. Поставьте воcьмерку и убедитесь.
26 май 06, 12:34    [2709638]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Guest
автор
гугл говорит точно аналитические не пащут в восьмерке

Опоздал я со своим постом, вы сами уже нашли ответ.
26 май 06, 12:36    [2709654]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2357
2 Yo

именно. экзекут иммедиэйт дернет скл-энжин. иначе -будет использован плскл энжин. а они - разные
26 май 06, 12:42    [2709691]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Guest
что в восьмерке и 4-ная вложеность не работала ...


А это это такое вообще вложенность? Имеется ввиду что такое работать не будет:

SELECT * FROM (
 SELECT * FROM (
  SELECT * FROM (
   SELECT * FROM (
    SELECT * FROM (
     SELECT NULL AS test FROM DUAL
    )
   )
  )
 )
)

"Сумневаюсь я"(c) И.В.Ломоносов
26 май 06, 12:43    [2709692]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
ну да типа такого:
create or replace procedure shit as
x int ;
begin
SELECT test into x FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT NULL AS test FROM DUAL
)
)
)
)
);
15 end;
16 /

Procedure created.

SQL> show errors ;
No errors.
SQL> begin shit; end ;
2 /

PL/SQL procedure successfully completed.

26 май 06, 12:47    [2709720]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2357
Longsvano
Мало ли чего написал тех.писатель со слов пьяного индуса-разработчика. Поставьте воcьмерку и убедитесь.


ссссцуко! ненада про пьяных индусов, а? и так есть дикое желание разбомбить бангалор наккуй как рассадник клинических дебилов :(

зы.кто не верит - пообщайтесь с оракловыми приблудами на джаве :( поубивалбынах...
26 май 06, 12:49    [2709733]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2357
Yo.!!
ну да типа такого:
create or replace procedure shit as
x int ;
begin
SELECT test into x FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT NULL AS test FROM DUAL
)
)
)
)
);
15 end;
16 /

Procedure created.

SQL> show errors ;
No errors.
SQL> begin shit; end ;
2 /

PL/SQL procedure successfully completed.



версия? 8.0.х, 8.1.x,9.2.x?
26 май 06, 12:50    [2709751]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Guest
Yo.!!
ну да типа такого:


Кстати, этот пример может быть вовсе непоказательный. Посмотрите план этого запроса. Оптимизатор спокойно прочухивает, что вложенность для запроса роли не играет. То есть View внутренний (как он там правильно называется не помню) на образуется. А вот если таких вьюшек будет 4 - то фиг знает. Может товарищ и прав.
26 май 06, 12:54    [2709795]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
aZm

версия? 8.0.х, 8.1.x,9.2.x?


у меня меньше 10.1 неосталось баз.

Longsvano
Кстати, этот пример может быть вовсе непоказательный. Посмотрите план этого запроса. Оптимизатор спокойно прочухивает, что вложенность для запроса роли не играет. То есть View внутренний (как он там правильно называется не помню) на образуется. А вот если таких вьюшек будет 4 - то фиг знает. Может товарищ и прав.


пля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции. причем судя по гуглу если процедуру оформить как анонимный блок то аналитеческие запросы в восьмерке пройдут на ура.
26 май 06, 13:05    [2709879]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
хотя нет, не через анонимный, а просто SQL.
26 май 06, 13:07    [2709899]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор
пля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции

И что с того? Пусть это баг SQL Statement Executor-а с вашей схемы. Раз PL/SQL вызывает SQL Statement Executor, то и наследует все его ошибки.
26 май 06, 13:12    [2709943]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
Longsvano

И что с того? Пусть это баг SQL Statement Executor-а с вашей схемы. Раз PL/SQL вызывает SQL Statement Executor, то и наследует все его ошибки.

непонял о чем спор, если это ограничение sql движка то оно не будет работать ни через view ни через sqlplus, если же оптимизатор прочухивает - то проблема лишь как обойти проверку синтасиса plsql (если вдруг plsql не знает про такой синтаксис). а вообще последние проблемы такого рода как я понимаю были в 8рке, т.е. 10 лет назад, чего тормашить субд которая уже отжила свое и несупортится ?
26 май 06, 13:29    [2710064]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2357
Yo не нуна быть таким категоричным :) буквально полгода назад я наблюдал не самый слабый продакшн да 8.1.7.3 :)
26 май 06, 13:34    [2710108]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить