LINUX.ORG.RU

История изменений

Исправление 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. Там есть одно хорошее правило - «Простое лучше Сложного». Я руководствуюсь им.

Если вы имели не то, о чем я написал - уточните.