Как стать автором
Обновить
6
0
Алексей Калинин @ank_75

Пользователь

Отправить сообщение

В языке pl_cpl_sql вы можете просто определить cursor с указанными SQL-выражением, а данные из него обработать с помощью оператора for...loop (или open...fetch). А сами конструкции (conn.Query(...), IEnumerable<dynamic> ... или им подобные (из pascal)) при этом будут скрыты внутри интерпретатора. Очевидно, что кода для выполнения действий с данными в языке pl_cpl_sql будет гораздо меньше, чем в C# и питон.

Я пытался повторить синтаксис Oracle PL/SQL, и при этом его улучшить. Что то привнести в него из PL/pgSQL. Сделал безразмерный тип varchar2, добавил тип RECORD, которого не было в Oracle PL/SQL (но был в PL/pgSQL). Добавил работу с JSON. Механизмы конвертации JSON в RECORD и RECORD в JSON. Пакеты для разбора XML и HTML-документов.

Вы, несомненно, правы в отношении питона.

Но и в языке pl_cpl_sql есть тоже свои преимущества.

  • Реализованная на уровне языка поддержка SQL-конструкций. В питоне для этого нужно использовать различные обертки.

  • И сам синтаксис языка, как мне кажется, проще питона. Нет этого обязательного форматирования текста.

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

  • Есть функционал для выполнения http/https-запросов.

  • Есть возможность создавать несколько соединений в одном коде.

  • При выполнении запросов в других БД (Oracle) сам запрос выполняется удаленно, а сюда перекачивается только его результат.

  • Есть возможность разбора xml/html-документов.

Я собрал демо-модуль и выложил его на гитхаб - https://github.com/ank-75/PLSQL_interpreter.

Конечная цель данной работы (статьи) - не изобрести что-то совершенно новое - язык PL/SQL и так по своему хорош для определенных задач. Основная цель - научиться выполнять (интерпретировать) PL/SQL код на клиенте в отрыве от Oracle. Как мне известно, на текущий момент PL/SQL код может выполнятся либо в Базе данных Oracle, либо на клиенте внутри Oracle Forms. В сети открытой детальной информации про то, как это происходит, я не нашел. И по этому решил сделать собственную реализацию интерпретатора. За одно и интерпретируемый язык немного развить (улучшить). А по поводу демо - это хорошая идея. Я подумаю как это можно будет сделать.

Конечная цель данной работы (статьи) не изобрести что-то совершенно новое - язык PL/SQL и так по своему хорош для определенных задач. Основная цель - научиться выполнять (интерпретировать) PL/SQL код на клиенте в отрыве от Oracle. Как мне известно, на текущий момент PL/SQL код может выполнятся либо в Базе данных Oracle, либо на клиенте внутри Oracle Forms. В сети открытой детальной информации про то, как это происходит, я не нашел. И по этому решил сделать собственную реализацию интерпретатора. За одно и интерпретируемый язык немного развить (улучшить). А по поводу демо - это хорошая идея. Я подумаю как это можно будет сделать.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Fullstack Developer, Database Developer
Senior
PostgreSQL
SQL
Database
Oracle
Oracle PL/SQL
Delphi
Database design
Windows Forms
Software development