Oracle 常用函式笔记 2

开始学习PL/SQL的阵痛期,将一些没使用过的涵式及术语定义纪录下来
前篇 : Oeacle 常用函式笔记 1

函式

Coalesce(n1, n2)

列表中第一个非空的表达式是函数的返回值,假如所有的表达式都是空值,最终将返回一个空值。

select Coalesce('A', 'B', 'C') from dual-- 结果: Aselect Coalesce(null, 'B') from dual-- 结果: Bselect Coalesce(null, null) from dual-- 结果: null

参考 : NVL , NVL2 ,COALESCE ,DECODE用法

EXISTS

在Oracle中, 在判断资料是否存在与否, 除了用 IN, BETWEEN 之外, 还有另一种选择, 就是用 "EXISTS"。

exists (子查询)-- 若子查询有返回值则 return true 反之则 return false

子查询中不要用select count(*), 这样无论如何, 都会有值取回,也就是 exists 结果都是 true

使用範例 :

select * from tom1where aa >= 2and exists( select xx            from tom2            where xx = tom1.aa          );

参考 : Oracle PL/SQL: 关于 Exists 用法

sequence

在 Oracle 中可以建立 sequence 也就是序列号,每次取用后自动增加值。

CREATE SEQUENCE sequence名称  INCREMENT BY 1  -- 每次加几个  START WITH 1    -- 从1开始计数  NOMAXVALUE      -- 不设置最大值  NOCYCLE         -- 一直累加,不循环  CACHE 10;  

定义完成后就可以用CURRVALNEXTVAL涵式

CURRVAL : 返回 sequence的当前值NEXTVAL : 增加 sequence的值,然返回 sequence 值

参考 : Oracle的Sequence用法

rownum

在 Oracle 使用 rownum 栏位时会根据你SELECT的资料建立顺序给予序号,所以如果有ORDER BY 栏位,rownum 的顺序并不会按照顺序呈现,这是因为 rownum 会在排序前先配置好的缘故。

参考 : Oracle rownum / row_number / rank / dense_rank 这四个的差异

查询资料库连结 DB_LINK

在oracle中要跨资料库查询需要建立db_link,要查询目前已有的db_link方式可以透过已下两种方式

直接透过sql developer 查询

http://img2.58codes.com/2024/20110503h8HrDhe7cR.jpg

使用语法查询
select * from dba_db_links;

参考 : oracle 查看 、创建、删除 dblink

%Type

%TYPE 是 Procedure 定义变数的一种方法,
V_StudentID students.id%TYPE 表示的含义:变数V_StudentID 与students表中id的栏位资料类型一致,长度也一致,当students中id的资料类型改变时,那么V_StudentID的资料类型也会跟着改变。

参考 : Oracle %TYPE %ROWTYPE

笔记内容如果有错误欢迎留言告知,可以帮忙纠正错误的观念,感谢!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章