首页 > 其他分享 >DWS(PG)自定义函数查询表注释 ,表结构

DWS(PG)自定义函数查询表注释 ,表结构

时间:2024-09-02 20:52:54浏览次数:11  
标签:DWS name 自定义 varchar2 PG table schema tb pg

create or replace function show_table(tableName varchar2)
returns table(table_name varchar2, column_name varchar2, column_type varchar2, attnotnull varchar2, column_comment varchar2) as $$
begin
	return query
SELECT
    c.relname ::varchar2 as table_name, 
    a.attname ::varchar2 as column_name,
    format_type(a.atttypid,a.atttypmod) ::varchar2 as column_type, 
    a.attnotnull ::varchar2 as attnotnull, 
    col_description(a.attrelid,a.attnum) ::varchar2 as column_comment   
FROM 
    pg_class as c,pg_attribute as a 
where 
    a.attrelid = c.oid 
    and 
    a.attnum>0 
    and 
    c.relname = tableName; 	
end;
$$
language plpgsql;

select * from show_table('employees');

create or replace function query_table(tableName varchar2, tableDes varchar2)
returns table(table_name varchar2, table_des varchar2) as $$
begin
    if tableName is not null and tableDes is null then
    return query
        SELECT tb.table_name :: varchar2, d.description :: varchar2 FROM information_schema.tables tb
        JOIN pg_class c ON c.relname = tb.table_name
        LEFT JOIN pg_description d ON d.objoid = c.oid AND d.objsubid = '0' where table_name like '%' || tableName || '%'
        and table_schema not in('pg_catalog','information_schema','dbe_pldeveloper','dbe_perf','db4ai');
    elsif tableName is null and tableDes is not null then
    return query
        SELECT tb.table_name :: varchar2, d.description :: varchar2 FROM information_schema.tables tb
        JOIN pg_class c ON c.relname = tb.table_name
        LEFT JOIN pg_description d ON d.objoid = c.oid AND d.objsubid = '0' where description like '%' || tableDes || '%'
        and table_schema not in('pg_catalog','information_schema','dbe_pldeveloper','dbe_perf','db4ai');
    elsif tableName is not null and tableDes is not null then
    return query
        SELECT tb.table_name :: varchar2, d.description :: varchar2 FROM information_schema.tables tb
        JOIN pg_class c ON c.relname = tb.table_name
        LEFT JOIN pg_description d ON d.objoid = c.oid AND d.objsubid = '0' where description like '%' || tableDes || '%'
        and table_name like '%' || tableName || '%' and table_schema not in('pg_catalog','information_schema','dbe_pldeveloper','dbe_perf','db4ai');
    elsif tableName is null and tableDes is null then
    return query
        SELECT tb.table_name :: varchar2, d.description :: varchar2 FROM information_schema.tables tb
        JOIN pg_class c ON c.relname = tb.table_name
        LEFT JOIN pg_description d ON d.objoid = c.oid AND d.objsubid = '0' where table_schema not in('pg_catalog','information_schema','dbe_pldeveloper','dbe_perf','db4ai');
    end if;
    
end;
$$
language plpgsql;

select * from QUERY_TABLE('employees', '员工');

 

标签:DWS,name,自定义,varchar2,PG,table,schema,tb,pg
From: https://www.cnblogs.com/shengkai126126/p/18393513

相关文章

  • 《第三十一章 高级主题 - 自定义控件》
    一、引言在Android开发中,为了满足特定的界面需求和交互效果,自定义控件是一项非常重要的技能。它能够让开发者根据具体的业务场景创建出独特且功能强大的用户界面元素。在本章中,我们将深入探讨自定义控件的两种主要方式:继承现有控件和完全自定义控件。二、继承现有控件(......
  • 自定义TOOLs(完全体Agent)
    1.Agents包括几个关键组件:-*Agent*:用于生成指令和执行动作的代理。-*Tool*:用于执行动作的函数。-*Memory*:用于存储历史对话和生成的指令。-*LLM*:用于生成指令和执行动作的LLM。2.例如:计算\搜索\知识库检索(多轮对话)fromlangchain.agentsimportload_to......
  • 收银系统源码-收银台ui自定义
    收银系统在很多门店日常经营中,使用率是非常高的。商品采购、出入库、商品销售、会员管理、线上商城订单核销等都离不开收银系统,很多门店的收银员是使用线下收银台时,想根据的操作习惯以及个人喜好调整收银台。1.调整收银台的整体ui收银台ui风格,收银员可以根据自己的个人喜好去自定......
  • 正点原子FPGA新品ZYNQ7035/7045/7100开发板,ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2!
    正点原子FPGA新品ZYNQ7035/7045/7100开发板,ZYNQ7000系列、双核ARM、PCIe2.0、SFPX2!正点原子Z100ZYNQ开发板,搭载XilinxZynq7000系列芯片,核心板支持XilinxZynq-7035、Zynq-7045和Zynq-7100三种型号。开发板由核心板+底板组成,外设资源丰富,板载2路千兆以太网接口(PS+PL)、PCIe2.0x8、......
  • Sitecore 通过 processor 来自定义类似 github 的 not found 页面
    有一个需求是类似github的404页面,当访问不存在的页面时,需要满足以下几点:不是通过redirect或其他状态码让浏览器来跳转到到404页面;链接还是原来链接,但是页面内容是404;由于是MVC模式,功能由back-end来实现;状态码得是404。在基于sitecore的框架上,使用sitecore的p......
  • metershpere中如何调用自定义jar包中的方法
    背景:    在编写一些稍微复杂一点的逻辑的接口测试用例时,大家可以感觉到metershpere用起来并不方便,即使用已有的控件写出来了看起来也异常混乱,比如有多层循环逻辑再加上一些逻辑判断,场景变量,全局变量来回变更时,保证metershpere的界面会让你看的头晕。这时多数同学一定会......
  • 20240905_000339 mysql 存储过程 用户自定义变量
    自定义变量的特点一个@符号定义自定变量打印自定变量另一种定义方式查询赋值......
  • Prestashop安装问题:无法安装自定义模块
    Prestashop是一款免费开源的电子商务软件,它具有易于使用、功能丰富和高度可定制化等特点。如果在安装自定义模块时遇到问题,可能是由于以下原因:权限问题:确保你具有足够的权限来安装模块。你可以尝试以管理员身份运行安装程序。文件权限问题:确保自定义模块所在的文件夹及其子文件夹......
  • Scrapy:使用自定义列设置保存为 CSV 的指南
    在Scrapy中,你可以使用自定义列设置将数据保存为CSV文件。以下是一个基本的指南:定义你的数据项(Item):在你的Scrapy项目中,创建一个类来定义你要提取的数据项。每个数据项对应于CSV文件中的一列。处理数据:在你的爬虫(Spider)中,提取数据并将其存储在定义的数据项中。设置CSV输出:......
  • 【QTTabBar】手把手教你QTTabBar命令栏js脚本的自定义开发与实战
    本帖最后由二零一八小王子于2024-8-3121:45编辑<ignore_js_op>众所周知,360压缩有一个解压功能,也就是打开压缩包后点击“一键解压”就可解压完成并且打开目标文件夹。今天这里要实现的是在qttabbar的命令按钮,也就是上面的工具栏处,使用js编写一个一键解压功能。也就是对于一个......