[20240308]建立完善查询表字段的comments信息.txt
--//优化sql语句时有时候要了解字段的意思,我以前已经根据开发文档更新了许多字段注解.
--//这是一项非常耗时无聊的工作,几乎花了我一个星期完成这项工作,但是一些定制化的需求,比如增加一些字段.
--//但当我向对方提出这些字段的相关文档时,我把那些没有注解的字段打印提交给对方,对方几乎拿不出来相关的解析,
--//这些字段基本是开发根据应用需求自己加上的,也就是这些信息基本在相关人员的脑子里,其他人根本不懂什么意思,
--//可见项目管理的混乱,以后这些字段表示怎么只能猜测,当然有一些还是可以猜测的.
--//最后只能给我一个临时的解决方案,就是当我不懂的时候,可以向对方提问,这简直是扯蛋!!我没事天天问这些问题.
--//实际上最可怕就是那些表示状态,标识的字段,你根本不知道对应值的0,1,2...表示什么,而这些字段往往可能需要建立索引.
--//还有一些开发会在项目验收后或者退场时,删除相应应用程序字段的注解.
--//实际上我以前有1个工作习惯使用exp定期备份元数据,不备份表中记录,我再抽取出来导入就ok了.
--//我们现在项目验收后要有这方面的要求,至于是否认真执行,我就不清楚了.
--//我遇到这方面管理最好的是东软的医保管理项目,几乎增加字段都会更新相应的字段注解.虽然那些字段命名有一些怪异.
--//不过有相关字段注解,还是很好理解sql语句代码的意思.
--//做优化工作有时候需要了解字段的具体含义,以前都是辅助使用toad查看,有空随手写一个脚本方便以后的工作.
$ cat tcc.sql
-- Copyright 2023 lfree. All rights reserved.
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions.
----------------------------------------------------------------------------------------------
--
-- Name: tcc.sql
-- Purpose: display Table_name and Column_name of Comments information
--
-- Author: lfree
-- Usage:
-- @tcc owner.index_name <1|''||1=1|col1,col2,...,colN>
--
-- other :
-- argument1 can enter % ,for example : %.table_name or scott.%de%
-- argument2 = <1|''||1=1> query all column_name in table
-- = <col1,col2,...,colN> query col1,col2,...,colN, The string list cannot have spaces
-----------------------------------------------------------------------------------------------
column COMMENTS format a180 wrap
set termout off
column column_string new_value column_string format a200
select decode('&2','','1=1','1','1=1','1=1','1=1','column_name in ('||''''||replace(upper('&2'),',',''',''')||''')' ) column_string from dual ;
column v_owner new_value v_owner
column v_table new_value v_table
select
upper(CASE
WHEN INSTR('&1','.') > 0 THEN
SUBSTR('&1',INSTR('&1','.')+1)
ELSE
'&1'
END
) v_table,
CASE WHEN INSTR('&1','.') > 0 THEN
UPPER(SUBSTR('&1',1,INSTR('&1','.')-1))
ELSE
user
END v_owner
from dual;
set termout on
PROMPT DISPLAY TABLE_NAME COMMENTS INFORMATION (&&V_OWNER..&V_TABLE)
SELECT * FROM DBA_TAB_COMMENTS WHERE UPPER(TABLE_NAME) LIKE '&V_TABLE' AND OWNER LIKE '&V_OWNER';
PORMPT
PROMPT DISPLAY COLUMN_NAME COMMENTS INFORMATION (&&V_OWNER..&V_TABLE)
SELECT * FROM DBA_COL_COMMENTS WHERE UPPER(TABLE_NAME) LIKE '&V_TABLE' AND OWNER LIKE '&V_OWNER' AND (&COLUMN_STRING);
PORMPT
--//测试:
SYS@127.0.0.1:9014/ywdb> @ tcc PPPPPP_HHH.ATF_YPXX OCC_TIME,p_id,drug_code
DISPLAY TABLE_NAME COMMENTS INFORMATION (PPPPPP_HHH.ATF_YPXX)
OWNER TABLE_NAME TABLE_TYPE COMMENTS
---------- ---------- ----------- -------------------
PPPPPP_HHH ATF_YPXX TABLE 包药机药品信息
DISPLAY COLUMN_NAME COMMENTS INFORMATION (PPPPPP_HHH.ATF_YPXX)
OWNER TABLE_NAME COLUMN_NAME COMMENTS
---------- ---------- -------------------- ----------
PPPPPP_HHH ATF_YPXX P_ID 病人ID
PPPPPP_HHH ATF_YPXX DRUG_CODE 药品编号
PPPPPP_HHH ATF_YPXX OCC_TIME 执行时间
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3008671/ ,如需转载,请注明出处,否则将追究法律责任。