您现在的位置是:首页 >

手机软件卸载了数据还在吗 Oracle10g新特性:利用外部表卸载数据

火烧 2022-02-13 13:15:33 1069
Oracle10g新特性:利用外部表卸载数据   今天在看Oracle的CONCEPT文档时发现 Oracle的外部表也可以用来卸载数据了   从 中开始 Oracle增加了外部表的一个新的访问驱动

Oracle10g新特性:利用外部表卸载数据  

  今天在看Oracle的CONCEPT文档时发现 Oracle的外部表也可以用来卸载数据了

  从 中开始 Oracle增加了外部表的一个新的访问驱动 ORACLE_DATAPUMP 而再次之前 只有一个默认的驱动ORACLE_LOADER

  使用ORACLE_DATAPUMP驱动 带来的一个优点是 可以利用外部表将数据库中的数据卸载到磁盘文件中 而这是 及以前版本所无法做到的

  下面看一个最简单的例子

    SQL> CREATE TABLE T_EXTERNAL     (     ID     NAME     )     ORGANIZATION EXTERNAL     (     TYPE ORACLE_DATAPUMP     DEFAULT DIRECTORY D_OUTPUT     LOCATION( TEST DMP )     )     AS SELECT ROWNUM RN  TNAME     FROM TAB;   

  表已创建   在这张外部表创建的同时 在D_OUTPUT所指向的操作系统目录下 生成了一个TEST DMP二进制文件   显示这个二进制文件中的可显示字符

    $ strings TEST DMP    IBMPC/WIN_NT     ZHS GBK    LBB EMB GHC JWD SD EBE WMF DDG JG SJH SRH JGK CL EGM BJM RAP RLP RP KR PAR MS MRS JLS CET HLT         T                        ZHS GBK    AL UTF     + :     YANGTK    T_EXTERNAL              ID                                                 NAME                                       T_LOG<    TEST_LOB<    T_PRESS<    T_TEMP <    T_RECORD<    T_SESSION_STAT<    T_TEMP<    T_NO_EXISTS_BEFORE<    T_CHAR<    SYS_EXPORT_SCHEMA_ <    T_EXTERNAL<    T_LOAD_SPACE<    T_LEVEL<    T_LEVEL <    CHAINED_ROWS<    T_TREE  

手机软件卸载了数据还在吗 Oracle10g新特性:利用外部表卸载数据

  这个二进制文件可以用于在其他数据库中创建外部表

   SQL> CREATE TABLE T_EXTERNAL     (     ID NUMBER     NAME VARCHAR ( )     )     ORGANIZATION EXTERNAL     (     TYPE ORACLE_DATAPUMP     DEFAULT DIRECTORY D_OUTPUT     LOCATION( TEST DMP )     );

  表已创建

   SQL> SELECT * FROM T_EXTERNAL;   ID NAME          T_LOG     TEST_LOB     T_PRESS     T_TEMP     T_RECORD     T_SESSION_STAT     T_TEMP     T     T_NO_EXISTS_BEFORE     T_CHAR     SYS_EXPORT_SCHEMA_     T_EXTERNAL     T_LOAD_SPACE     T_LEVEL     T_LEVEL     CHAINED_ROWS     T_TREE

  已选择 行

  唯一可惜的是Oracle只能将数据写为二进制格式 因此可以考虑使用这种方法进行数据迁移或发布 不过想利用这种方法来生成文本报表也是行不通的

  最后提一下 外部表是只读表 可以利用外部表卸载数据 不过必须在建表时完成 一旦表建立成功 外部表就变成不可修改了

    SQL> INSERT INTO T_EXTERNAL VALUES (   A );  INSERT INTO T_EXTERNAL VALUES (   A )

  *第 行出现错误:

  ORA : 操作在外部组织表上不受支持

  SQL> DROP TABLE T_EXTERNAL;

  表已删除

     SQL> CREATE TABLE T_EXTERNAL     (     ID NUMBER     NAME VARCHAR ( )     )     ORGANIZATION EXTERNAL     (     TYPE ORACLE_DATAPUMP     DEFAULT DIRECTORY D_OUTPUT     LOCATION( TEST DMP )     );

  表已创建

   SQL> INSERT INTO T_EXTERNAL VALUES (   A ); INSERT INTO T_EXTERNAL VALUES (   A )

  *第 行出现错误:

lishixinzhi/Article/program/Oracle/201311/18827  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码