注册
创建外部表的两种方式
专栏/培训园地/ 文章详情 /

创建外部表的两种方式

醉蓬莱 2024/06/13 585 1 0
摘要
    • 外部表,本身并不存在于数据库中。通过向达梦数据库提供描述外部表的元数据,可以把一个操作系统文件当成一个只读的数据库表配置给达梦数据库,这样,达梦数据库就可以像使用其他普通数据库表一样使用该系统文件。
    • 一些会经常变化,且在各个系统之间会共享的基础数据,可以通过外部表的方式实现不同系统间的共享。而且文件结构类似关系性数据,可共享的信息量大而灵活。
    • 外部表有定义文件路径和定义控制文件两种创建方式
  1. (一)定义文件夹的方式
    a)先将数据文件所在的绝对路径定义为同名文件夹标识
    比如:
    create DIRECToRY "dirWaibu" as '/dm8/data/waibudata'’
    实现 '/dm8/data/waibudata' 和 'dirWaibu' 的映射

    B)将同名文件夹标识访问权限赋予数据库用户,相当于对象权限的授予
    GRANT read,write oN directory "dirwaibu"TO DMTEST

    C)定义外部表数据结构,同时指定具体的数据文件
    create external table "DMTEST"."TABLE 1”(
    "id” INT.
    "COLUMNA” VARCHAR(50)

    from datafile DEFAULT DIRECTORY "dirWaibu" location('waibuData.txt')
    ----waibuData.txt 在文件夹 dirWaibu 下
    parms(fields ‘,’) -----指定数据文件的分隔符
    D)完成定义后,我们就可以像普通表一下使用了(注:只能读不能更改数据)
    select * from DMTEST.TABLE_1

  2. (二)定义控制文件的方式
    a)先定义一个控制文件,说明外部文件和目标外部表关系
    比如:
    cat ext.ctl 内容如下:
    LOAD DATAINFILE 'waibuData.txt'INTO TABLE TABLE_1 FIELDS ',' --逗号分隔数据,

    B)定义外部表数据结构,指定具体的控制文件
    create external table "DMTEST"."TABLE 1”(
    "id” INT.
    "COLUMNA” VARCHAR(50)

    from DEFAULT DIRECTORY "dirWaibu" location('ext.ctl')

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服