[20240930]建立ocol.sh脚本查询字段.txt

来源:这里教程网 时间:2026-03-03 20:43:22 作者:

[20240930]建立ocol.sh脚本查询字段.txt --//oracle没有一个好的视图记录显示视图中的相关字段。要显示仅仅使用desc,而desc不支持过滤功能,如果没有图形工具,找到需要 --//的字段有点麻烦。写一个简单的bash shell脚本,实现这个功能。 $ cat ocol.sh #! /bin/bash conn=${3:-'/ as sysdba'} sqlplus -s -l ${conn} <<< "@desc $1" | grep --color=never -Ei "^\s+Name|------|$2" --//缺点只能在服务端以sys用户使用,不知道如何实现pdb下表的查询。 --//修改加入参数3,这样可以实现上述功能。 $ cat desc.sql set linesize 80 desc &1 set linesize 280 --//测试如下: SCOTT@book01p> !! ocol.sh 'v$database' supp            Name                            Null?    Type            ------------------------------- -------- ----------------------------    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) --//使用中注意几个问题,如果存在$或者|要使用单引号. $ ocol.sh dba_tables '128|table'            Name                            Null?    Type            ------------------------------- -------- ----------------------------     1      OWNER                           NOT NULL VARCHAR2(128)     2      TABLE_NAME                      NOT NULL VARCHAR2(128)     3      TABLESPACE_NAME                          VARCHAR2(30)     4      CLUSTER_NAME                             VARCHAR2(128)     5      IOT_NAME                                 VARCHAR2(128)    31      TABLE_LOCK                               VARCHAR2(8)    48      CLUSTER_OWNER                            VARCHAR2(128) $ ocol.sh 'x$ksmsp' '*'            Name                            Null?    Type            ------------------------------- -------- ----------------------------     1      ADDR                                     RAW(8)     2      INDX                                     NUMBER     3      INST_ID                                  NUMBER     4      CON_ID                                   NUMBER     5      KSMCHIDX                                 NUMBER     6      KSMCHDUR                                 NUMBER     7      KSMCHCOM                                 VARCHAR2(16)     8      KSMCHPTR                                 RAW(8)     9      KSMCHSIZ                                 NUMBER    10      KSMCHCLS                                 VARCHAR2(8)    11      KSMCHTYP                                 NUMBER    12      KSMCHPAR                                 RAW(8)  $ ocol.sh 'dept' "*" "scott/book@book01p"            Name                            Null?    Type            ------------------------------- -------- ----------------------------     1      DEPTNO                          NOT NULL NUMBER(2)     2      DNAME                                    VARCHAR2(14)     3      LOC                                      VARCHAR2(13)

相关推荐