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中一些系统自带的执行命令是怎么来的和执行的一个过程比较好奇,希望大佬可以指点
sqlplus文件查看自带oracle命令的执行过程的更多相关文章
- 浅析vue-cli脚手架命令的执行过程
上一篇文章,已经大致了解脚手架是什么以及脚手架是如何工作的.接下来,稍微深入一下脚手架的工作过程(以vue-cli为例).首先抛出3个问题: 1.明明全局安装的是@vue/cli,最后执行的命令却是v ...
- 深入Redis命令的执行过程
深入Redis命令的执行过程 Redis 服务器: Redis 服务器实现与多个客户端的连接,并处理这些客户端发送过来的请求,同时保存客户端执行命令所产生的数据到数据库中.Redis 服务器依靠资源管 ...
- 关于ansible命令的执行过程
首先说明一下.每一个模块.都是有相应的.py文件的,可以通过rpm -ql ansible看到 要观察模块执行过程,可以在ansible命令执行时加上-v或-vvv,或者-vvvv看得更加详细 ans ...
- Oracle SQL语句执行过程
前言 QQ群讨论的时候有人遇到这样的问题:where子句中无法访问Oracle自定义的字段别名.这篇 博客就是就这一问题做一个探讨,并发散下思维,谈谈SQL语句的执行顺序问题. 问题呈现 直接给出SQ ...
- Ping 命令的执行过程和应用协议
1. ICMP是“Internet Control Message Ptotocol”的缩写.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息. 控制消息是指网络通不通.主机 ...
- Linux 文件查看相关的一些命令
文件压缩解压命令 # 解压 xxx.xz 并删除 xz -d test.tar.xz # 打包成 xxx.tar , 语法: tar -cvf 最后包名.tar ./要打包文件 ./要打包的文件 ta ...
- openWRT自学---基于backfire版本,分析其Make命令的执行过程和各阶段的主要产物
准备阶段:从SVN下载backfire的编译环境(位置是:svn co svn://svn.openwrt.org/openwrt/branches/backfire),然后按照openWRT的要求, ...
- 怎样理解new命令的执行过程
通过new命令生成一个实例对象经历了四个步骤: 1. 创建一个空对象, 作为将要返回的实例; 2. 将空对象的原型指向构造函数的prototype属性; 3. 将空对象赋值给构造函数的this; 4. ...
- Linux常用命令_(文件查看)
文件查看主要有以下命令 cat.tac.more.less.head.tail.nl cat命令:是一个文本文件查看和连接工具.从第一个字节开始正向查看文件的内容,适用于小文件 以第一行开始,显示没有 ...
随机推荐
- 关于DP动规
今天学了动规,简单记录一下自己理解了的:(要不俺就忘了) 首先,啥是DP??? 动态规划,其实就是组合子问题的解来解决整个问题的解,由于每个子问题他只判断一次,所以不会重复计算,那就很牛啊!!! 专业 ...
- 自定义函数实现atoi功能
思路: 列如char a[ ] ="123" "1" "2" "3' "\0" 首先遍历这个字符串 知道这个字 ...
- Parrot Linux安装教程
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.Parrot Linux介绍 Parrot 是一个由开发人员和安全专家组成的全球社区,他们共同构建一个共享的工具框架,使他们的工作更轻松.标准 ...
- sqli-labs下载与安装
Sqli-labs 下载 Sqli-labs是一个印度程序员写的,用来学习sql注入的一个游戏教程. 博客地址为:http://dummy2dummies.blogspot.hk/, 博客当中有一些示 ...
- C# XML基础入门(XML文件内容增删改查清)
前言: 最近对接了一个第三方的项目,该项目的数据传输格式是XML.由于工作多年只有之前在医疗行业的时候有接触过少量数据格式是XML的接口,之后就几乎没有接触过了.因此对于XML这块自己感觉还是有很多盲 ...
- ChIP-seq技术介绍|易基因
大家好,这里是专注表观组学十余年,多组学科研服务领跑者的易基因. 染色质免疫沉淀后测序(ChIP seq)是一种针对DNA结合蛋白.组蛋白修饰或核小体的全基因组分析技术.由于二代测序技术的巨大进步,C ...
- 内置对象session和application的作用是什么?
Jsp调用Javeabean命令UseBean中有Scope设置,一般有Application session page等设置,Page就是每页重新产生usebean中的javabean新对象,一般情 ...
- java-設計模式概述
什麽是設計模式?? 软件设计中常见问题的典型解决方案. 能根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题. 模式并不是一段特定的代码, 而是解决特定问题的一般性概念. 你可以根据模式 ...
- 在 Spring 框架中如何更有效地使用 JDBC?
使用 SpringJDBC 框架,资源管理和错误处理的代价都会被减轻.所以开发者只 需写 statements 和 queries 从数据存取数据,JDBC 也可以在 Spring 框架提供 的模板类 ...
- spring JDBC API 中存在哪些类?
JdbcTemplate SimpleJdbcTemplate NamedParameterJdbcTemplate SimpleJdbcInsert SimpleJdbcCall