[20240308]建立完善查询表字段的comments信息.txt

来源:这里教程网 时间:2026-03-03 19:40:02 作者:

[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             执行时间

相关推荐