Интерфейс в любой SQL PL; независимые от таблицы функции CUD

Существуют ли интерфейсы (в любом языке SQL) для глобального взаимодействия CUD с таблицами БД только function с и procedure насколько это возможно?

сценарий

БД имеет много таблиц. Многие таблицы похожи друг на друга, например:

ГРУППА А: table_A_i(id, name) (я = 1, ...)

ГРУППА Б: table_B_j(id, referred_id, name) (j = 1, ...)

ГРУППА С: table_c_k(id, 1_referred_id, 2_referred_id) (k = 1, ...)

...

так далее

CUD упаковка function s будет создан для:

а) каждая таблица отдельно (отдельные функции)

б) каждая группа таблиц в отдельности (общие функции)

в) для любой таблицы (глобальные функции)

(Примечание: индивидуальные, общие и глобальные имена были даны мною только для ссылок.)

Я создал универсальные функции, но мне немного сложнее идти дальше и создавать глобальные функции, такие как:

insert|delete_row(
    p_row            p_table_name,  -- as a TYPE
    p_table_name     information_schema.column_domain_usage.table_name%TYPE,
    p_schema_name    information_schema.schemata.schema_name%TYPE DEFAULT 'public')

или же

update_row(
    p_old_row        p_table_name,  -- as a TYPE
    p_new_row        p_table_name,  -- as a TYPE
    p_table_name     information_schema.column_domain_usage.table_name%TYPE,
    p_schema_name    information_schema.schemata.schema_name%TYPE DEFAULT 'public')

Кроме того, я подозреваю, что (динамическое) литье, такое как ROW()::table_name, было бы трудно решить тоже.

Как я могу динамически определить p_table_name (как TYPE) и применить приведение?

Тиа

0 ответов

Другие вопросы по тегам