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