• sqlplus文件查看oracle自带命令的执行过程


    问题描述:看到一篇文章 在$ORACLE_HOME/bin/sqlplus中可以查看到数据库命令的查询语句。可以直接编辑sqlplus文件,查到到我们平时标准系统命令的原脚本,但是自己进行编辑查看却是个二进制乱码文件,这个应该怎么样才能看到sqlplus原本的脚本文件呢?

    手动编辑文件得到的结果是乱码

    [oracle@orcl sqlplus]$ vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlplus

    经过大佬指点,使用这个命令可以得到源码

    [oracle@orcl bin]$ strings $ORACLE_HOME/lib/libsqlplus.so

    [oracle@orcl admin]$ strings $ORACLE_HOME/lib/libsqlplus.so > /home/oracle/sqlplus.txt

    测试了一些命令,基本只能得到show 一些命令的查询过程,后续接着看一看

    show sga

    [oracle@orcl admin]$ strings $ORACLE_HOME/lib/libsqlplus.so | grep SGA
    SELECT DECODE(null,'','Total System Global Area','') NAME_COL_PLUS_SHOW_SGA,   SUM(VALUE), DECODE (null,'', 'bytes','') units_col_plus_show_sga FROM V$SGA    UNION ALL    SELECT NAME NAME_COL_PLUS_SHOW_SGA , VALUE,    DECODE (null,'', 'bytes','') units_col_plus_show_sga FROM V$SGA

    查看show的命令

    SQL> help show
    
     SHOW
     ----
    
     Shows the value of a SQL*Plus system variable, or the current
     SQL*Plus environment. SHOW SGA requires a DBA privileged login.
    
     SHO[W] option
    
     where option represents one of the following terms or clauses:
         system_variable
         ALL
         BTI[TLE]
         ERR[ORS] [{FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER
            | VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS} [schema.]name]
         LNO
         PARAMETERS [parameter_name]
         PNO
         RECYC[LEBIN] [original_name]
         REL[EASE]
         REPF[OOTER]
         REPH[EADER]
         SGA
         SPOO[L]
         SPPARAMETERS [parameter_name]
         SQLCODE
         TTI[TLE]
         USER

    show SQLCODE  没有过滤出来相关命令

    [oracle@orcl ~]$ strings $ORACLE_HOME/lib/libsqlplus.so | grep sqlcode
    sqlcode

    show RECYCLEBIN

    [oracle@orcl ~]$ strings $ORACLE_HOME/lib/libsqlplus.so | grep RECYCLEBIN
    objectname_plus_show_recyc FORMAT a30 HEADING 'RECYCLEBIN NAME'
    SHOW RECYCLEBIN
    SELECT ORIGINAL_NAME ORIGNAME_PLUS_SHOW_RECYC,OBJECT_NAME OBJECTNAME_PLUS_SHOW_RECYC,TYPE OBJTYPE_PLUS_SHOW_RECYC,DROPTIME DROPTIME_PLUS_SHOW_RECYC FROM USER_RECYCLEBIN WHERE CAN_UNDROP='YES'

    可以看到,在这里面也只是能查看到很少一部分脚本的查询语句,也有可能是前面strings能够解析出来的只有这些部分。对sqlplus中一些系统自带的执行命令是怎么来的和执行的一个过程比较好奇,希望大佬可以指点

  • 相关阅读:
    Hello World!
    Nginx加权轮询算法
    git常用命令
    linux命令
    sql 表值函数与标量值函数
    数据查询和操纵时连接的打开状态
    插入一条和上一条数据关联的数据
    C# 输出24小时格式时间
    c#中用sql存储过程
    AndroidManifest.xml文件解析
  • 原文地址:https://www.cnblogs.com/houzhiheng/p/16118095.html
Copyright © 2020-2023  润新知