zoukankan      html  css  js  c++  java
  • Oracle外部表的使用

    外部表可以像其它表一样,用select语句作查询。但不能做DML操作,不能建index,不接受约束。这是因为它不是以段的形式存于数据库中,只是以数据字典构造存在,指向一个或多个操作系统文件。

    外部表的使用涉及到目录的概念——是DBA在数据库中创建的指向物理路径的目录。

    1. 创建时不会验证目录是否存在或是否有相关目录的权限。若不存在或没权限,则使用目录时报错。

    2. 目录归sys所有,即使scott有目录的创建权限,是目录的创建者,但也不能删除目录。

    • 目录授权

    conn / as sysdba

    grant create any directory to scott;

    select * from all_directories where directory_name='SCOTT_DIR';
    OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH
    ------------------------------ ------------------------------ ---------------
    SYS                                    SCOTT_DIR                                 K:DBscript

     

    • 目录创建

    create or replace directory ext_dir as 'K:/DB/script';

     

    • 外部表创建

    create table t_ext_tab(id char(1),name char(6))
    organization external(
        type oracle_loader
        default directory scott_dir
        access parameters(
            records delimited by newline
            fields terminated by '#'
        )
        location ('ext.tab')
    );

     

    ext.tab里的内容如下:

    1#tough1
    2#tough2
    3#tough3

     

    • 外部表查询:

    select * from t_ext_tab;

    ID NAME
    1 tough1
    2 tough2
    3 tough3

     

    • 不可以对外部表进行DML操作

    SQL> insert into t_ext_tab values (1,'Tough4');
    insert into t_ext_tab values (1,'Tough4')
                *
    第 1 行出现错误:
    ORA-30657: 操作在外部组织表上不受支持


    SQL> update t_ext_tab set name='Tough';
    update t_ext_tab set name='Tough'
           *
    第 1 行出现错误:
    ORA-30657: 操作在外部组织表上不受支持


    SQL> delete from t_ext_tab;
    delete from t_ext_tab
                *
    第 1 行出现错误:
    ORA-30657: 操作在外部组织表上不受支持

     

    此文只是介绍了oracle外部表的简单用法。还有很多关于外部表的用法可以参考:

    http://docs.oracle.com/cd/B14117_01/server.101/b10825/et_params.htm

     


     

  • 相关阅读:
    Java ee第七周作业
    Java ee第六周作业
    Java ee第五周作业
    Java ee第四周作业
    Java ee第三周作业
    第二周作业-web后台应用开发与xml
    Java ee第一周的作业
    在团队项目中我对自己的总结
    两人合作,黄金点游戏
    c语言实现wc功能
  • 原文地址:https://www.cnblogs.com/toughhou/p/3778800.html
Copyright © 2011-2022 走看看