> 唯美句子 > oracleinsertinto脚本

oracleinsertinto脚本

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 [(column1,column2,...)] VALUE (value1,value2,...)

例子:

insert into dep (dep_id,dep_name) values(1,'技术部');

2, 无条件 Insert all --多表多行插入

语法:

INSERT [ALL] [condition_insert_clause]

[insert_into_clause values_clause] (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 [ALL | FIRST]

WHEN condition THEN insert_into_clause values_clause

[WHEN condition THEN] [insert_into_clause values_clause]

......

[ELSE] [insert_into_clause values_clause]

Subquery;

示例:

Insert All

when id>5 then into z_test1(id, name) values(id,name)

when id2 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中insert语句怎么嵌入select

insert into select可以将select 出来的N行(0到任意数)结果集复制一个新表中,select into

from只能将"一行"结果复制到一个变量中。这样说吧,select into是PL/SQL language

的赋值语句。而前者是标准的SQL语句。

做一个测试看两者差别。

首先创建两个表,一个作为源表,一个作为目标表。

create table t_source(

id number primary key,

testname varchar2(20),

createtime date,

flag varchar2(10)

);

create table t_target(

id number primary key,

testname varchar2(20),

createtime date,

flag varchar2(10)

);

接着,插入测试数据

insert into t_source values(1,'测试数据1....1',sysdate-2,'N');

insert into t_source values(2,'测试数据1....2',sysdate-2,'N');

insert into t_source values(3,'测试数据1....3',sysdate-2,'N');

commit;

测试insert into select 操作

insert into test2 select * from t_source where id=1;

commit;

测试select into 操作

因为select into是一个plsql语言中的复制语句,和:=实现的目标一样。

create or replace procedure sp_sync_test is

aa varchar2(100);

v_record t_source%rowtype;

begin

select t1.testname into aa from t_source t1 where id = 1;

dbms_output.put_line('普通变量 t1.testname= ' || aa);

select t1.* into v_record from t_source t1 where id = 1;

dbms_output.put_line('记录变量 t1.testname= ' || v_record.testname);

end;

这里增加了原始类型的变量和记录类型的变量

oracle能不能根据已经存在的数据生成对应的INSERT 语句?

当然可以了,plsql里边就有这个功能啊,把数据导出为insert脚本,看图片

Oracle中如何用一条insert into 语句插入多条数据 如: insert into 表 values(多条数据)????????

insert into tablea select xx from tableb

select xx from tableb返回的记录为几条就插入几条

oracle 多条insert语句 应该用什么符号隔开

注意分号是拼音输入法的分号(非中文输入法),sql语句都是以分号结束这是规定。如果确认分号正确还报错的话,那就是sql语句本身的问题,插入的值是否与定义字段的类型一致,插入的值是否与addd表的字段顺序对应,是否与addd表的字段个数一致

oracle 怎么知道insert语句插入了几行

sql%found,sql%notfound,sql%rowcount

在执行DML(insert,update,delete)语句时,可以用到以下三个隐式游标(游标是维护查询结果的内存中的一个区域,运行DML时打

开,完成时关闭,用sql%isopen检查是否打开):

sql%found (布尔类型,默认值为null)

sql%notfound(布尔类型,默认值为null)

sql%rowcount(数值类型默认值为0)

sql%isopen(布尔类型)

参考下,望采纳。

oracle如何根据条件插入呢?比如插入一条记录是insert into...,那加条件该如何加呢?求一完整例子

如何根据条件插入 ?

你是不是要有这样的需求呀:

如果

数据不存在,那么执行插入的操作。

数据已经存在, 那么就不插入(可能是只做更新处理, 也可能什么事情都不干)

下面是一个例子代码:

-- 源表

CREATE TABLE test_from (id INT, val VARCHAR(20));

-- 目标表

CREATE TABLE test_to (id INT, val VARCHAR(20));

-- 插入源表

INSERT INTO test_from VALUES (1, 'A');

INSERT INTO test_from VALUES (2, 'B');

-- 合并 源表到目标表

MERGE INTO test_to

USING test_from

ON ( test_to.id = test_from.id )    -- 条件是 id 相同

WHEN MATCHED THEN UPDATE SET test_to.val = test_from.val   -- 匹配的时候,更新

WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入

-- 第一次检查 目标表数据.

SQL> SELECT * FROM test_to;

ID VAL

---------- --------------------

1 A

2 B

-- 更新源表

UPDATE test_from SET val = 'A2' WHERE id = 1;

-- 删除源表

DELETE FROM test_from WHERE id = 2;

-- 插入源表

INSERT INTO test_from VALUES (3, 'C');

-- 合并 源表到目标表

MERGE INTO test_to

USING test_from

ON ( test_to.id = test_from.id )    -- 条件是 id 相同

WHEN MATCHED THEN UPDATE SET test_to.val = test_from.val   -- 匹配的时候,更新

WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入

-- 再次检查 目标表数据.

SQL> SELECT * FROM test_to;

ID VAL

---------- --------------------

1 A2

2 B

3 C

oracle表里有约束如何写insert语句

你只要遵守约束就行了,比如不能为空,主键、唯一性、外键、check等

oracle生成insert语句的存储过程怎么写

其实SQL Developer、Toad、PL/SQL Developer都有导出为insert语句的SQL文件形式。

如果你非要自己写、其实就是select语句用||拼接字符串:

select 'insert into JZ31.TCL_CUSTBASEINFO(colStr,colNum)values('''||colStr||''','||colNum||')'

from JZ31.TCL_CUSTBASEINFO;

碰到日期字段还要拼好to_date函数。

oracle语句insert into select如何加后续插入条件

A中有3例,B表中你只能获得2列,可以用常量占位解决

insert into tableA (列1,列2,列3) select 列1,列2,常量 from tableB

例:如下

insert into tableA (列1,列2,列3) select 列1,列2,'123' from tableB 【字符串常量】

insert into tableA (列1,列2,列3) select 列1,列2,123 from tableB 【数值常量】

【希望可以帮到你】