获取高斯数据库对应属主下所有表的建表语句的存储过程
- 取高斯数据库对应属主下所有表的建表语句
--获取高斯数据库对应属主下所有表的建表语句
--参数:属主名
create or replace FUNCTION ypg_get_tabledef(i_owner varchar2)
returns void
LANGUAGE plpgsql
NOT FENCED NOT SHIPPABLE
as $$
declare
r_owner varchar2(100) := '';
r_table varchar2(100) := '';
owner_table varchar2(100) := '';
v_count number(1);
begin
--create table if not exists ypg_tabledef (t_owner varchar2, t_table varchar2, t_def varchar2);
--清空目标表
TRUNCATE table ypg_tabledef;
--获取该属主下表名
for r in (select tableowner,tablename from pg_tables where tableowner =i_owner) loop
r_owner := trim(lower(r.tableowner));
r_table := trim(lower(r.tablename));
owner_table := r_owner || '.' || r_table;
dbms_output.put_line(owner_table);
begin
--查询是否存在该表
select count(1) into v_count from pg_class where relname=r_table;
if v_count > 0 then
dbms_output.put_line(&