merge
merge into copy_emp ce using emp e
on (ce.empno = e.empno)
when matched then
update set
ename = e.ename
when not matched then
insert (empno, ename)
values(e.empno, e.ename)
注: merge 也属于 dml 操作, 所以操作之后需要进行 commit;
merge 使用注意事项: oracle 9i 版本, 你必须要写全 matched 和 not matched 分支, oracle 10g 以后, 如果你只想确认插入, 那么就直接 when not matched 就可以了, 可以忽略 when matched, 另外, when matched update set .. 这里不能修改连接条件, 即除了连接条件的列意外的列, 可以被修改.
escape 转义字符
SELECT * FROM copy_emp
where ename like 'XAA\_%' ESCAPE '\'
Hierarchical retrieval ( 树形 )
1: SELECT [LEVEL], column, expr...
2: FROM TABLE
3: [WHERE conditions]
4: [START WITH conditions]
5: [CONNECT BY PRIOR conditions]