Комментарии 11
А какие преимущества по сравнению с существующим решением ?
Преимущества в том, что весь функционал реализован внутри одного языка, а не разбросан по разным расширениям.
Есть функционал для выполнения http/https-запросов.
Есть возможность создавать несколько соединений в одном коде.
При выполнении запросов в других БД (Oracle) сам запрос выполняется удаленно, а сюда перекачивается только его результат.
Есть возможность разбора xml/html-документов.
Возьмите питон. Там есть все это плюс прорва другого плюс сразу плюс штатно.
Вы, несомненно, правы в отношении питона.
Но и в языке pl_cpl_sql есть тоже свои преимущества.
Реализованная на уровне языка поддержка SQL-конструкций. В питоне для этого нужно использовать различные обертки.
И сам синтаксис языка, как мне кажется, проще питона. Нет этого обязательного форматирования текста.
Не скажу за питон, но в C# с Dapper вся обертка будет выклядеть как conn.Query("select...")
. На выходе получим либо IEnumerable<dynamic>
, либо IEnumerable<T>
, где T класс, с полями из запроса.
В языке pl_cpl_sql вы можете просто определить cursor с указанными SQL-выражением, а данные из него обработать с помощью оператора for...loop (или open...fetch). А сами конструкции (conn.Query(...), IEnumerable<dynamic> ... или им подобные (из pascal)) при этом будут скрыты внутри интерпретатора. Очевидно, что кода для выполнения действий с данными в языке pl_cpl_sql будет гораздо меньше, чем в C# и питон.
а есть исходники самого интерпретатора? (lib_date_util.so
и lib_date_util.so
)
Спасибо, что прошли весь путь! Была мысль добавить простенький язычок... Теперь вижу: как это сделать.
А почему только похож на Oracle PL/SQL? Если бы максимально соотвествовал, то это было бы куда интереснее и востребованнее.
Я пытался повторить синтаксис Oracle PL/SQL, и при этом его улучшить. Что то привнести в него из PL/pgSQL. Сделал безразмерный тип varchar2, добавил тип RECORD, которого не было в Oracle PL/SQL (но был в PL/pgSQL). Добавил работу с JSON. Механизмы конвертации JSON в RECORD и RECORD в JSON. Пакеты для разбора XML и HTML-документов.
Интерпретатор PL/SQL. Добавление в PostgreSQL нового языка программирования