今天我用pl/sql往oracle中插入数据的是时候,不知道为什么数据总是莫名的会在某个地方停止。
我导入的是别人导出的sql语句。
他导出的都是sql,所以我直接打开的pl/sql,命令窗口,直接把他导出的sql语句直接复制粘贴。
我觉的这种方法没有错啊,为什么这样说那,主要是,上周的时候也是这么导入的就没有事情。
现在的数据库表和原来的区别就在于,表就变了一个字段,缴款日期改为日期型的了。其他的都没有变,。由于数据量很大。我今天插入了3遍。这是第3遍,还是会莫名其妙的在某个地方卡主。卡住后,再敲回车就没有反应了。
这是怎么回事那,PS:
在插入之前,我已经把原来的数据和表空间还有用户都删除了。不存在重复问题。大侠求救,这是为什么啊,我在线等。

解决方案 »

  1.   

    数据量太大了吧 要分批插入 执行commit 再做下次操作
      

  2.   

    给出详细的情况。比如SQL脚本及数据量。PL/SQL里SQL窗执行时,没法敲回车。如果是命令窗,描述详细症状。
      

  3.   

    分批次执行插入,每批执行完毕直接commit,每批建议数据条数不超过100条。遇到日期的要用to_date转换成日期型
      

  4.   

    就是这个字段值引起的啊。你改成日期型的了啊,那么你搜索下日期数据, 将原来的字符串数据改成to_date('','yyyy-mm-dd hi24:mm:ss')吧,ok?
      

  5.   


    还有一个笨办法啊:1,你把缴费日期字段恢复为varchar2字段类型啊。
       然后导入,导入完毕之后,执行:2,--新增加一列缴款日期2备份字段
    alter table tb1 add jiaokuanriqi2 datetime.3,--把varchar类型缴款日期1的数据变成缴款日期1的datetime类型。
    update tb1 set jiaokuanriqi2 =to_date(jiaokuanriqi1,'yyyy-mm-dd hi24:mm:ss');4,--删除varchar类型的jiaokuanirqi1字段
    alter table tb1 drop column jiaokuanriqi1;5,--新增一列日期数据jiaokuanriqi1
    alter table tb1 add jiaokuanriqi1 datetime.6,--将备份字段数据赋值给缴款日期字段
    update tb1 set jiaokuanriqi1=jiaokuanriqi2;7,--然后,删除备份字段
    alter table tb1 drop column jiaokuanriqi2;
      

  6.   

    insert一段代码后,要提交代码commit 
      

  7.   

    6楼的方法已经可以帮到你了,先建一个栏位,然后再用另外一个DATE类型的本栏位取代,或INSERT 部分后就COMMIT.