• 外部表


    1. 定义:不在Oracle内部存储,数据存储在操作系统(OS)层面,原数据(Metadata)存储在数据库当中,外部表的数据只能读操作,无法进行DML操作,不能建立索引、约束、LOB大对象,但可以建立表、视图及同义词。

    2. 创建外部表流程:

      1. 创建DIRECTORY,并授权给用户

      2. 用户在自己当前模式下,根据OS层面文件的内容创建外部表

      3. 查看外部表

    3. 实验如下:

    假设在OS层面 ” /u01/app/test/ “ 目录下存在一个test.txt文件,文件内容如下,在Scott用户模式下创建外部表,并查看该文件中的内容

    [oracle@oracle12c test]$ pwd


    /u01/app/test


    [oracle@oracle12c test]$ cat test.txt


    1,a,10
    2,b,20
    3,c,30

    用SYS登录ERP数据库,创建名为 test_dir  的 DIRECTORY,并授权给SCOTT用户

    SQL> create directory test_dir as '/u01/app/test'; 

    Directory created.

    SQL> grant all on directory test_dir to scott;

    在SCOTT用户模式下,创建外部表,创建脚本如下:

    [oracle@oracle12c test]$ cat test_dir.sql
    create table test_dir_a  ----外部表表名
    (id number,name varchar2(10),deptno number)
    organization external
    (
    type oracle_loader
    default directory test_dir ----SYS用户创建的DIRECTORY名称
    access parameters
    (
    records delimited by newline
    badfile 'bad.txt'
    logfile 'log.txt'-----可以自定义名称
    fields terminated by ','
    missing field values are null
    (id,name,deptno)
    )
    location('test.txt') ---- OS层面文件名
    )
    PARALLEL
    REJECT LIMIT UNLIMITED;

    在数据库中查看外部表

    SQL> conn scott/tiger@erp
    Connected.
    SQL> @/u01/app/test/test_dir.sql

    Table created.

    SQL> select * from test_dir_a;

    ID          NAME       DEPTNO
    ---------- -------------------- ----------
    1      a        10
    2      b        20
    3      c        30

    SQL>

  • 相关阅读:
    Linux中常用的关机和重新启动命令
    Ubuntu 7.10 J2EE开发环境lomboz+eclipse3.2.1+tomcat5.5.25+mysql5.
    Linux+Apache+JSP+PHP+MySQL
    SMSLib的配置
    Python正则表达式操作指南
    Ubuntu学习笔记:通过ssh远程登录服务器
    C语言文件读写:语言初学者入门讲座 第十六讲 文件
    linuxfopenfclosefreadfwrite等函数
    linux 下 scp 的用法
    wget3
  • 原文地址:https://www.cnblogs.com/eniniemand/p/14055663.html
Copyright © 2020-2023  润新知