Интерфейс в любой 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) и применить приведение?
Тиа