powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем отличаеться T-SQL от PL/SQL?
25 сообщений из 190, страница 4 из 8
Чем отличаеться T-SQL от PL/SQL?
    #36227336
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Где вываливается название таблицы? Я же просил показать Вас весь скрипт и весь его вывод.
я ответил, что в моем ответе не понятно ? вы потратили хотя бы 5 минут на изучение своего же скрипта ?
в вывод скрипта попадает даже такие процедуры:
CREATE procedure [dbo].[t2]
as
insert into dbo.a values (15,'shit');

сделайте процедуру в которой фигурирует table.col1 и вторую где фигурирует table.col2 и увидите что что в вывод скрипта попадают обе процедуры, не зависимо col1 или col2 сейчас называется колонка.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227361
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
barrabas...зависимые объекты скидывать в инвалиды как оракл и не компилить(давать выполнять) пока не исправишь.
Кстати у кого кроме оракла еще статусы есть? у посгриса точно не было.В DB2 есть. Очень удивлен, что их нет у остальных.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227362
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!я ответил, что в моем ответе не понятно ? вы потратили хотя бы 5 минут на изучение своего же скрипта ?
в вывод скрипта попадает даже такие процедуры:
CREATE procedure [dbo].[t2]
as
insert into dbo.a values (15,'shit');

Да ничего не было понятно в Вашем скрипте. Зачем то анализ @@error воткнули, и sp_rename каких-то неведомых таблиц.

Yo.!сделайте процедуру в которой фигурирует table.col1 и вторую где фигурирует table.col2 и увидите что что в вывод скрипта попадают обе процедуры, не зависимо col1 или col2 сейчас называется колонка.

Ну раз Вы это уже проделали, то, черт возьми, почему я у Вас этот скрипт выдираю с таким трудом?!
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227405
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Да ничего не было понятно в Вашем скрипте. Зачем то анализ @@error воткнули, и sp_rename каких-то неведомых таблиц.
интересный ход, скрипт уже мой.
зачем я внес @@error я объяснил один раз, требуется еще раз ? таблицы, чего полезного вам даст структура неведомых таблиц, чего не видно из предоставленого скрипта и его вывода ?

pkarklin
Ну раз Вы это уже проделали, то, черт возьми, почему я у Вас этот скрипт выдираю с таким трудом?!
потому как благодоря эргономичному гуи менеджмент студии мне совершенно не улыбается еще пол дня все переименовывать назад и восстанавливать скрипты по памяти. был бы оракл я бы уже вывалил листинг с терминала, а тут все занового ?

ну и по делу, обычное увеличение размерности поля приводит к ролбэку, т.е. на
alter table a alter column myname varchar(50)
скрипт ошибочно выдает:
Msg 3930, Level 16, State 1, Line 26
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
Msg 3998, Level 16, State 1, Line 1
Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227409
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!скрипт ошибочно выдает:
Msg 3930, Level 16, State 1, Line 26
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
Msg 3998, Level 16, State 1, Line 1
Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.

Вы проверку то @@error убрали, ибо она ТАМ всегда будет 0, вот Вы и коммитите, что нельзя впринципе коммитеть.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227455
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Вы проверку то @@error убрали, ибо она ТАМ всегда будет 0, вот Вы и коммитите, что нельзя впринципе коммитеть.
убрал, алтер ошибочно ролбечится в вывод попадает список всех процедур в которых фигурирует таблица a, все процедуры "прямые".
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227634
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!значит перед накаткой патча в других редакциях будут делать бэкап.

Удобный подход. а главное - универсальный
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227736
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
Удобный подход. а главное - универсальный
он правильный, конечно не так удобно как флашбэк базы, ну уж точно поудобней гаданий "прокатит/не прокатит" в мсскл.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36227779
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!locky
Удобный подход. а главное - универсальный
он правильный, конечно не так удобно как флашбэк базы, ну уж точно поудобней гаданий "прокатит/не прокатит" в мсскл.
ну, в 2008 то можно проверить :)
Лично я могу проверить и на 2005, но это не благословленно майкрософтом :)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36270894
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пофлудим немного. ;)
Зато по теме.

С точки зрения синтаксиса - PL несомненно богаче.
НО!
На самом деле, большинство "уникальных" фичей обоих продуктов (PL/SQL нельзя рассматривать в отрыве от Oracle, как и T-SQL без MSSQL) с точки зрения другого языка выглядят либо как ненужные, либо, как неумелая попытка реализовать то, что в другом прекрасно работает изначально.

Основная разница в том, что в TSQL основой остаются SQL-запросы и весь код TSQL выполняется непосредственно под управлением движка СУБД, в то время как PL/SQL - это программы, полноценно скомпилированные вплоть до команд процессора и неким образом взаимодействующие с СУБД.

Поэтому и заходит спор по поводу невалидности объектов - в T-SQL лично я практически не сталкивался с такой проблемой, в наших решениях на MSSQL совершенно нормально применение конструкции:
Код: plaintext
1.
2.
3.
4.
5.
if object_id('SomeTable') is not null
begin
    select @SomeValue = Value
    fom SomeTable
    where SomeField = @SomaVar
end
Смысл в том, что если в базе присутствует некая таблица, то пользуемся ей, если не присутствует - и не надо.
В PL/SQL такую логику в рамках одной процедуры реализовать просто невозможно (если не пользоваться динамикой, конечно).
Ну и такая вещь, как рекомпиляция отдельных запросов в процедре для PL/SQL недоступна. (Хотя соглашусь, что это не ахти какое критичное достоинство, но есть системы, для которых такое актуально).

Из действительно важных лично мне различий - в PL/SQL (по крайнем мере в 10-ке) нельзя в триггере выяснить, для какого набора данных был вызван триггер.
То, что в Oracle есть построчные триггера - это конечно здорово, (и совсем хорошо, что Оракл не тормозит из-за построчной обработки) но то, что нельзя выяснить, какие строки обновились запросом, поднявшим триггер ограничивает уже принятие архитектурных решений.

В любом случае, длятого, чтобы выбрать между этими языками нужно опять же хорошо знать не столько языкаи, сколько сами СУБД.
А решение все равно принимать будет начальник в зависимости от того, какой из фирм была оплачена последняя прочитанния им статья про СУБД в каком-нибудь Вестнике CIO или "Компьютерре". ;)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36270980
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeColo®es
Из действительно важных лично мне различий - в PL/SQL (по крайнем мере в 10-ке) нельзя в триггере выяснить, для какого набора данных был вызван триггер.
То, что в Oracle есть построчные триггера - это конечно здорово, (и совсем хорошо, что Оракл не тормозит из-за построчной обработки) но то, что нельзя выяснить, какие строки обновились запросом, поднявшим триггер ограничивает уже принятие архитектурных решений.


Воистину, специалист подобен флюсу (с) Козьма Прутков
Кстати, PL/SQL далеко не всегда компилируется до команд процессора.
Я бы даже сказал, в исключительно редких случаях
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36305928
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeColo®es
Основная разница в том, что в TSQL основой остаются SQL-запросы и весь код TSQL выполняется непосредственно под управлением движка СУБД, в то время как PL/SQL - это программы, полноценно скомпилированные вплоть до команд процессора и неким образом взаимодействующие с СУБД.


брр. в оракле есть 2 энжина - sql и plsql. а то, что вы говорите - это уже внешние процедуры, вызываемые базой, разве нет ;)?

DeColo®es
То, что в Oracle есть построчные триггера - это конечно здорово, (и совсем хорошо, что Оракл не тормозит из-за построчной обработки) но то, что нельзя выяснить, какие строки обновились запросом, поднявшим триггер ограничивает уже принятие архитектурных решений.


вы с методой обхода мутаций знакомы? она как раз отлично позволяет при помощи пакета, содержащего переменную типа коллекция и еще одного тригера after уровня стейтмент получить список заафекченных в рамках операции строк.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36307896
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aZmDeColo®es
Основная разница в том, что в TSQL основой остаются SQL-запросы и весь код TSQL выполняется непосредственно под управлением движка СУБД, в то время как PL/SQL - это программы, полноценно скомпилированные вплоть до команд процессора и неким образом взаимодействующие с СУБД.
брр. в оракле есть 2 энжина - sql и plsql. а то, что вы говорите - это уже внешние процедуры, вызываемые базой, разве нет ;)?
О том и речь, что PL/SQL это уже не совсем Oracle DB, а некая (пусть и очень плотно) пристроку к нему. ;)

aZmвы с методой обхода мутаций знакомы? она как раз отлично позволяет при помощи пакета, содержащего переменную типа коллекция и еще одного тригера after уровня стейтмент получить список заафекченных в рамках операции строк.С технолонией не знаком.
Но дополнительный триггер - это очередная подпорка, а так хочется уже обходиться без них и в Oracle и в MSSQL.

А ответ на исходный вопрос очень простой: PL/SQL отличается от T-SQL тем, что первый позволяет писать код для баз данных, работающих под управлением Oracle, второй - делать практически то де самое для баз под управлением MSSQL.
Эффективность применения обоих зависит исключительно от квалификации применияющего.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36307916
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeColo®es
Эффективность применения обоих зависит исключительно от квалификации применияющего.
ну да, давай. примени мне эффективно t-sql для логирования любых попыток изменить поле (в том числе и rollbackчных) или сквозной нумерации нескольких таблиц с документами или передачи массива с клиента в сторед процедуру
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308063
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!DeColo®es
Эффективность применения обоих зависит исключительно от квалификации применияющего.
ну да, давай. примени мне эффективно t-sql для логирования любых попыток изменить поле (в том числе и rollbackчных) или сквозной нумерации нескольких таблиц с документамиНе вопрос.
Решение для нумерации тут . SEQUENCE можно задавать динамически, без необходимости делать create:
Код: plaintext
select G$Test.NextValue('DocNum'+convert(varchar( 4 ), year(getdate())))

Аналогично делается и любая другая "внетранзакционная" работа.

Если что-то нужно перенести "через" rollback - есть табличные переменные, rollback к ним не применяется.

А вообше задача "логировать попытки изменить поле, если произошел rollback" мне не очень понятна.
Бизнес , (который заказывает и оплачивает разработку) не просил такого ни разу. По крайней мере, у меня.
Хотелки аналитиков, которым в ТЗ больше написать нечего и фантазии разработчиков - не в счет.

В принципе, у меня в проекте запланирована такая доработка - "запись информационных сообщений вне транзакции"....
Да вот опять же - пока не просят. Попросят - дня за 2 будет написана и оттестирована соответствующая функция.

Yo.!или передачи массива с клиента в сторед процедуру Одного параметра типа XML пока вполне хватает.

PS И давайте не будем устраивать очередной холивар. Скучно.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308080
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeColo®es
PS И давайте не будем устраивать очередной холивар.
ваши "решения" столь простеньких задачек на столько красиво продемонстрировали, что эффективность решения во многом зависит и от инструмента, что собственно холивар тут абсолютно лишний...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308453
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!ваши "решения" столь простеньких задачекНе путайте бизнес-задачу и то, какими инструментами она решается в конкретной СУБД.
Я не занимаюсь программированием ради программирования - это удел периода олбучения в школе и институте. Жизнь не ставит задачи "внетранзакционного логирования".
Жизнь ставит задачу "шоб усё работало, срок - вчера".
Есть в Оракле изолированные транзакции на уровне синтаксиса PL/SQL - очень рад за него.
Нет изолированных транзакций в какой-то другой СУБД - значит это не самая актуальная проблема эксплуатации такой системы. Проблемы возникают в основном тогда, когда разработчик, привыкший к одной платформе, начинает разрабатывать что-то на другой, не меняя привычную для себя методологию.
Те задачи (например, какая-нибудь хитрая обработка массива данных), для которых в PL/SQL нормальный программист будет пользоваться технологией курсоров, на T-SQL решаются при помощи таблиц и табличных переменных.
В случае, если код "адекватен платформе", оба решения будут и "красивыми" и быстрыми.
Но если попробовать переписать решение PL/SQL на T-SQL "в лоб", считая "задачей" именно использование курсора, а не получение бизнес-результата, разработчика ждет мягко говоря, разочарование.

PS Если вы сможете посмотреть за пределы своей фанатичной и безответной любви к Oracle, вы увидите, что самая хорошая система для России - это не Oracle и не MSSQL и даже не Cache (в котором и блокировок-то человеческих нет, а некоторые решения на его базе продают аж по $1500 за рабочее место) а всеми "правильными" программистами нелюбимый 1С.

Потому, что большинство реальных задач более-менее успешно автоматизируется при помощи решений и алгоритмов, написанных разработчиками 1С и/или на платформе 1С.

А уж что они в качестве хранилища используют и насколько их решения "правильны" с точки зрения абстрактного программиста - никого из бизнеса не волнует.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308944
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 DeColo®es, браво!

при том, что я работал и с навиком и с сапом и успешно внедрял джидиэдвардс, абсолютно согласен с Вами, для нашей страны 1С - это самое то, что надо

а для 1С нормальное хранилище - это MSSQL...оракл только с грядущей версии появится и то я рискну пересесть на него не раньше чем через год и не факт что вообще перейду
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308972
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeColo?esЖизнь не ставит задачи "внетранзакционного логирования".
Жизнь ставит задачу "шоб усё работало, срок - вчера".

Мне вот, например, жизнь ставит задачу "транзакционного логгирования".
Причём включая случаи когда изменяется значение первичного ключа записи.
Как мне решить эту задачу в T-SQL, не впадая в ошибку "запись удалили, а
потом добавили совсем другую"?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308976
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_bob2 DeColo®es, браво!

при том, что я работал и с навиком и с сапом и успешно внедрял джидиэдвардс, абсолютно согласен с Вами, для нашей страны 1С - это самое то, что надо

а для 1С нормальное хранилище - это MSSQL...оракл только с грядущей версии появится и то я рискну пересесть на него не раньше чем через год и не факт что вообще перейду
Они на postgresql перейти нормально не могут.
Если они и там будут полностью блокировать таблицы и писать кривые выборки
сомневаюсь что оно будет быстрее чем на MSSQL.
А вот, к примеру, ежли они связываемые переменные "забудут", это будет вообще эталон
тормозов.
Хотя, может , у заказчиков полно денег и им десяток серверов нефиг делать купить.
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36308995
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
DeColo?esЖизнь не ставит задачи "внетранзакционного логирования".
Жизнь ставит задачу "шоб усё работало, срок - вчера".

Мне вот, например, жизнь ставит задачу "транзакционного логгирования".
Причём включая случаи когда изменяется значение первичного ключа записи.
Как мне решить эту задачу в T-SQL, не впадая в ошибку "запись удалили, а
потом добавили совсем другую"?

а там (в M$SQL) первичный ключ(автоинкрементный) стало можно менять?
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309018
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕНа там (в M$SQL) первичный ключ(автоинкрементный) стало можно менять?
дык ужо лет 10 как можно, даже особо не напрягаясь.. :-)
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309028
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕН
а там (в M$SQL) первичный ключ(автоинкрементный) стало можно менять?

А там первичные ключи можно делать только на автоинкрементные поля?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309101
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeColo®es
В случае, если код "адекватен платформе", оба решения будут и "красивыми" и быстрыми.

не флейма не получится, если вы на полном серьезе считаете воркэраунд с xml красивым и что самое примечательное быстрым, то мне парировать нечем.

по 1с - я тоже так когда-то думал. приходится мне иметь дело с crm на основе 1с 8.1, ни я ни бизнес не довольны. бизнес не доволен, что в BI не может вытянуть актуальные данные - доступ то там через oledb, а я и с пол литрами его не осилил. пользователи стонут от интерфейса - мало того, что через RPD, так чтоб телефончик у клиента поменять нужно 8 экранов открыть/закрыть. прайсы на подпиливание процессов тоже были вполне ощутимые. в результате промучившись год именно бизнес созрел выкидывать эту хрень на свалку истории ...
...
Рейтинг: 0 / 0
Чем отличаеться T-SQL от PL/SQL?
    #36309356
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!DeColo®es
В случае, если код "адекватен платформе", оба решения будут и "красивыми" и быстрыми.

не флейма не получится, если вы на полном серьезе считаете воркэраунд с xml красивым и что самое примечательное быстрым, то мне парировать нечем.
по сравнению с циклами по оракловским массивам воркэраунд с xml вполне можно назвать красивым
...
Рейтинг: 0 / 0
25 сообщений из 190, страница 4 из 8
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем отличаеться T-SQL от PL/SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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