程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 詳解Oracle解鎖相關過程

詳解Oracle解鎖相關過程

編輯:Oracle數據庫基礎

在這裡我們將介紹Oracle解鎖的步驟,包括具體的代碼以及操作,希望本文能為大家在Oracle數據庫管理工作中,有所幫助。

  1. from v$locked_object t1,v$session t2  
  2. where t1.session_id=t2.sid order by t2.logon_time; 

解鎖

  1. --alter system kill session 'sid,serial'   
  2.  alter system kill session '146,21177'

鎖表 --lock table tb_name in 模式

Null空值

  1. Null and false ->false 
  2. Null and true-> null 
  3. Null or false ->null 
  4. Null or true->true 

組函數忽略空值

空值排序時大於任何值,且不能被索引。

  1. Merge into 
  2. MERGE [hint] INTO [schema .] table [t_alias] USING [schema .]  
  3. table | vIEw | subquery } [t_alias] ON ( condition )  
  4. WHEN MATCHED THEN merge_update_clause  
  5. WHEN NOT MATCHED THEN merge_insert_clause; 

例:

  1. merge into acct a  
  2. using subs b  
  3. on (a.msid = b.msid)  
  4. when MATCHED then 
  5.  update set a.areacode = b.areacode  
  6. when NOT MATCHED then 
  7. insert (msid, bill_month, areacode) values (b.msid, '200702', b.areacode) 

10g中增強一:條件操作 where

WHEN MATCHED THEN ...where ...

10g中增強二:刪除操作

  1. An optional delete where clause can be used to clean up after a merge Operation. Only those rows which match both the ON clause and the DELETE WHERE clause are deleted  
  2.  merge into acct a   
  3.  using subs b on (a.msid=b.msid)  
  4.  when MATCHED then 
  5. update set a.areacode=b.areacode  
  6.  delete where (b.ms_type!=0); 

其中滿足 (b.ms_type!=0) 的將被deleted

With 語句

with語句只能用在select語句中,update和delete不支持

  1.  with summary as(  
  2. select dname, sum(sal) as dept_total  
  3. from ct_emp, ct_dept  
  4.  where ct_emp.deptno = ct_dept.deptno  
  5.  group by dname)  
  6. select dname, dept_total  
  7. from summary  
  8.  where dept_total > (select sum(dept_total) * 1 / 3 from summary);  

臨時表temporary table

1、臨時表需要先創建,不建議在運行時使用DDL語句創建

2、臨時表可以看作是一張普通的物理表, 但它的數據是會話隔離的

區別之處:

l 向表中插入數據只在會話或事務期間存在

l 表中的數據只對插入數據的會話是可見的

l 可用ON COMMIT指導定數據是會話專用還是事務專用

  1. create global temporary tablename(column list)   
  2.  on commit preserve rows--提交保留數據會話臨時表   
  3. on commit delete rows--提交刪除數據 事務臨時表  

oracle的臨時表和sql server不一樣,在使用完成以後,Oracle臨時表中的紀錄可以被定義為自動刪除(分session方式和transaction方式),而表結構不會被自動刪除;SQL Server中的臨時表在使用後會被完全刪除。

建議:不得已的情況下(比較復雜的數據處理)才使用臨時表,否則盡可能使用子查詢代替或使用游標。

NVL,NVL2區別及NULLIF 的使用

| NVL(expr1, expr2):expr1為NULL,返回expr2;不為NULL,返回expr1。

| NVL2 (expr1, expr2, expr3) :xpr1不為NULL,返回expr2;為NULL,返回expr3。expr2和expr3類型不同的話,expr3會轉換為expr2的類型

| NULLIF (expr1, expr2):相等返回NULL,不等返回expr1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved