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、持續更新中 常用oracle sql語句
建立表空間 alter tablespace nm offline drop tablespace nm including contents and datafiles drop user nmcascade create tablespace nm datafile 1 size 500m au...
Oracle SQL語句優化
1,建表時 1 建立主鍵 2 建立索引 3 如果表資料量很大考慮建立分割槽 4 可以使用number型別的就不適用varchar2,這是因為引擎在處理查詢和連線時會逐個比較字串中每乙個字元,而對於數字型而言只需要比較一次就夠了。2,建立索引注意事項 1 首先應考慮在 where 及 order by...
oracle sql 複雜語句
1.oracle行轉列,pivot函式和unpivot函式 2.start with connect by prior 遞迴查詢用法 樹形結構的資料 例如組織機構樹 3.資料誤刪恢復 select from 表名稱 as of timestamp to timestamp 2020 05 07 08...