oracle 需要注意的地方
INSERT /*+APPEND */ INTO employee (empno,ename,sal,deptno)
SELECT empno,ename,sal,deptno from emp
WHERE deptno=20;
第二条语句使用/*+APPEND */来表示采用直接装载方式,当要装载大批量数据时,采用第二种方法装载数据的速度要远远优于第一种方法。
使用多表插入数据
使用ALL操作符执行多表插入时,在每个条件子句上都要执行INTO子句后的子查询//意思好像是说下面插入时要执行四次SELECT了 看来效率上不高啊 慎用
INSERT ALL
WHEN deptno=10 THEN INTO dept10
WHEN deptno=20 THEN INTO dept20
WHEN deptno=30 THEN INTO dept30
WHEN job='CLERK' THEN INTO clerk
ELSE INTO other
SELECT * from emp;
使用FIRST 操作符执行多表插入
当使用FIRST操作符执行多表插入时,如果数据已经满足了先前条件,并且已经被插入到某表,那么该行数据在后续插入中将不会被再次使用 //这个效率会很快
INSERT FIRST
WHEN deptno=10 THEN INTO dept10
WHEN deptno=20 THEN INTO dept20
WHEN deptno=30 THEN INTO dept30
WHEN job='CLERK' THEN INTO clerk
ELSE INTO other
SELECT * from emp
在更新 插入时date数据 最好用TO_DATE函数进行处理一下
update 语法
UPDATE<table|view>
SET<column>=<value>[,<column>=<value>]
[WHERE <condition>];
UPDATE emp SET (job,sal,comm)=(SELECT job,sal,comm from emp='SMITH') WHERE ename='SCOTT'
delete 语法
DELETE from <table|view> [WHERE<condition>]
设置保存点
savepoint a;
exec dbms_transaction.savepoint('a');
取消部门事务
roolback to a ;
exec dbms_transaction.rollback_savepoint('a')
注意当设置只读事务时,该语句必须是事务开始的第一条语句,另外在应用程序中 使用过程READ_ONLY也可以设置只读事务
SET TRANSACTION READ ONLY;
or
exec dbms_transaction.read_only
顺序事务
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
相关文档:
1. 检查Oracle的进程
$ ps -ef|grep "ora_"|grep -v grep
oracle 5998 1 0 11:15:59 ? 0:01 ora_j000_PPRD10
oracle 2968 1  ......
方法一:
----------------------------------------------------------------
---Muti-row to line(col2row)
----------------------------------------------------------------
create or replace type str_tab is table of varchar2(20);
/
grant all on str_tab to public;
create public synonym str_tab for ......
2009-04-22 22:00
来源:中国
IT
实验
室 作者:佚名
Oracle
客
户
端与服
务
器端的
连
接是通
过
客
户
端
发
出
连
接
请
求,由服
务
器端
监
听器
对
客
户
端
连
接
请
求
进
行合法
检查
,如果
连
接
请
求有效,
则进
行
连
接,否
则
拒
绝该连
接。 ......