A. oracle中如何insert
只能一条一条的写,不能用一条语句insert多条。
当然你可以手写到excel里,再在plsql里粘贴进去。
如果记录多的话也可以研究研究数据导入。
B. 我是一个初学者,如何向oracle数据库表中插入数据
工具/材料:电脑,oracle数据库表
1.例test表中有如下数据。
C. oracle数据库delete影响insert吗
影响的情况主要看数据规模和并发量,如果是小型应用可以忽略不计。不过,delete最好改为标记删除,在清理数据库的时候统一操作。
D. oracle 怎么insert数据
insert into 表名 values (字段1对应的值, 字段2对应的值2, 字段3对应的值, ・・・・);
这样写试一下。
E. Oracle数据库一次执行大量的insert语句,怎样优化
1、原来表里有多少数据,考虑是否可以删除或失效索引?插入后重建
2、在业务空闲时,利用APPEND和PARALLEL进行插入
3、也可以设置每1W条记录进行提交
F. oracle 数据库在 insert 时能用函数吗
这个完全可以,关键是看你用的这个函数返回值类型是否符合你要插入的对应字段的类型。举例如:
insert into emp(empno,empname) values(100,substr('',1,5));
等会,你说的是在into 部分吗?那肯定不行,insert into后接表名,括号内必须是表内字段。
G. 我用Oracle数据库建了一个表,在插入数据的时候显示第一行insert语句违反唯一约束条件,这是怎么回事啊
那是你的第一行记录已经在表中存在了!可以使用一下语句验证:
select * from xs where xh = '061101';
oracle不支持上面格式的插入。
建议用格式插入工具,间每行数据之前插入insert into xs values
之后替换,为;就可以了。
H. oracle数据库中nvl可以用于insert语句中吗
可以。
但是要看是怎么用,要是在values后面,那么我就不是十分确定了,毕竟没这么用过,你可以试试。
如果是insert select语句那么肯定是可以用的。
其实这种没必要用nvl,你可以在建立表的时候在相应字段设置一个默认值(default),如果插入值为null(或没有相应的插入值),那么就会自动转成默认值,根本用不到nvl函数的。
I. Oracle中插入数据
前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束。
insert into tab1 select * from tab2; commit;
这是最基础的insert语句,我们把tab2表中的数据insert到tab1表中。根据经验,千万级的数据可在1小时内完成。但是该方法产生的arch会非常快,需要关注归档的产生量,及时启动备份软件,避免arch目录撑爆。
alter table tab1 nologging;
insert /*+ append */ into tab1 select * from tab2;
commit; alter table tab1 logging;
该方法会使得产生arch大大减少,并且在一定程度上提高时间,根据经验,千万级的数据可在45分钟内完成。但是请注意,该方法适合单进程的串行方式,如果当有多个进程同时运行时,后发起的进程会有enqueue的等待。注意此方法千万不能dataguard上用,不过要是在database已经force logging那也是没有问题的。
insert into tab1 select /*+ parallel */ * from tab2; commit;
对于select之后的语句是全表扫描的情况,我们可以加parallel的hint来提高其并发,这里需要注意的是最大并发度受到初始化参数parallel_max_servers的限制,并发的进程可以通过v$px_session查看,或者ps -ef |grep ora_p查看。
alter session enable parallel dml;
insert /*+ parallel */ into tab1 select * from tab2; commit;
J. Oracle数据库Sql中insert语句的操作问题。
你这个insert all语法不对,少了values关键字,后面还有个sql可以查出数据,insert all 不会创建表,因此涉及到的表是事先建好的
insert first 的的后面跟了很多的when语句,first意思是先从sql结果里拿出第一条,来与多个when比较,只要找到符合条件的这一条,下面的when都不会去执行,直接中止了when,再从sql结果中拿第二条,重新从第一个when开始判断,找到第一个符合的就中止下面的when
insert all是把sql所有结果行与所有when进行判断,只要符合的都执行
insert all (or first)用法很灵活,给你其中一个例子
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;
这个例子是从Sales_source_data表里查询出数据插入到Sales_info,简单说来说是进行了行、列转换
Sales_source_data可能有(EMPLOYEE_ID, week_id, sales_MON, sales_TUE,
sales_WED, sales_THUR,sales_FRI)用来在一行里显示某人在某一周的五天里的sales
Sales_info只有3个字段(employee_id,week_id,sales),用来在至少5行里显示某人在某一周里的sales