随笔分类 -  Oracle PL/SQL 小知识点

SQL之case when then用法详解
摘要:case具有两种格式。简单case函数和case搜索函数。 这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。 还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。 实例演示: 阅读全文

posted @ 2018-06-04 16:39 空空Ryan 阅读(19106) 评论(0) 推荐(0)

SQL里的concat() 以及group_concat() 函数的使用
摘要:实例参考:https://blog.csdn.net/mary19920410/article/details/76545053 一 concat()函数 1、功能:将多个字符串连接成一个字符串。 2、语法:concat(str1, str2,...) 返回结果为连接参数产生的字符串,如果有任何一个 阅读全文

posted @ 2018-06-04 16:26 空空Ryan 阅读(73102) 评论(0) 推荐(6)

ROUND()和TRUNC()函数
摘要:ROUND(number[,decimals]) 其中:number 待做截取处理的数值; decimals 指明需保留小数点后面的位数,可选项。需要注意的是,和trunc函数不同,对截取的数字要四舍五入。 1. 忽略它则截去所有的小数部分,并四舍五入; 2. 如果y不为整数则截取y整数部分; 3. 阅读全文

posted @ 2018-06-04 09:34 空空Ryan 阅读(1849) 评论(0) 推荐(0)

%ROWTYPE在INSERT和UPDATE语句里的妙用
摘要:PL/SQL里的ROWTYPE类型具有非常大的用处和灵活性,现在发现ROWTYPE在insert和update语句里的妙用,可以节省很多代码,特别是在行copy和更新的时候。 在INSERT语句中: 在UPDATE语句中: 妙用之处:ROW = v_dept 阅读全文

posted @ 2018-06-01 15:46 空空Ryan 阅读(588) 评论(0) 推荐(0)

sysdate 和 current_date 的区别
摘要:在oracle中current_date与sysdate都是显示当前系统时间, 其结果基本相同,但是有三点区别: 1. current_date返回的是当前会话时间,而sysdate返回的是服务器时间; 2. current_date有时比sysdate快一秒,这可能是四舍五入的结果; 3. 如果修改当前会话的时区,比如将中国的时区为东八区,修改为东九区,则current_date显示的时间... 阅读全文

posted @ 2018-06-01 15:39 空空Ryan 阅读(12811) 评论(0) 推荐(0)

SQL中 decode() 函数介绍
摘要:decode() 函数的语法: 其中:columnname为要选择的table中所定义的column; 缺省值可以是你要选择的column name本身,也可以是你想定义的其他值,比如Other等; 主要作用:相当于IF语句, 将查询结果翻译成其他值。(即以其他形式表现出来)。 举例说明: 现定义一 阅读全文

posted @ 2018-06-01 09:19 空空Ryan 阅读(106916) 评论(0) 推荐(3)

dual表详解
摘要:dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下: 1、查看当前用户 2、用来调用系统函数 3、可以用做计算器 4、查看序列值 彩蛋: 1. 查询Dual是什么Object? 原来DUAL是属于SYS schema的一 阅读全文

posted @ 2018-05-31 15:57 空空Ryan 阅读(5442) 评论(0) 推荐(1)

触发器 :new和 :old的使用
摘要::new --为一个引用最新的列值;:old --为一个引用以前的列值; 这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在,且update语句两个都有,而insert只有:new ,delete 只有:old; 特性 INSERT UPDATE DELETE OLD NULL 实际 阅读全文

posted @ 2018-05-31 14:50 空空Ryan 阅读(4036) 评论(0) 推荐(1)

序列(Sequence)创建、使用、修改和删除
摘要:序列(Sequence)是用来生成连续的整数数据的对象。序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成。 语法结构:创建序列 语法解析: ① START WITH:从某一个整数开始,升序默认值是1,降序默认值是-1。 ② INCREMENT BY:增长数。如果是正数则升序生成,如 阅读全文

posted @ 2018-05-31 11:25 空空Ryan 阅读(2892) 评论(0) 推荐(0)

RPAD()和LPAD()函数进行字符串的填充
摘要:RPAD()函数从右边对字符串使用指定的字符进行填充。 格式:RPAD(string,padded_length,[pad_string]) string 表示:被填充的字符串。 padded_length 表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把 阅读全文

posted @ 2018-05-30 17:17 空空Ryan 阅读(571) 评论(0) 推荐(0)

=>符号的意义
摘要:=> 是 Oracle 中调用存储过程的时候, 指定参数名进行调用。一般是, 某些参数有默认值的时候,你需要跳过某些参数来进行调用。 下面是具体的例子。 参数的默认值SQL> CREATE OR REPLACE PROCEDURE HelloWorld3 (2 p_user_name VARCHAR 阅读全文

posted @ 2018-05-30 09:57 空空Ryan 阅读(558) 评论(0) 推荐(0)

内置函数SQLCODE和SQLERRM的使用
摘要:由于ORACLE的错信息最大长度是512字节,为了得到完整的错误提示信息,我们可用 SQLERRM 和 SUBSTR 函数一起得到错误提示信息,方便进行错误,特别是如果WHEN OTHERS异常处理器时更为方便。 SQLCode:数据库操作的返回码,其中0表示成功;-1表示失败;100表示没有检索到 阅读全文

posted @ 2018-05-29 19:27 空空Ryan 阅读(1453) 评论(0) 推荐(0)

类型转换
摘要:1. CHAR转换为NUMBER: 使用 TO_NUMBER 函数来完成字符到数字的转换,如: v_total := TO_NUMBER('100.0') + sal; 2. NUMBER转换为CHAR: 使用 TO_CHAR 函数可以实现数字到字符的转换,如: v_comm := TO_CHAR( 阅读全文

posted @ 2018-05-29 18:50 空空Ryan 阅读(432) 评论(0) 推荐(0)

记录表TABLE中 INDEX BY BINARY_INTEGER 的作用
摘要:type my_number_arr is table of number index by binary_integer; 其作用是,加了”index by binary_integer ”后,my_number_arr 类型的下标就是自增长,可以自动根据下标找到对应的值。my_number_ar 阅读全文

posted @ 2018-05-29 17:29 空空Ryan 阅读(2337) 评论(0) 推荐(0)

什么是 BIND 变量?
摘要:变量绑定会使联机事务处理过程(OLTP)系统数据库中的SQL执行速度飞快,内存效率极高;不使用绑定变量可能会使OLTP数据库不堪重负,资源被SQL解析严重耗尽,系统运行缓慢。 当一个用户与数据库建立连接后,会向数据库发出操作请求,即向数据库送过去SQL语句。Oracle在接收到这些SQL后,会先对这 阅读全文

posted @ 2018-05-29 17:00 空空Ryan 阅读(753) 评论(0) 推荐(0)

nvl()函数和nvl2()函数
摘要:如果你某个字段为空,但是你想让这个字段显示0,可以使用nvl(字段名,0),当然这个0也可以换成其他东西,如:1,2,3…… 一 NVL(表达式1,表达式2)如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以 阅读全文

posted @ 2018-05-29 16:40 空空Ryan 阅读(3101) 评论(0) 推荐(0)

变量类型 ROWID 和 UROWID
摘要:1 2 3 4 5 6 7 8 9 10 DECLARE Row_id ROWID; info VARCHAR2(40); BEGIN INSERT INTO scott.dept VALUES (90, '财务室', '海口') RETURNING rowid, dname||':'||to_ch 阅读全文

posted @ 2018-05-29 14:54 空空Ryan 阅读(1580) 评论(0) 推荐(0)

导航