[20251015]建立和完善col_vlist.sql脚本.txt --//建立一个支持视图的版本,由于oracle没有视图提取字段信息的视图,只能通过desc提取,通过bash shell处理生成需要的脚本。 --//如果有哪个视图支持提取视图字段信息的,希望告知,我再重写该脚本。 $ cat col_vlist.sql -- Copyright 2023 lfree. All rights reserved. -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. -------------------------------------------------------------------------------- -- -- Name: col_vlist.sql -- Purpose: display table or view of column_name list. -- -- Author: lfree -- Usage: -- @col_vlist owner.[table_name|view_name] regexp_column_list|column_lists -- column_list format : 1,2,4,5 or 2-4,7 -- -------------------------------------------------------------------------------- set term off col 2 new_value 2 col tpt_comment1 new_value _tpt_comment1 col tpt_comment2 new_value _tpt_comment2 select null "2" from dual where 1=2; select decode('&2',null,'*',replace(replace('&2',',','p;'),'-',',')) "2" ,CASE WHEN (INSTR (LOWER ('&2'), ',') > 0 or INSTR (LOWER ('&2'), '-') > 0 ) THEN '##' WHEN '&2' IS NULL THEN ' ' ELSE ' ' END tpt_comment1 ,CASE WHEN (INSTR (LOWER ('&2'), ',') > 0 or INSTR (LOWER ('&2'), '-') > 0 ) THEN ' ' WHEN '&2' IS NULL THEN '##' ELSE '##' END tpt_comment2 from dual; set term on def _desc_tmpfile=&_tpt_tempdir/desc_&_tpt_tempfile..tmp def _sp_tmpfile=&_tpt_tempdir/sp_&_tpt_tempfile..tmp set linesize 80 set term off spool &_desc_tmpfile set describe depth 1 linenum off indent on desc &1 set describe depth 1 linenum on indent on spool off set term on set linesize 269 --host sed -n '1,/----------/p' &_desc_tmpfile --host sed -n '/----------/,$p' &_desc_tmpfile | awk '{print $1}'| egrep -i '&2' host &_tpt_comment1 (echo SELECT ; sed -n '/----------/,$p;' &_desc_tmpfile | egrep -v -- "----------|^$" | awk '{print tolower($1)}'| egrep -i '&2' | sed -n '1p;2,$s/^/,/p'; echo FROM '&1 ') |tee &_sp_tmpfile host &_tpt_comment2 (echo SELECT ; sed -n '/----------/,$p;' &_desc_tmpfile | egrep -v -- "----------|^$" | awk '{print tolower($1)}'| sed -n '&2.p' | sed -n '1p;2,$s/^/,/p'; echo FROM '&1 ') |tee &_sp_tmpfile get &_sp_tmpfile nolist host &_DELETE &_desc_tmpfile &_sp_tmpfile --//简单测试: --//测试前说明一下通过判断参数2是否存在逗号是否是数字顺序,如果仅仅输入1个数字没有逗号会存在问题,可以简单加入,1001规避 --//这个问题,注意这里不能输入0. SCOTT@book01p> @ col_vlist emp 1 SELECT FROM emp SCOTT@book01p> @ col_vlist emp 1,1001 SELECT empno FROM emp SCOTT@book01p> @ col_vlist emp 1-2,5 SELECT empno ,ename ,hiredate FROM emp SCOTT@book01p> @ descv v$database " dbid|supp" Name Null? Type ------------------------------- -------- ---------------------------- 1 DBID NUMBER 30 SUPPLEMENTAL_LOG_DATA_MIN VARCHAR2(8) 31 SUPPLEMENTAL_LOG_DATA_PK VARCHAR2(3) 32 SUPPLEMENTAL_LOG_DATA_UI VARCHAR2(3) 40 SUPPLEMENTAL_LOG_DATA_FK VARCHAR2(3) 41 SUPPLEMENTAL_LOG_DATA_ALL VARCHAR2(3) 52 SUPPLEMENTAL_LOG_DATA_PL VARCHAR2(3) 59 SUPPLEMENTAL_LOG_DATA_SR VARCHAR2(3) SCOTT@book01p> @ col_vlist v$database 1,30-32,40,41,52,59 SELECT dbid ,supplemental_log_data_min ,supplemental_log_data_pk ,supplemental_log_data_ui ,supplemental_log_data_fk ,supplemental_log_data_all ,supplemental_log_data_pl ,supplemental_log_data_sr FROM v$database SCOTT@book01p> / DBID SUPPLEME SUP SUP SUP SUP SUP SUP ---------- -------- --- --- --- --- --- --- 1617337831 YES NO NO NO NO NO NO SCOTT@book01p> @ col_vlist v$database ^dbid|supp SELECT dbid ,supplemental_log_data_min ,supplemental_log_data_pk ,supplemental_log_data_ui ,supplemental_log_data_fk ,supplemental_log_data_all ,supplemental_log_data_pl ,supplemental_log_data_sr FROM v$database SCOTT@book01p> / DBID SUPPLEME SUP SUP SUP SUP SUP SUP ---------- -------- --- --- --- --- --- --- 1617337831 YES NO NO NO NO NO NO
[20251015]建立和完善col_vlist.sql脚本.txt
来源:这里教程网
时间:2026-03-03 22:47:48
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle RMAN三种不完全恢复实战详解:归档序号、时间点与SCN恢复对比
- 数据库管理-第373期 23ai:变化,不支持的功能与参数(20251011)
- Oracle 常见的33个等待事件
Oracle 常见的33个等待事件
26-03-03 - 第47期 OGG DownStream 部署
第47期 OGG DownStream 部署
26-03-03 - Oracle 数据库巡检脚本(增强版)
Oracle 数据库巡检脚本(增强版)
26-03-03 - 数据库管理-第374期 23ai:弃用的功能、视图与参数(20251013)
- 破解Oracle难题:用搜索引擎+AI高效处理cursor:pin S等待事件
- 商汤科技押注“1+X”:是破局利刃,还是盲目挣扎?
商汤科技押注“1+X”:是破局利刃,还是盲目挣扎?
26-03-03 - 数据库管理-第375期 26ai:除了改名,还有什么(20251015)
数据库管理-第375期 26ai:除了改名,还有什么(20251015)
26-03-03 - 数据库深夜革命,Oracle 26ai重磅发布!
数据库深夜革命,Oracle 26ai重磅发布!
26-03-03
