ORACLE一些不常用的脚本

简介:

本篇介绍一下一些不太常用的脚本,它们往往有“奇能异效”,但是由于不太常用、不常见、或效率方面的原因,往往被大多数人给遗忘在某些角落里。呵呵,不知道你看见下面这些脚本,是否觉得眼熟呢?

1: 如果我需要从SCOTT模式下EMP表中查询职位为CLERK(秘书)、SALESMAN(销售人员)这两种员工,你会怎么写?是下面哪种写法呢?

SELECT * FROM SCOTT.EMP WHERE JOB =ANY('CLERK', 'SALESMAN') 
/

SELECT * FROM SCOTT.EMP WHERE JOB IN ('CLERK', 'SALESMAN')
/


 ANY表示满足于条件中任何一个,可以吧条件拆分成OR,或等效于IN。这个命令有些不常用,很多人习惯用IN替代.

 

2: 

查询收入比所有职位为MANAGER都高的员工

SELECT * FROM SCOTT.EMP WHERE JOB != 'MANAGER' AND SAL >(SELECT MAX(SAL) FROM SCOTT.EMP WHERE JOB='MANAGER')
/
SELECT * FROM SCOTT.EMP WHERE JOB !='MANAGER' AND SAL > ALL(SELECT SAL FROM SCOTT.EMP WHERE JOB ='MANAGER')

/

ALL表示列表中的所有条件都需要满足。 可以拆分成AND条件。

 

3: SOME类似于ANY,在用法意义上和ANY意义一样。表示只要满足于条件中的一个。 SOME、ANY、ALL这三者在SQL脚本中的效率一般不及子查询(多行子查询或关联子查询),建议还是少在脚本中使用它们。

 

 

4: 假如需要在EMP表中插入一条员工名为MR'WANG的记录,由于'一般用来标示一段字符串,如果要'作为一个字符插入表中,其实可以两个单引号''来表示
INSERT INTO SCOTT.EMP

VALUES(7903, 'MR''WANG',  'SALESMAN', 7698, TO_DATE('1984-12-25', 'YYYY-MM-DD'), 300, 0, 30) 

大家一般用_ 、%来做模糊查询匹配,但是假如我需要查询字符串中包含_或%字符的模糊查询,这个该怎么做呢?比如需要你查询数据库中所有表名包含_字符的表,可以用 ESCAPE关键字指定一个转义字符“\"来实现。这样转移字符后的下划线就不再表示匹配关系了。如下所示:

SELECT * FROM ALL_TABLES WHERE TABLE_NAME LIKE '%\_%' ESCAPE '\' 

 

 

5: IS NAN 和 IS INFINITE

CREATE TABLE TEST
(
       T1    NUMBER           ,
       T2    BINARY_DOUBLE    ,
       T3    BINARY_FLOAT
)

INSERT INTO TEST
VALUES(12, 34.4, 23.45)

SELECT * FROM TEST 

INSERT INTO TEST
VALUES(13, 'NAN', 'NAN')   INSERT INTO TESTVALUES(14, 'INF', '-INF')

此时你在PL/SQL里面查询SELECT * FROM TEST时,会报下面的错误(SELECT T1, TO_CHAR(T2), T0_CHAR(T3) FROM TEST 则不会报ORA-01722的错误,这是因为NAN等不能转化为数字式格式的缘故)还是去SQL/PLUS里面查询吧,如图所示, IS NAN 表示非数值匹配  IS INFINITI 表示数值时无限值。

 

 

 

相关文章
|
7月前
|
存储 SQL Oracle
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
68 0
|
SQL Oracle 关系型数据库
|
3月前
|
Oracle 关系型数据库 Linux
RHEL7.9系统下一键脚本安装Oracle 11gR2单机版本
RHEL7.9系统下一键脚本安装Oracle 11gR2单机版本
56 1
|
11月前
|
SQL 监控 Oracle
Oracle 性能监控统计工具 mystats脚本
看看这个工具的介绍就知道这个工具是很牛的,因为它是在两个牛人的工具是改进的,一出生就有贵族血统呀!
|
11月前
|
监控 Oracle 关系型数据库
oracle性能监控脚本 Mother Of All Tuning Scripts (MOATS)
这个名字牛吗?Mother Of All Tuning Scripts (MOATS) 下载地址: https://github.com/oracle-developer/moats,下载后
|
11月前
|
SQL Oracle 关系型数据库
Oracle 数据库日常健康检查脚本
检查数据库和online logfile的大小 —执行一下这3个SQL,把结果贴出来,看看数据库大小和log的切换频率。
182 0
|
11月前
|
Oracle 关系型数据库 数据库
新建Oracle 数据库的Shell+SQL脚本
不用图形界面,也不用DBCA的静默方式,下面是用Shell+SQL创建Oracle数据库的脚本。
134 0
|
11月前
|
Oracle 关系型数据库 Linux
Oracle自动备份脚本(Linux)
Oracle自动备份脚本(Linux)
96 0
|
Oracle Java 关系型数据库
loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
133 0
QGS
|
Oracle 关系型数据库 数据库
oracle数据库-简易巡检脚本
记oracle数据库-简易巡检脚本
QGS
242 0
oracle数据库-简易巡检脚本

推荐镜像

更多