1、多表关联:
-- 方法1.
UPDATE
表2
SET
表2.C = (
SELECT
B
FROM
表1
WHERE
表1.A = 表2.A)
WHERE
EXISTS (
SELECT
1
FROM
表1
WHERE
表1.A = 表2.A)
-- 方法2
MERGE
INTO
表2
USING 表1
ON
( 表2.A = 表1.A )
-- 条件是 A 相同
WHEN
MATCHED
THEN
UPDATE
SET
表2.C = 表1.B
-- 匹配的时候,更新
2、pid查看进程
select b.spid, a.osuser, a.program
from v$session a, v$process b
where a.paddr = b.addr
and b.spid in ('11435','4156','3997','3986','12623','11454')
3、查看锁表
--(1)锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
--(2)查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
--(3)查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
select count(*) from v$locked_object;
select * from v$locked_object;
--(2)查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
--(3)查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
杀session
alter system kill session 'sid,serial#';
4、序列
CREATE SEQUENCE emp_sequence --序列名
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
select emp_sequence.nextval from dual;--走到下一个序列
select emp_sequence.currval from dual;--当前在哪个值
5、匹配数字
SELECT translate('12223aaa','/1234567890','/')
FROM dual ;
未完