oracle同时向多表插入数据
单表插入以insert into开头,不能有then into语句.
多表插入以insert first/all 开头,可以有then into语句
在Oracle操作过程中经常会遇到同时向多个不同的表插入数据,此时用该语句就非常合适。
All表示非短路运算,即满足了第一个条件也得向下执行查看是否满足其它条件,而First是短路运算找到合适条件就不向下进行。
INSERT ALL
WHEN prod_category=’B’ THEN
INTO book_sales(prod_id,cust_id,qty_sold,amt_sold)
VALUES(product_id,customer_id,sale_qty,sale_price)
WHEN prod_category=’V’ THEN
INTO video_sales(prod_id,cust_id,qty_sold,amt_sold)
VALUES(product_id,customer_id,sale_qty,sale_price)
WHEN prod_category=’A’ THEN
INTO audio_sales(prod_id,cust_id,qty_sold,amt_sold)
VALUES(product_id,customer_id,sale_qty,sale_price)
SELECT prod_category ,product_id ,customer_id ,sale_qty
,sale_price
from sales_detail;
Merging Rows into a Table
MERGE INTO oe.product_information pi
USING (SELECT product_id, list_price, min_price
from new_prices) NP
ON (pi.product_id = np.product_id)
WHEN MATCHED THEN UPDATE SET pi.list_price =np.list_price
,pi.min_price = np.min_price
WHEN NOT MATCHED THEN INSERT (pi.product_id,pi.category_id
,pi.list_price,pi.min_price)
VALUES (np.product_id, 33,np.list_price, np.min_price);
相关文档:
我在oracle 9i的环境下开发了occi的应用,结果放到10g(10.2.0.3)服务器上运行不了(只装了windows 版的10g服务端),只好把所有依赖的9i的dll拷过去,结果连接occi报错:
Error while trying to retrieve text for error ORA-32101
到http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.ht ......
Oracle管理与维护.数据库登录的身证验证
草木瓜
20080505
一、写在前面
曾经并不知道conn / as sysdba为何物,在unix下搞了半天方知,还需要加上"号,Oracle 10g里
终于也考虑到了这个问题,不再受到" as sysdba "的限制。
如下所示:
[oracle@liwei admin]$ sqlplus / as sysdba
......
冷拷备了一个原有数据库,要把他移植到新的数据库中时,要注意一下:
1.Oradim -new -sid [实例名:demo] -intpwd [PWD] -pfile= [要创建实例的配置文件:*.ora]
2.set Oracle_SID=[实例名](装完后记得要在注册表里加上:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1:ORACLE_SID,值为实例名。)
3.sql ......
create table test1 as select 1 id,'create table test2(id number,name varchar2(200));insert into test2 values(1,''a'');' sqltext from dual
2 union all select 2,'truncate table test2;' from dual
3 union all select 3,'insert into test2 select rownum,dbms_random.string(''l'', ......