非业务 Oracle SQL 语句备份
- 1、创建一个将 Oracle 生成的 GUID 格式化为标准的 GUID 的函数
- 2、在 PLSQL 中测试并输出语句异常的语句块
- 3、在查询语句中日期的一种特殊表示方法
- 4、利用 ROWNUM 做分组子排序
- 5、持续更新中
1、创建一个将 Oracle 生成的 GUID 格式化为标准 GUID 的函数
CREATE OR REPLACE FUNCTION fn_normal_guid
RETURN VARCHAR2 IS
v_guid VARCHAR2(32); -- 用于接收 Oracle 生成的 GUID
BEGIN
-- 查询 Oracle 生成的 GUID
SELECT SYS_GUID() INTO v_guid FROM DUAL;
-- 将 Oracle 生成的 GUID 格式化为标准的 GUID 并返回
RETURN SUBSTR(v_guid,1,8)||'-'||
SUBSTR(v_guid,9,4)||'-'||
SUBSTR(v_guid,13,4)||'-'||
SUBSTR(v_guid,17,4)||'-'||
SUBSTR(v_guid,21,12);
END;
2、在 PLSQL 中测试并输出语句异常的语句块
需要用的时候来这儿拷贝过去改改就行了,免得每次都要写一遍——麻烦!而且又不常用,每次写的时候总有些细节半天想不起来,太浪费时间了!
DECLARE
res VARCHAR2(50);
BEGIN
SELECT TO_CHAR(fn_now,'yyyy年mm月dd日') INTO res FROM DUAL;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,64));
END;
3、在查询语句中日期的一种特殊表示方法
SELECT DATE '2017-06-20'+2 res FROM DUAL; -- res: 2017-06-22
4、利用 ROWNUM 做分组子排序
SELECT DECODE(ROWNUM-t4.min_rownum,0,t4.dept_code,NULL) dept_code,
DECODE(ROWNUM-t4.min_rownum,0,1,ROWNUM-t4.min_rownum+1) rank,t2.staff_name
FROM(
SELECT t1.dept_code,t1.staff_name FROM demo.t_staff t1 ORDER BY t1.dept_code,t1.staff_name
) t2, (
SELECT t3.dept_code,MIN(ROWNUM) min_rownum FROM(
SELECT t1.dept_code,t1.staff_name FROM demo.t_staff t1 ORDER BY t1.dept_code,t1.staff_name
) t3
GROUP BY t3.dept_code
) t4
WHERE t2.dept_code=t4.dept_code;
5、持续更新中
本文链接:http://www.cnblogs.com/hanzongze/p/oracle-sql-backup.html
版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!