问题描述:看到一篇文章 在$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中一些系统自带的执行命令是怎么来的和执行的一个过程比较好奇,希望大佬可以指点

sqlplus文件查看oracle自带命令的执行过程的更多相关文章

  1. 浅析vue-cli脚手架命令的执行过程

    上一篇文章,已经大致了解脚手架是什么以及脚手架是如何工作的.接下来,稍微深入一下脚手架的工作过程(以vue-cli为例).首先抛出3个问题: 1.明明全局安装的是@vue/cli,最后执行的命令却是v ...

  2. 深入Redis命令的执行过程

    深入Redis命令的执行过程 Redis 服务器: Redis 服务器实现与多个客户端的连接,并处理这些客户端发送过来的请求,同时保存客户端执行命令所产生的数据到数据库中.Redis 服务器依靠资源管 ...

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

    问题描述:看到一篇文章 在$ORACLE_HOME/bin/sqlplus中可以查看到数据库命令的查询语句.可以直接编辑sqlplus文件,查到到我们平时标准系统命令的原脚本,但是自己进行编辑查看却是 ...

  4. ORACLE数据库SQL语句的执行过程

    SQL语句在数据库中处理过程是怎样的呢?执行顺序呢?在回答这个问题前,我们先来回顾一下:在ORACLE数据库系统架构下,SQL语句由用户进程产生,然后传到相对应的服务端进程,之后由服务器进程执行该SQ ...

  5. 关于ansible命令的执行过程

    首先说明一下.每一个模块.都是有相应的.py文件的,可以通过rpm -ql ansible看到 要观察模块执行过程,可以在ansible命令执行时加上-v或-vvv,或者-vvvv看得更加详细 ans ...

  6. Ping 命令的执行过程和应用协议

    1. ICMP是“Internet Control Message Ptotocol”的缩写.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息. 控制消息是指网络通不通.主机 ...

  7. Linux 文件查看相关的一些命令

    文件压缩解压命令 # 解压 xxx.xz 并删除 xz -d test.tar.xz # 打包成 xxx.tar , 语法: tar -cvf 最后包名.tar ./要打包文件 ./要打包的文件 ta ...

  8. sqlplus下 查看oracle 执行计划

    Microsoft Windows [版本 6.1.7601] 版权所有 (c) Microsoft Corporation.保留所有权利. C:\Users\zhangzheng2 SQL :: C ...

  9. openWRT自学---基于backfire版本,分析其Make命令的执行过程和各阶段的主要产物

    准备阶段:从SVN下载backfire的编译环境(位置是:svn co svn://svn.openwrt.org/openwrt/branches/backfire),然后按照openWRT的要求, ...

  10. 怎样理解new命令的执行过程

    通过new命令生成一个实例对象经历了四个步骤: 1. 创建一个空对象, 作为将要返回的实例; 2. 将空对象的原型指向构造函数的prototype属性; 3. 将空对象赋值给构造函数的this; 4. ...

随机推荐

  1. 游戏内存优化之使用16位纹理/NPOT

    转自:https://blog.csdn.net/oqqQuZi1234567/article/details/41749599 图片文件大小和纹理内存占用是两码事.假设他们是帐篷.图片文件就相当于帐 ...

  2. django_模板层的变量和标签

    一.模板层的变量 1.能传递到模板层的数据类型:str(字符串).list(数组).dict(字典).obj(类实例化的对象).fun(函数)等. 2.在模板中使用变量的方法: (1)字符串:{{ 变 ...

  3. drf视图类

    1 2个视图基类 # django 内置的View# drf 的APIView ,继承自View# GenericAPIView -两个重要的类属性:    queryset = Book.objec ...

  4. Mysql 的用户权限等操作管理与设置(创建、授权、修改、查看)

    注:请在 MySql 的客户端操作 1.创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password';//例 CREATE USER 'use ...

  5. MySql数据库读取字段错误问题

    一个小小的BUG,断断续续搞了一个月才搞定,使用MySql的时候使用mysql_fetch_fields()获取的字段始终始终是错误的,因为是修改别人的代码,一直找不到问题,Debug了无数次还是搞不 ...

  6. PASS模型需求分析和原型设计

    班级网址 https://edu.cnblogs.com/campus/zjcsxy/SE2020 作业要求 https://edu.cnblogs.com/campus/zjcsxy/SE2020/ ...

  7. 使用python制作nRF52832升级包和合成烧录文件的经验(nRF52832 DFU经验分享)

    使用python制作nRF52832升级包和合成烧录文件,青风开发板的作者已经说得很明白,不过作者使用的python是2.7的,已经很落后了.目前python已经更新到3.10.4了.所以我换了台电脑 ...

  8. How to Show/Hide a Button Using the Business Process Flow Stage

    How to Show/Hide a Button Using the Business Process Flow Stage In today's blog, we'll discuss how t ...

  9. Oracle表主键作为外键都用在哪些表查询

    Oracle中,如果设置了外键,删除数据时,必须将外键关联一并删除,但是如果对项目不是很熟悉时,我们无法判断到底都在哪些表中有外键关联,以下提供了一个查询的SQL,可以通过数据库查询,查找到所有的外键 ...

  10. 实验2 数组、指针与C++标准库

    实验任务5: Info.hpp #ifndef INFO_HPP #define INFO_HPP #include<iostream> #include<iomanip> # ...