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

Откуда: Москва
Сообщений: 1276
Longsvano
автор
Назовите, пожалуйста, хоть один паскаль-подобный язык, в котором вызов функции без параметров обязан быть со скобками.


Вот сишник справа ручается что в Сях нельзя вызывать функцию без скобок. И даже это демонстрикуем с удовольствием. Компилятор - какойто от Борланда.

Прошу прощения что вмешиваюсь в высоконаучный спор. Но хотелось бы ознакомиться с суждением, как же отличить в двух случаях: 1)
func и 2) func() взятие указателя на функцию и результат вызова функции?

От себя: использование скобок в случае вызова и просто имени при взятии адреса намного более читабельное соглашение чем неиспользование скобок в случае вызова и приписывание собачек-крышечек при взятии адреса.
26 сен 06, 17:00    [3186434]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67509
Блог
Longsvano
В данном случае - неважно. Оба процедурные, значит теоретически подходы более менее одинаковые.

А... Тогда я с любопытством погляжу на Ваше знакомство с R-LISP. Он тоже процедурный.

Longsvano
И наконец, поставьте себе среду с подстветкой парных скобок.

Это позволит избавиться от идиотизмов вида if (a==b) ?
26 сен 06, 17:08    [3186502]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Longsvano
автор
А Си уже стал паскаль-подобным языком? Надо обрадовать старикашку Ника....


В данном случае - неважно. Оба процедурные, значит теоретически подходы более менее одинаковые.

А сишник - правильно ручается, нельзя. Это еще терпимо, хотя криво и вызвано только плохо продуманным синтаксисом, а вот необходимость указывать скобки в if, while, catch просто бесит.


Ну знаете, зоопарк BEGIN - END-ов не лучше {} для тех кто после Си читает PL/SQL. А уж FOR без степа с MOD-ом или TRIM( BOTH FROM ).

И наконец, поставьте себе среду с подстветкой парных скобок. Вон у лиспофилов все в скобках, однако не жужжат.


Бэйсик и фортран тоже процедурные языки. Но подход к программированию на них как-то уж очень отличается от паскалевского. А java - С-подобный, и тоже отличается от "классики".

Если надо просто побрюзжать в Вашем стиле, то меня бесят * и для умножения, и для указателей. Давайте уж используем разные символы. То же и для & - разный смысл в разных контекстах.

Что касается begin / end, то их в pl/sql только одна пара на блок. То же самое для всех "пост-паскалевских" языков: ада, модула-2/3, оберон...
26 сен 06, 17:11    [3186539]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
ЛП
Guest
Longsvano
Ну знаете, зоопарк BEGIN - END-ов не лучше {} для тех кто после Си читает PL/SQL.

Ну да, а мумпсисты считают, что вот такое вот:
n ea,ez
s ea="" f s ea=$$O^%cpad("A",3,"London",ea) q:ea="" d
.s ez="" f s ez=$$OC^%cpadc("A","Z",1,ea,ez) q:ez="" i
$$G^%cpgd("Z",ez,2,"",1)>19981231 d U^%cpuh("Z",ez,2,19990101)
.q
q
гораздо лучше (и понятнее) чем SQL

Можно еще Perl-овые перлы в пример привести.

Уж лучше с бегин-ендами, чем со всем этим фигурно-скобчатым скотоложеством.
26 сен 06, 17:14    [3186565]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67509
Блог
AI
А java - С-подобный

Кстати, не назвал бы. Не больше чем ABIBAS является ADIDAS-подобным :)
26 сен 06, 17:29    [3186649]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Longsvano
Member

Откуда:
Сообщений: 51
Софтварер, снимаю шляпу перед ваши багажом знаний.

Возможно в нем есть место и ответу на следующий вопрос:
Вот допустим не устраивает меня PL/SQL для моей предметной области: cлишком громоздким он кажется ну или еще чтото подобное, не важно. Так же как и С+OCI является монстром по сравнению с PL/SQL.
Есть у меня например задача написать обвязку поверх PL/SQL например наподобие Языка 1С. То есть мой транслятор переводит код Языка в PL/SQL он же далее компилится ораклом в свой байткод. Скажите, это как-то реализуется? куда копать? чего почитать? И реализуется ли оно вообще вокруг PL/SQL или я спрашиваю очередное извращение? Или только через С+OCI,
(Понятно, что непонятно как отслеживать рантайм-ошибки при этом да и на этапе компиляции тоже непонятно, но пока это не важно. Посто нужен вектор куда и на что смотреть.)
26 сен 06, 18:11    [3186892]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Yo.!!
Guest
нафига изобретать велосипед ? не проще взять какойнибудь готовый недоязык для жава и пройтись напильником, вот тут какие-то есть: http://www.javaworld.com/javaworld/jw-03-2005/jw-0314-scripting.html
а java в оракле встроена в субд.
26 сен 06, 18:25    [3186936]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67509
Блог
Longsvano

Признаться, не совсем понял вопрос.

Если говорить о том "как написать компилятор", то классическая работа на эту тему - так называемая Книга дракона. Для решения названной задачи ее безусловно хватит и с избытком.

С точки зрения проектирования здесь возникнет достаточное количество интересных вопросов. Но альтернатива "PL/SQL или C+OCI", признаться, несколько выбивает меня из колеи, я просто не понимаю, в каком контексте она может возникнуть. Скажем так, обвязку можно написать и над PL/SQL, и над java, которая также может работать в Oracle, и над клиентской программой на любом языке, и над Си, который затем можно компилить в UDF, если пользоваться традиционной терминологией.....

В любом случае, наиболее интересный здесь, да и наиболее практичный вопрос - самый верхний уровень проектирования решения: каким оно должно быть внешне, чтобы его вообще стоило делать. После этого можно подобрать подходящую реализацию.
26 сен 06, 18:32    [3186970]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор
Но альтернатива "PL/SQL или C+OCI"

Нет. Задача писать на какомто своем, наиболее приближенном к предметной области языке под Оракл. Вопрос в том, как это наиболее правильно организовать.
26 сен 06, 18:48    [3187012]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67509
Блог
Вслепую я бы назвал правильным следующее решение. Во-первых, спроектировать адекватное задаче API. Во-вторых, сделать его на Java либо обвязку к нему на Java. Если сильно зудит 1C, то можно называть классы-методы по-русски. Наконец, автоматизировать deploy достаточно, чтобы разработчик об этом не задумывался. Думаю, на этом бы и остановился.
26 сен 06, 18:59    [3187052]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19925
softwarer
Вслепую я бы назвал правильным следующее решение.

Вообще у меня на эту тему немного нетехнический вопрос.
Ну вот придумали мы некий язык, java- или 1С- подобный.
И даже сделали препроцессоры для всех модулей (СУБД, APPServer, MQSeries, наконец, C/Java для standalone-задач...).
И даже все это отладили.
Кто же будет на этом писать?
ИМХО с персоналом будут определенные проблемы.
26 сен 06, 19:16    [3187085]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
Ну я написал как-то "компилятор" на PL/SQL, который создаёт хранимые процедуры (естественно на PL/SQL же). Зечем? Пользователь задаёт какую-то бизнес-логику в GUI и я по ней генерю набор процедур. Их потом можно объединять в цепочки для последовательного или параллельного исполнения. Весь запуск - через DBMS_JOB.

Пример: вытаскиваем все аккаунты, что в статусе "задолжал за месяц", если долг меньше $100 - подождем еще месяц, иначе отсылаем координаты должника мафии для разборок.

А к чему был вопрос-то?

--
Антон
Per rectum ad astrum
26 сен 06, 20:53    [3187279]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67509
Блог
andrey_anonymous
Кто же будет на этом писать?
ИМХО с персоналом будут определенные проблемы.

Скажем так, все проблемы решаемы, но не все проблемы стоит решать. Я так или иначе сталкивался с уймой проектов на тему "а вот мы напишем свой язык", и по моим оценкам около 100% из них имели под собой основную побудительную причину "иначе программерам скучно жить". Зато потом - весело, в духе https://www.sql.ru/forum/actualthread.aspx?tid=343049#3188264
27 сен 06, 10:41    [3188653]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
wildCroissant
Member

Откуда:
Сообщений: 1
все обсуждение полная белиберда, таких программистов которые стараются использовать одно и тоже имя на все случаи жизни надо увольнять без выходного пособия.....когда вижу такое убить хочется.
30 сен 09, 09:59    [7723171]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
Я не большой знаток mssql, но явным плюсом пл/скл перед тскл - пакеты (со своими "статическими" переменными) и инвалидность объектов.
Скажем как в mssql поведет себя процедура которая вставляет данные в таблицу, но таблицу переименовали, а процедуру не поправили, в смысле она запустится, чтото сделает пока не дайдет до блока с переименованной таблицей или сразу при вызове крикнет что ошибка?
30 сен 09, 11:55    [7723813]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54819

barrabas

Скажем как в mssql поведет себя процедура которая вставляет данные в
таблицу, но таблицу переименовали

Сервер, который позволяет переименовать таблицу, у которой есть
зависимости иначе как "странным" не назовёшь.

Posted via ActualForum NNTP Server 1.4

30 сен 09, 13:13    [7724361]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Dimitry Sibiryakov

barrabas

Скажем как в mssql поведет себя процедура которая вставляет данные в
таблицу, но таблицу переименовали

Сервер, который позволяет переименовать таблицу, у которой есть
зависимости иначе как "странным" не назовёшь.
А он таки позволяет!
Больше скажу, позволяет создавать ХП со ссылками на несуществующие к моменту компиляции таблицы.
30 сен 09, 13:14    [7724377]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54819

Senya_L

Больше скажу, позволяет создавать ХП со ссылками на несуществующие к
моменту компиляции таблицы.

Больше скажу: он позволяет создать триггер с единственным словом "ХРЕН"
внутри и уволиться, а пользователи попробовавшие через через полгода
что-нибудь в этой таблице изменить, будут страшно материться.

Posted via ActualForum NNTP Server 1.4

30 сен 09, 13:32    [7724508]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Yo.!
Guest
Баян. ничерта мсскл не отслеживает.
https://www.sql.ru/forum/actualthread.aspx?bid=10&tid=488306&pg=10#4879780
30 сен 09, 13:35    [7724541]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
Dimitry Sibiryakov

barrabas

Скажем как в mssql поведет себя процедура которая вставляет данные в
таблицу, но таблицу переименовали

Сервер, который позволяет переименовать таблицу, у которой есть
зависимости иначе как "странным" не назовёшь.

, перед переименование дропать всё пакеты где используется таблица?
Как раз давать переименовывать/дропать можно и нужно, а вот зависимые объекты скидывать в инвалиды как оракл и не компилить(давать выполнять) пока не исправишь.
Кстати у кого кроме оракла еще статусы есть? у посгриса точно не было.
30 сен 09, 13:53    [7724676]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
Баян. ничерта мсскл не отслеживает.
https://www.sql.ru/forum/actualthread.aspx?bid=10&tid=488306&pg=10#4879780


Устаревший линк:

USE AdventureWorks;
GO
CREATE VIEW Production.ApprovedDocuments
AS
    SELECT Title, ChangeNumber, Status
    FROM Production.Document
    WHERE Status = 2;
GO
SELECT referenced_schema_name AS schema_name
    ,referenced_entity_name AS table_name
    ,referenced_minor_name AS referenced_column
FROM sys.dm_sql_referenced_entities ('Production.ApprovedDocuments', 'OBJECT');
GO
EXEC sp_rename 'Production.Document.ChangeNumber', 'TrackingNumber', 'COLUMN';
GO
SELECT referenced_schema_name AS schema_name
    ,referenced_entity_name AS table_name
    ,referenced_minor_name AS referenced_column
FROM sys.dm_sql_referenced_entities ('Production.ApprovedDocuments', 'OBJECT');
GO

Msg 207, Level 16, State 1, Procedure ApprovedDocuments, Line 3
Invalid column name 'ChangeNumber'.
Msg 2020, Level 16, State 1, Line 1
The dependencies reported for entity "Production.ApprovedDocuments" do not include references to
columns. This is either because the entity references an object that does not exist or because of an
error in one or more statements in the entity. Before rerunning the query, ensure that there are no
errors in the entity and that all objects referenced by the entity exist.

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) 
Mar 29 2009 10:27:29
Copyright (c) 1988-2008 Microsoft Corporation
Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
30 сен 09, 16:01    [7725539]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
hvlad
Member

Откуда:
Сообщений: 11564
pkarklin,

Про WITH SCHEMA_BINDING я в курсе. Но...

pkarklin

CREATE VIEW Production.ApprovedDocuments

Msg 207, Level 16, State 1, Procedure ApprovedDocuments, Line 3
Invalid column name 'ChangeNumber'.

MS не научился правильно определять тип объекта ? :)

Я не понял в примере (он, кстати, отсюда, нехорошо цитировать без указания источника) - какой именно statement возвращает указанные ошибки ?
30 сен 09, 16:28    [7725744]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
Yo.!
Guest
че-то не вьехал зачем было селектить из некого sys.dm_sql_referenced_entities когда того же результата можно было бы добится сделав селект из вью.
в том разговоре мы вроде как обсуждали не способность сторед процедур отследить зависимости. вроде там же согласились, что набор костылей в мсскл расширился за последнее время но полноценного инструмента все еще нет.
30 сен 09, 16:42    [7725893]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Yo.!
че-то не вьехал зачем было селектить из некого sys.dm_sql_referenced_entities когда того же результата можно было бы добится сделав селект из вью.

А НЕ такого-же? т.е. убедится в том, что таки да, всё валидно?

Yo.!

в том разговоре мы вроде как обсуждали не способность сторед процедур отследить зависимости. вроде там же согласились, что набор костылей в мсскл расширился за последнее время но полноценного инструмента все еще нет.

У каждого свои костыли. У МС - свои, у орацла - свои.
30 сен 09, 16:51    [7725970]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличаеться T-SQL от PL/SQL?  [new]
pkarklin
Member

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

Про WITH SCHEMA_BINDING я в курсе. Но...

pkarklin

CREATE VIEW Production.ApprovedDocuments

Msg 207, Level 16, State 1, Procedure ApprovedDocuments, Line 3
Invalid column name 'ChangeNumber'.

MS не научился правильно определять тип объекта ? :)

Я не понял в примере (он, кстати, отсюда, нехорошо цитировать без указания источника) - какой именно statement возвращает указанные ошибки ?


Тут нет привязки к схеме. На счет типа объкта слив засчитаню ;) Пример из BOL. Не посчтитал необходимым указывать источник. Учту на будущее. Возвращает указанные ошибки запрос к динамической вьюхе sys.dm_sql_referenced_entities.
30 сен 09, 16:52    [7725977]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6 7 8   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить