在这里我们将介绍Oracle解锁的步骤,包括具体的代码以及操作,希望本文能为大家在Oracle数据库管理工作中,有所帮助。
- from v$locked_object t1,v$session t2
- where t1.session_id=t2.sid order by t2.logon_time;
解锁
- --alter system kill session 'sid,serial'
- alter system kill session '146,21177';
锁表 --lock table tb_name in 模式
Null空值
- Null and false ->false
- Null and true-> null
- Null or false ->null
- Null or true->true
组函数忽略空值
空值排序时大于任何值,且不能被索引。
- Merge into
- MERGE [hint] INTO [schema .] table [t_alias] USING [schema .]
- { table | view | subquery } [t_alias] ON ( condition )
- WHEN MATCHED THEN merge_update_clause
- WHEN NOT MATCHED THEN merge_insert_clause;
例:
- merge into acct a
- using subs b
- on (a.msid = b.msid)
- when MATCHED then
- update set a.areacode = b.areacode
- when NOT MATCHED then
- insert (msid, bill_month, areacode) values (b.msid, '200702', b.areacode)
10g中增强一:条件操作 where
WHEN MATCHED THEN ...where ...
10g中增强二:删除操作
- 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
- merge into acct a
- using subs b on (a.msid=b.msid)
- when MATCHED then
- update set a.areacode=b.areacode
- delete where (b.ms_type!=0);
其中满足 (b.ms_type!=0) 的将被deleted
With 语句
with语句只能用在select语句中,update和delete不支持
- with summary as(
- select dname, sum(sal) as dept_total
- from ct_emp, ct_dept
- where ct_emp.deptno = ct_dept.deptno
- group by dname)
- select dname, dept_total
- from summary
- where dept_total > (select sum(dept_total) * 1 / 3 from summary);
临时表temporary table
1、临时表需要先创建,不建议在运行时使用DDL语句创建
2、临时表可以看作是一张普通的物理表, 但它的数据是会话隔离的
区别之处:
l 向表中插入数据只在会话或事务期间存在
l 表中的数据只对插入数据的会话是可见的
l 可用ON COMMIT指导定数据是会话专用还是事务专用
- create global temporary tablename(column list)
- on commit preserve rows; --提交保留数据会话临时表
- 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
【编辑推荐】