ITPub博客

首页 > 数据库 > Oracle > [20240930]建立ocol.sh脚本查询字段.txt

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

Oracle 作者:zcs101397 时间:2024-10-21 07:35:08 0 删除 编辑

[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)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040917/viewspace-3039941/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-09-04

  • 博文量
    10
  • 访问量
    8348