千家信息网

DM7外部表怎么指定

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"DM7外部表怎么指定",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"DM7外部表怎么指定"吧!DM7 外部表需指定如下信息:1. 表名、表
千家信息网最后更新 2026年11月02日DM7外部表怎么指定

本篇内容主要讲解"DM7外部表怎么指定",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"DM7外部表怎么指定"吧!

DM7 外部表
需指定如下信息:
1. 表名、表所属的模式名;
2. 列定义;
3. 控制文件路径。
语法格式
CREATE EXTERNAL TABLE < 表名定义> < 表结构定义>;
< 表名定义> ::=[< 模式名>.]< 表名>
< 表结构定义> ::= (< 列定义> {,< 列定义>})
< 列定义> ::= < 列名> < 数据类型>
FROM子句 = FROM子句1 | FROM子句2 | FROM子句3| FROM子句4
FROM子句1 ::= FROM '< 控制文件路径>'
FROM子句2 ::= FROM DATAFILE '< 数据文件路径>' [< 数据文件参数列表>]
FROM子句3 ::= FROM < 控制文件目录> < 控制文件选项>
FROM子句4 ::= FROM DATAFILE < 数据文件目录> < 数据文件选项> [< 数据文件参数列表>]
< 数据文件参数列表> ::= PARMS(< 参数选项> {,< 参数选项>})
< 参数选项> ::= [FIELDS DELIMITED BY < 表达式>] | [RECORDS DELIMITED BY < 表达式>]|[ ERRORS ]|[BADFILE '< 数据文件路径>']| |[LOG < 日志文件路径>]|[NULL_STR ]|[SKIP < 跳过行数>]|[CHARACTER_CODE < 文件字符集>]
< 控制文件目录> ::= DEFAULT DIRECTORY < 控制文件目录名>
< 控制文件选项> ::= LOCATION ('< 控制文件名>')
< 数据文件目录> ::= DEFAULT DIRECTORY < 数据文件目录名>
< 数据文件选项> ::= LOCATION ('< 数据文件名>')

参数
1. < 模式名> 指明该表属于哪个模式,缺省为当前模式;
2. < 表名> 指明被创建的外部基表名;
3. < 列名> 指明基表中的列名;
4. < 数据类型> 指明列的数据类型,暂不支持多媒体类型;
5. < 控制文件路径> 指明使用的控制文件的路径的字符串;
6. < 数据文件路径> 指明使用的数据文件路径的字符串;
7. < 参数选项> FIELDS表示列分隔符;RECORDS表示行分隔符;ERRORS表示忽略外部表数据转换中出现错误的行数,取值范围为大于0的正整
数,缺省为0,表示不忽略错误。此处ERRORS 和控制文件中的ERRORS写一个就行,如果都写,以控制文件中的为主;LOG表示日志文件路径,
默认日志文件名为fldr.log;NULL_STR指定数据文件中NULL值的表示字符串,默认忽略此参数;SKIP指定跳过数据文件起始的逻辑行数,默
认为0;CHARACTER_CODE指定数据文件中数据的编码格式,默认为GBK,可选项有GBK,UTF-8,SINGLE_BYTE和EUC-KR;
8. < 表达式> 字符串或十六进制串类型表达式,列分隔符只允许字符串类型;
9. < 控制文件目录名> 指数据库对象目录的名称。
图例



语句功能
供DBA或具有CREATE_TABLE权限的用户定义外部基表。MPP环境下不支持创建外部表。
使用说明
1. < 表名>指定了所要建立的外部基表名。如果< 模式名>缺省,则缺省为当前模式。表名需要是合法的标识符。且满足SQL语法要求;
2. 外部表的表名最大长度为128个字符;
3. 所建外部基表至少要包含一个< 列名>指定的列,在一个外部基表中,各< 列名>不得相同。一张外部基表中至多可以包含2048列;
4. 外部基表不能存在大字段列;
5. 外部基表不能存在任何约束条件;
6. 外部基表不能为临时表,不能建立分区;
7. 外部基表上不能建立任何索引;
8. 外部基表是只读的,不存在表锁,不允许任何针对外部表的增删改数据操作,不允许truncate外部表操作;
9. 控制文件路径,以及数据文件路径建议采用绝对路径;
10. 控制文件的格式为:

[OPTIONS(errors=)]LOAD [DATA]INFILE [LIST] |INTO TABLE tablenameFIELDS

其中:
OPTIONS选项:可选部分,目前OPTIONS中仅支持errors选项,用于指定忽略数据转换出现错误的行数;此处errors 和< 参数选项>中的errors写一个就行,如果都写,以此处控制文件中的为主。
:指明使用的数据文件列表;
tablename:指明表名,创建外部表时,表名可以与此不同;
:指明同一行中各个列的分隔符;
11. 数据文件中一行数据必须以回车结束;
12. 外部表支持查询ROWID、USER和UID伪列,不支持查询TRXID伪列。

举例说明
例1 指定操作系统的一个文本文件作为数据文件,编写控制文件及建表语句。数据文件(/home/dmdba/data.txt),数据如下:

a|abc|varchar_data|12.34|12.34|12.34|12.34|0|1|1|1234|1234|1234|100|11|1234|1|1|14.2|12.1|12.1|1999-10-01|9:10:21|2002-12-12|15

控制文件(/home/dmdba/ctrl.txt)如下:

load datainfile '/home/dmdba/data.txt'into table extfields '|'

建表:

SQL> create external table ext (2   l_char char(1),3   l_character character(3),4   l_varchar varchar(20),5   l_numeric numeric(6,2),6   l_decimal decimal(6,2),7   l_dec dec(6,2),8   l_money decimal(19,4),9   l_bit bit,10  l_bool bit,11  l_boolean bit,12  l_integer integer,13  l_int int,14  l_bigint bigint,15  l_tinyint tinyint,16  l_byte byte,17  l_smallint smallint,18  l_binary binary,19  l_varbinary varbinary,20  l_float float,21  l_double double,22  l_real real,23  l_date date,24  l_time time,25  l_timestamp timestamp,26  l_interval interval year27  )from '/home/dmdba/ctrl.txt';executed successfullyused time: 62.123(ms). Execute id is 312.

系统执行建表语句后,就在数据库中建立了相应的外部基表。查询ext表:

SQL> select * from ext;LINEID     L_CHAR L_CHARACTER L_VARCHAR    L_NUMERIC L_DECIMAL L_DEC L_MONEY L_BIT L_BOOL L_BOOLEAN L_INTEGER   L_INT       L_BIGINT             L_TINYINT   L_BYTE      L_SMALLINT  L_BINARY L_VARBINARY L_FLOAT                   L_DOUBLE                  L_REAL             L_DATE     L_TIME          L_TIMESTAMP                 L_INTERVAL           ---------- ------ ----------- ------------ --------- --------- ----- ------- ----- ------ --------- ----------- ----------- -------------------- ----------- ----------- ----------- -------- ----------- ------------------------- ------------------------- ------------------ ---------- --------------- --------------------------- ---------------------1          a      abc         varchar_data 12.34     12.34     12.34 12.3400 0     1      1         1234        1234        1234                 100         11          1234        0x01     0x01        1.420000000000000E+01     1.210000000000000E+01     1.2100000E+01      1999-10-01 09:10:21        2002-12-12 00:00:00.000000  INTERVAL '15' YEAR(2)used time: 7.248(ms). Execute id is 314.

例 2 指定操作系统的一个文本文件作为数据文件(/home/dmdba/data1.txt),数据如下:

10|9|74|3|2

建表:

SQL> create external table ext_2(c1 int,c2 int,c3 int) from datafile '/home/dmdba/data1.txt' parms(fields delimited by '|');executed successfullyused time: 11.008(ms). Execute id is 331.

查询结果:

SQL> select * from ext_2;LINEID     C1          C2          C3         ---------- ----------- ----------- -----------1          10          9           72          4           3           2used time: 8.222(ms). Execute id is 332.

到此,相信大家对"DM7外部表怎么指定"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

文件 数据 子句 控制 路径 字符 字符串 支持 查询 分隔符 模式 类型 格式 系统 语句 错误 操作系统 一行 内容 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 华服互联网科技怎么样 中国互联网科技工作委员会毛军 深圳互联网科技公司 互联网 科技馆 现代科技和互联网有关系吗 西藏七维空间互联网科技有限公司 科技互联网的估值 互联网科技公司有风险吗 互联网保险科技创业 为客找房互联网科技公司怎么样 山东子淼互联网科技有限公司 领航科技大厦互联网公司 互联网科技数字货币 宇信科技在杭州互联网排第几 吉林省码上互联网科技电话 广西泛欧互联网科技有限公司 上海互联网科技园景观 宁波允成互联网科技有限公司 互联网高科技绘画 上海喔噻互联网科技 壹账通互联网科技 火传媒上海互联网科技 互联网科技大会 互联网科技大奖都有哪些公司 世界互联网领先科技成果获奖 萌小萌互联网科技河南有限公司 唯美互联网科技 科技信息时代互联网发展 颐高云石互联网科技
0