oracle中into的用法(oracle insert into 脚本怎么写)

本文目录
- oracle insert into 脚本怎么写
- Oracle plsql 怎么用returning into
- oracle plsql 如何into多条记录
- oracle有select into临时表的用法吗
- oraclemergeinto用法及例子
oracle insert into 脚本怎么写
INSERT INTO BOOK(bookid,name,price) VALUES(’100123’,’oracle ’,54);
或者
INSERT INTO tablename(bookid,name,price)
SELECT ’100123’,’oracle,54 FROM DUAL;
总结下Oracle 中的Insert用法
1.标准Insert --单表单行插入
语法:
INSERT INTO table VALUE (value1,value2,...)
例子:
insert into dep (dep_id,dep_name) values(1,’技术部’);
2, 无条件 Insert all --多表多行插入
语法:
INSERT
(subquery)
示例:
INSERT ALL
INTO sal_history(emp_id,hire_date,salary) values (empid,hiredate,sal)
INTO mgr_history(emp_id,manager_id,salary) values (empid,hiredate,sal)
SELECT employee_id empid,hire_date hiredate,salary sal,manager_id mgr
FROM employees
WHERE employee_id》200;
3,有条件的Insert
语法:
INSERT
WHEN condition THEN insert_into_clause values_clause
......
Subquery;
示例:
Insert All
when id》5 then into z_test1(id, name) values(id,name)
when id《》2 then into z_test2(id) values(id)
else into z_test3 values(name)
select id,name from z_test;
4, 旋转Insert (pivoting insert)
create table sales_source_data (
employee_id number(6),
week_id number(2),
sales_mon number(8,2),
sales_tue number(8,2),
sales_wed number(8,2),
sales_thur number(8,2),
sales_fri number(8,2)
);
insert into sales_source_data values (176,6,2000,3000,4000,5000,6000);
create table sales_info (
employee_id number(6),
week number(2),
sales number(8,2)
);
示例如下:
insert all
into sales_info values(employee_id,week_id,sales_mon)
into sales_info values(employee_id,week_id,sales_tue)
into sales_info values(employee_id,week_id,sales_wed)
into sales_info values(employee_id,week_id,sales_thur)
into sales_info values(employee_id,week_id,sales_fri)
select employee_id,week_id,sales_mon,sales_tue,
sales_wed,sales_thur,sales_fri
from sales_source_data;
Oracle plsql 怎么用returning into
我写过一个存储过程,其中用到了returning into 希望给你点思路
该存储过程执行插入一个图像文件的操作,对应的字段名为 Data_Image,
create or replace procedure proc_InsertTest
(fVOLTAGE IN NUMBER,bIMAGE_DATA OUT BLOB )
is
begin
insert into Table-test(BATTERY_VOLTAGE,Data_Image)
values ( fVOLTAGE,empty_blob() )
RETURNING Data_Image INTO bIMAGE_DATA ; --使用了returning into
EXCEPTION
WHEN OTHERS THEN
ROLLBACK ;
end proc_InsertTest;
oracle plsql 如何into多条记录
方法倒是有:就是用DBMS_SQL这个包,它有几个函数与存储过程,可以根据表名,查询出表中的列的名称,列的数据类型(不过这个要转换,因为直接得到的结果是数字),然后根据列查询出列上的值.
网上很多这个包的资料.
如果说你是要获得表上的所有字段的话,相对来说还是比较简单的.
反正你看看有关这个包的使用之后,你就会发现解决这个问题很容易的.
我的思路就是:
写一个存储过程,一个参数是表名,表名是in类型 ,另一个参数是sys_cursor类型的out 参数.这样就可以了.如果你想直接要过程的话,你说声我写给你,不过有点麻烦,由于没多少分就说这些了.
我觉得还是你自己学会使用dbms_sql这个包比较好,因为以后可能还会用到这个包的时候.对这种不确定的东西,不用这个包是不行的
oracle有select into临时表的用法吗
1、创建空表
create table a_tmp as select * from a where 1=2;
2、实例
insert into a_tmp select * from a where create_time 》 sysdate-1;
oraclemergeinto用法及例子
ORACLE I中加入了MERGE
语法
MERGE
USING
ON ( condition )
WHEN MATCHED THEN merge_update_clause
WHEN NOT MATCHED THEN merge_insert_clause;
创建测试数据表
create table tj_test(id number name varchar ( ) age number);
向表中插入数据
insert into tj_test values ( jan );
insert into tj_test values ( kk );
insert into tj_test values ( joe );
select * from tj_test;
查询结果如下
jan
kk
joe
创建另一新表
create table tj_test as select * from tj_test where =
插入一条数据
insert into tj_test values ( jlk );
select * from tj_test
查询结果如下
jkl 注意 这里的的NAME字段中的值是jkl
使用MERGE 实现有则更新 无则插入 sql语句如下
merge into tj_test tt
using tj_test tt
on (tt id=tt id)
when matched then
update set
tt name=tt name
tt age=tt age
when not matched then
insert values(
tt id
tt name
tt age)
查询tj_test 表(对比原来表中的数据 更新了ID= ROW中字段NAME 同时多出两条新数据)
select * from tj_test
改变行数据如下
jan 这里的原有jkl值被更新
joe 原来表中没有的插入
kk 原来表中没有的插入
如果存在就更新 不存在就插入
i已经支持了 是Merge 但是只支持select子查询
如果是单条数据记录 可以写作select …… from dual的子查询
语法为
MERGE INTO table
USING data_source
ON (condition)
WHEN MATCHED THEN update_clause
WHEN NOT MATCHED THEN insert_clause;
如:
MERGE INTO course c
USING (SELECT course_name period
course_hours
FROM course_updates) cu
ON (urse_name = urse_name
AND c period = cu period)
WHEN MATCHED THEN
UPDATE
SET urse_hours = urse_hours
WHEN NOT MATCHED THEN
INSERT (urse_name c period
urse_hours)
VALUES (urse_name cu period
lishixinzhi/Article/program/Oracle/201311/18285
更多文章:
unlikely(not likely和unlikely含义一样吗)
2025年10月23日 20:45
kindeditor 在dialog中居中(在Iframe中使用jquery ui dialog 怎么使弹出窗口居于浏览器中间)
2025年7月27日 23:15
ASP.NET MVC 4框架揭秘:Controller类型的缓存?RxCache缓存框架
2026年6月1日 06:00
java编程工具免费(请问java编写程序除了用eclipse,还可以用什么我主要是想做web前端的,有没有什么视图化的软件啊)
2025年8月4日 12:30
memcached性能(PHP中4个加速,缓存扩展的区别和选用建议)
2025年9月8日 08:45
2 3表示什么python(python语句:print(*[1,2,3]),是什么意思)
2026年8月14日 22:30
java下载了打不开(为什么下载了java也玩不了我的世界)
2026年5月17日 05:15
timeformat函数(GetTimeFormat怎么用,各个参数尤其是最后一个有点看不懂)
2025年11月13日 04:30
sqlite3规则(sqlite3数据库 运行一段时间后 命令行操作出现:Error:unsupported file format)
2025年10月25日 22:45
extensional mentality的意思(mentality是什么意思)
2026年1月6日 13:00











