oracle数据库一次性最多可以添加几条记录?为啥我insert最多5百到6百呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库一次性最多可以添加几条记录?为啥我insert最多5百到6百呢?相关的知识,希望对你有一定的参考价值。
出现了这个错误
看一下你的undo表空间的大小。insert 是dml操作,需要写undo表空间的,你的undo表空间不够就会出现这种情况,可以扩大undo表空间,不过建议insert大量数据的话还是分段commit提交一下比较好,免得占用太大的undo表空间,另外如果记录大到数千万甚至上亿可以考虑使用sqlload的方式载入。追问网页抓取往数据库写入的时候是不是只能插入500多条,报了个错误,
这个和应用有关了,不是数据库的问题, 几百条数据也不会导致数据库undo空间不够用的,查看你的应用。 百度一下got minus one from a read call的解决办法
参考技术A 1. 未提交的数据存在数据库缓存区,如果出错误(建议贴具体错误),可能需要增大缓存设置2. 如果应用逻辑上可行,建议上万条记录也分为每千次commit一次,以避免过大的缓存开销 参考技术B 应该没有限制的。你的程序里确定没限制吗
你换成insert into select 的写法在oracle里单独执行一下试试看追问
一条一条的执行都可以,一起执行的时候出问题了
参考技术C 扩大你的undo表空间大小试试,初步估计应该是你的undo表空间不足Oracle查询前几条数据的方法
在Oracle中实现select top N:
由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum
的组合来实现select top n的查询。
简单地说,实现方法如下所示:
select 列名1 ...列名n from
(
select 列名1 ...列名n
from 表名 order by 列名1
)
where rownum <=N(抽出记录数)
order by rownum asc
如:select id,name from (select id,name from student order by name) where rownum<=10 order by rownum asc
按姓名排序取出前十条数据
附:取100-150条数据的方法
1. 最佳选择:利用分析函数
row_number() over ( partition by col1 order by col2 )
比如想取出100-150条记录,按照tname排序
select tname,tabtype from (
select tname,tabtype,row_number() over ( order by tname ) rn from tab
) where rn between 100 and 150;
2. 使用rownum 虚列
select tname,tabtype from (
select tname,tabtype,rownum rn from tab where rownum <= 150
) where rn >= 100;
引用原文:http://www.cnblogs.com/yangxia-test/archive/2012/09/20/2695617.html
写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,文章可以转载,无需版权。希望尽自己的努力,做到更好,大家一起努力进步!
如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!
以上是关于oracle数据库一次性最多可以添加几条记录?为啥我insert最多5百到6百呢?的主要内容,如果未能解决你的问题,请参考以下文章