[20170918]exp 直接路径导出.txt

[20170918]exp 直接路径导出.txt

--//昨天看链接blogs.oracle.com/database4cn/%e5%af%b9%e4%ba%8e%e4%b8%80%e4%b8%aa%e9%9d%9e%e7%a9%ba%e5%ad%97%e6%ae%b5%e5%ae%9a%e4%b9%89%e7%9a%84%e8%a1%a8%e5%af%bc%e5%87%ba%e5%90%8e%ef%bc%8c%e5%86%8dimp%e6%97%b6%e5%80%99%e6%8a%a5%e9%94%99ora-01400%3a-cannot-insert-null-into-xxx-%e4%b8%ba
--//重复测试:

1.环境:

SCOTT@test01p> @ ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.1.0.1.0     Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

create table t ( a number);
insert into t values(1);
insert into t values(2);
insert into t values(3);
commit;

alter table t add ( c number default 10 not null);

--//注:11g这样并不修改块,而且执行非常快.

2.测试导入导出:

D:\tools\rlwrap>exp scott/btbtms@test01p tables=t file=t.dmp
exp scott/btbtms@test01p tables=t file=t.dmp
Export: Release 12.1.0.1.0 - Production on Mon Sep 18 21:53:54 2017
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path ...
. . exporting table                              T          3 rows exported
Export terminated successfully without warnings.

SCOTT@test01p> alter table t rename to t1;
Table altered.

D:\tools\rlwrap>imp scott/btbtms@test01p full=y ignore=Y file=t.dmp
imp scott/btbtms@test01p full=y ignore=Y file=t.dmp
Import: Release 12.1.0.1.0 - Production on Mon Sep 18 21:54:54 2017
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Export file created by EXPORT:V12.01.00 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing SCOTT's objects into SCOTT
. importing SCOTT's objects into SCOTT
. . importing table                            "T"          3 rows imported
Import terminated successfully without warnings.

3.测试使用直接路径导出:
SCOTT@test01p> drop table t purge;
Table dropped.

SCOTT@test01p> alter table t1 rename to  t;
Table altered.

D:\tools\rlwrap>rm t.dmp

D:\tools\rlwrap>exp scott/btbtms@test01p tables=t file=t.dmp direct=y
exp scott/btbtms@test01p tables=t file=t.dmp direct=y
Export: Release 12.1.0.1.0 - Production on Mon Sep 18 21:56:11 2017
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Direct Path ...
. . exporting table                              T          3 rows exported
Export terminated successfully without warnings.

SCOTT@test01p> alter table t rename to t1;
Table altered.

D:\tools\rlwrap>imp scott/btbtms@test01p full=y ignore=Y file=t.dmp
imp scott/btbtms@test01p full=y ignore=Y file=t.dmp
Import: Release 12.1.0.1.0 - Production on Mon Sep 18 21:56:56 2017
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Export file created by EXPORT:V12.01.00 via direct path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing SCOTT's objects into SCOTT
. importing SCOTT's objects into SCOTT
. . importing table                            "T"
IMP-00019: row rejected due to ORACLE error 1400
IMP-00003: ORACLE error 1400 encountered
ORA-01400: cannot insert NULL into ("SCOTT"."T"."C")
Column : 1
Column :
IMP-00019: row rejected due to ORACLE error 1400
IMP-00003: ORACLE error 1400 encountered
ORA-01400: cannot insert NULL into ("SCOTT"."T"."C")
Column : 2
Column :
IMP-00019: row rejected due to ORACLE error 1400
IMP-00003: ORACLE error 1400 encountered
ORA-01400: cannot insert NULL into ("SCOTT"."T"."C")
Column : 3
Column :           0 rows imported
Import terminated successfully with warnings.

4.说明:
--//转抄:
从以上的测试来看,当对某一个已经存在数据的表进行了新增了非空+default字段之后,实际上11g因为避免把所有block都修改一遍,所
以并没有真正的update底层数据,而是直接修改了数据字典。这样的好处显而易见,alter 表非常快,不会长时间持有library cache
lock。执行sql查询这个新字段的时候,对于老的数据sql引擎会自动从数据字典里面把default读出来,对于新的数据就直接读取磁盘上
的数据,但是当exp导出的时候,若是采用direct=y,因为跳过sql层,所以直接读取了block,所以老数据的block里面因为没有这个字段
当然最终被处理成null插入新表,所以就出现了上述的问题。那么这个问题解决的办法也很简单,就是采用常规形式导出,避免使用
direct=y,另外oracle 在10g之后就推荐使用expdp+impdp,这套新工具也能避免这个问题。

时间: 2024-07-30 10:58:54

[20170918]exp 直接路径导出.txt的相关文章

传统路径导出 VS 直接路径导出(oracle exp direct=y)

      Oracle 传统的Export与Import依旧被保留到11g,而且9i与10g有很多依旧使用Export与Import方式进行备份与恢复的企业.从Oracle 7.3开始,传统的exp导出程序提供两种的导出路径方式,一个是传统路径导出(Conventional Path Export),一个是直接路径导出(Direct Path Export).本文即是因最近客户的传统导入导出性能问题对此进行描述.   1.两者的差异    a. Conventional path Export

oracle数据泵不同工作方式性能比较(三)测试直接路径导出、导入方式

根据Oracle的文档的描述,数据泵采用不同的方式导出导入,性能也会有明显的差别,这次正好有机会测试一下,迁移表空间.直接路径.外部表方式,以及数据库链方式导出.导入的性能差异. 这篇测试直接路径导出.导入方式. 首先清除上一篇文章中导入的用户和表空间,并重新建立测试用户和表空间. SQL> DROP USER TJSQ_NDMAIN CASCADE; User dropped. SQL> DROP USER TJSQ_TRADE CASCADE; User dropped. SQL>

Java导出txt文件的方法

  本文实例讲述了Java导出txt文件的方法.分享给大家供大家参考.具体如下: 例子一 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 /** * export导出文件 */ @RequestMapping(value="/grab/e

js导出txt示例代码

 很多新手朋友们都不知道js怎么导出txt,下面有个不错的示例,大家可以参考下 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <html xmlns="http://www.w3.org/1999/xhtml" lang="en&qu

如何把LISTBOX最后一条内容保存到指定路径的TXT文件,软件启动后TEXTBOX显示被保存的最后一条内容

问题描述 如何把LISTBOX最后一条内容保存到指定路径的TXT文件,软件启动后TEXTBOX显示被曾经被保存的最后一条内容 解决方案 解决方案二:搜索下,CSDN中已经有人提问过了解决方案三:是吗!我想要自动保存,不需要OPEN,可以实现吗?读取也一样,希望有好心人帮帮新手吧

net datatable导出txt-.net dataTable导出txt问题,在线等。

问题描述 .net dataTable导出txt问题,在线等. dataTable导出txt 一下是我的代码 private static void ExportTxt(DataTable dt, string fileName) { HttpContext.Current.Response.Clear(); string FileName = fileName + ".txt"; HttpContext.Current.Response.Buffer = true; HttpCont

如何导出txt或者Exel

问题描述 一:Winform中有一个DataGridView,点击button导出TXT或者EXEL请教各位大大如何实现,最好提供源码谢谢.二:DataGridView中标题都是数据库中的属性名,如何变成中文的比如Name在DataGridView让他显示名字 解决方案 解决方案二:可以直接使用ReportViewer控件自带的按钮生成Excel文件,也可以使用如下代码来完成操作:C#codeMicrosot.Reporting.WinForms.Warning[]Warnings;string

JS基于FileSystemObject创建一个指定路径的TXT文本文件_javascript技巧

本文实例讲述了JS基于FileSystemObject创建一个指定路径的TXT文本文件.分享给大家供大家参考.具体如下: Js创建一个指定路径的TXT文本文件,创建一个新的new ActiveXObject对象,使用这个对象的CreateTextFile方法来创建一个指定路径的TXT文本文件,简单吧? 在IE浏览器上运行该实例会有对应的安全提示,选择"允许阻止的内容",使程序正常运行即可.如下图所示: 文本文件创建成功后提示如下: 若文本文件已存在,则有如下提示: 具体代码如下: &l

[20171120]11G关闭直接路径读.txt

[20171120]11G关闭直接路径读.txt --//今天做filesystemio_options参数测试时,遇到一个关于直接路径读的问题. --//如果看以前的博客介绍,设置"_serial_direct_read"=never或者events '10949 trace name context forever';就可以关闭直接路径读. --//我的测试在11GR2下set events '10949 trace name context forever';不行. --//通过