История изменений
Исправление MichIs, (текущая версия) :
в языке даже не реализованы базовые концепции, которые сейчас де-факто являются стандартными, например, реализация полиморфизма на хранении кусков SQL-запросов в таблицах - это ничерта не полиморфизм.
Карл, в PL/SQL нет полиморфизма? Серьезно, Карл? Я на этом Полиморфизме в PL/SQL для одной организации написал небольшую системку data quality.
Определение: Полиморфизм в языках программирования и теории типов — способность функции обрабатывать данные разных типов
Ну что-же, рассмотрим как это в PL/SQL
create or replace package plsqlpolimorf_pkg
as
function add_two_fnc(p_param in number) return number;
function add_two_fnc(p_param in string) return string;
end plsqlpolimorf_pkg;
/
create or replace package body plsqlpolimorf_pkg
as
function add_two_fnc(p_param in number) return number is
begin
return (p_param + 2);
end add_two_fnc; -- number
function add_two_fnc(p_param in string) return string is
begin
return (to_char(to_number(p_param) + 2));
end add_two_fnc; -- string
end plsqlpolimorf_pkg;
/
select
plsqlpolimorf_pkg.add_two_fnc(2) as num_res,
plsqlpolimorf_pkg.add_two_fnc('3') as string_res
from dual;
Или, Карл, дайте я обратно додумаю за вас - может, вы имели ввиду Динамический SQL?
Есть он в Oracle PL/SQL, и появился раньше чем в других СУБД, еще в том веке, сначала в виде пакета dbms_sql, а затем в виде оператора EXECUTE IMMEDIATE ‘SQL_CLAUSE’ и ничего ни в каких таблицах «куски SQL» хранить не надо, если я вас правильно понял, а то, может быть, у нас с вами разговор слепого с глухим…
Но использовать динамический SQL широко не рекомендуется - теряется преимущество предварительно компиляции, составление плана SQL-запроса, увеличивается вероятность непроверенных на этапе компиляции ошибок зависимостей и логики. Ухудшается понимание кода другими разработчиками и т.д.
Вы читали Дзен от создателя Pythona. Там есть одно хорошее правило - «Простое лучше Сложного». Я руководствуюсь им.
Если вы имели не то, о чем я написал - уточните.
Исправление MichIs, :
в языке даже не реализованы базовые концепции, которые сейчас де-факто являются стандартными, например, реализация полиморфизма на хранении кусков SQL-запросов в таблицах - это ничерта не полиморфизм.
Карл, в PL/SQL нет полиморфизма? Серьезно, Карл? Я на этом Полиморфизме в PL/SQL для одной организации написал небольшую системку data quality.
Определение: Полиморфизм в языках программирования и теории типов — способность функции обрабатывать данные разных типов
Ну что-же, рассмотрим как это в PL/SQL
create or replace package plsqlpolimorf_pkg
as
function add_two_fnc(p_param in number) return number;
function add_two_fnc(p_param in string) return string;
end plsqlpolimorf_pkg;
/
create or replace package body plsqlpolimorf_pkg
as
function add_two_fnc(p_param in number) return number is
begin
return (p_param + 2);
end add_two_fnc; -- number
function add_two_fnc(p_param in string) return string is
begin
return (to_char(to_number(p_param) + 2));
end add_two_fnc; -- string
end plsqlpolimorf_pkg;
/
select
plsqlpolimorf_pkg.add_two_fnc(2) as num_res,
plsqlpolimorf_pkg.add_two_fnc('3') as string_res
from dual;
Или, Карл, дайте я обратно додумаю за вас - может, вы имели ввиду Динамический SQL?
Есть он в Oracle PL/SQL, и появился раньше чем в других СУБД, еще в том веке, сначала в виде пакета dbms_sql, а затем в виде оператора EXECUTE IMMEDIATE ‘SQL_CLAUSE’ …
Но использовать динамический SQL широко не рекомендуется - теряется преимущество предварительно компиляции, составление плана SQL-запроса, увеличивается вероятность непроверенных на этапе компиляции ошибок зависимостей и логики. Ухудшается понимание кода другими разработчиками и т.д.
Вы читали Дзен от создателя Pythona. Там есть одно хорошее правило - «Простое лучше Сложного». Я руководствуюсь им.
Если вы имели не то, о чем я написал - уточните.
Исходная версия MichIs, :
в языке даже не реализованы базовые концепции, которые сейчас де-факто являются стандартными, например, реализация полиморфизма на хранении кусков SQL-запросов в таблицах - это ничерта не полиморфизм.
Карл, в PL/SQL нет полиморфизма? Серьезно, Карл? Я на этом Полиморфизме в PL/SQL для одной организации написал небольшую системку data quality.
Определение: Полиморфизм в языках программирования и теории типов — способность функции обрабатывать данные разных типов
Ну что-же, рассмотрим как это в PL/SQL
create or replace package plsqlpolimorf_pkg
as
function add_two_fnc(p_param in number) return number;
function add_two_fnc(p_param in string) return string;
end plsqlpolimorf_pkg;
/
create or replace package body plsqlpolimorf_pkg
as
function add_two_fnc(p_param in number) return number is
begin
return (p_param + 2);
end add_two_fnc; -- number
function add_two_fnc(p_param in string) return string is
begin
return (to_char(to_number(p_param) + 2));
end add_two_fnc; -- string
end plsqlpolimorf_pkg;
/
select
plsqlpolimorf_pkg.add_two_fnc(2) as num_res,
plsqlpolimorf_pkg.add_two_fnc('3') as string_res
from dual;
Или, Карл, дайте я обратно додумаю за вас - может, вы имели ввиду Динамический SQL?
Есть он в Oracle PL/SQL, и появился раньше чем в других СУБД, еще в том веке, сначала в виде пакета dbms_sql, а затем в виде оператора EXECUTE IMMEDIATE ‘SQL_CLAUSE’ RETURNING INTO var…
Но использовать динамический SQL широко не рекомендуется - теряется преимущество предварительно компиляции, составление плана SQL-запроса, увеличивается вероятность непроверенных на этапе компиляции ошибок зависимостей и логики. Ухудшается понимание кода другими разработчиками и т.д.
Вы читали Дзен от создателя Pythona. Там есть одно хорошее правило - «Простое лучше Сложного». Я руководствуюсь им.
Если вы имели не то, о чем я написал - уточните.