DM7如何指定外部表?

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

本文主要讲解“如何指定DM7外部表”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何指定DM7外接表”!

DM7外部表

指定以下信息:

1.该表所属的表名和架构名;

2.列定义;

3.控制文件路径。

语法格式

创建外部表表名定义表结构定义;

表名定义:3360=[架构名。]表名

表定义:3360=(列定义{,列定义})

列定义:3360=列名数据类型

FROM子句=FROM子句1 | FROM子句2 | FROM子句3| FROM子句4

FROM子句1 :=FROM“控制文件路径”

FROM子句2 :=FROM DATAFILE“数据文件路径”[数据文件参数列表]

FROM子句3 :=FROM控制文件目录控制文件选项

FROM子句4 :=FROM DATAFILE数据文件目录数据文件选项[数据文件参数列表]

数据文件参数列表:=PARMS(参数选项{,参数选项})

参数:=[field DECLARED BY表达式]|[RECORDS DECLARED BY表达式]|[ERRORS]|[BADDFILE '数据文件路径']| |[日志文件路径]|[null _ str]|[跳过的行]| [Character _ code文件字符集]

控制文件目录:=DEFAULT DIRECTORY控制文件目录名

控制文件选项:=LOCATION(控制文件名)

数据文件目录:3360=默认目录数据文件目录名

数据文件选项:=LOCATION(数据文件名)

参数

1.模式名称表示表属于哪种模式,默认为当前模式;

2.表名表示创建的外部基表的名称;

3.列名是指明基表中的列名;

4.数据类型表示列的数据类型,暂时不支持多媒体类型;

5.控制文件路径是一个字符串,表示所使用的控制文件的路径;

6.数据文件路径指示所用数据文件路径的字符串;

7.参数选项FIELDS表示列分隔符;RECORDS表示行分隔符;ERRORS是指在外部表的数据转换中忽略有错误的行数,取值范围为大于0的正整数。

Number,默认值为0,这意味着不会忽略错误。这里,只需在控制文件中写入ERRORS和ERRORS之一。如果两个都写了,控制文件中的那个就是主文件。日志表示日志文件路径,

默认日志文件名是fldr.log;NULL_STR指定数据文件中NULL值的表示字符串;默认情况下,此参数被忽略;SKIP指定跳过数据文件开头的逻辑行数,无提示。

认为0;CHARACTER_CODE指定数据文件中数据的编码格式,默认为GBK,可选选项有GBK、UTF-8、SINGLE_BYTE、EUC-KR;

8.表达式字符串或十六进制字符串类型表达式,列分隔符只允许字符串类型;

9.控制文件目录名是指数据库对象目录的名称。

神话;传奇

DM7外部表怎么指定

DM7外部表怎么指定

DM7外部表怎么指定

DM7外部表怎么指定

语句函数

对于数据库管理员或具有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 tablename
FIELDS

其中:
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 data
infile '/home/dmdba/data.txt'
into table ext
fields '|'

建表:

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 year
27  )from '/home/dmdba/ctrl.txt';
executed successfully
used 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|7
4|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 successfully
used time: 11.008(ms). Execute id is 331.

查询结果:

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

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

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154584.html

(0)

相关推荐

  • dna聚合酶作用部位,DNA聚合酶作用部位及功能

    技术dna聚合酶作用部位,DNA聚合酶作用部位及功能DNA聚合酶作用部位是磷酸二酯键dna聚合酶作用部位。 1、聚合作用:在引物RNA-OH末端,以dNTP为底物,按模板DNA上的指令,即A与T,C与G的配对原则,逐步逐

    生活 2021年10月24日
  • 牡丹鹦鹉怎么养,牡丹鹦鹉是怎么繁殖与喂养的

    技术牡丹鹦鹉怎么养,牡丹鹦鹉是怎么繁殖与喂养的首先先忙明确一下:牡丹鹦鹉面类是可以养殖牡丹鹦鹉怎么养,如果是头类牡丹鹦鹉就要办理饲养证。
    正文开始了:
    如果你打算自己繁殖你的鹦鹉,首先必须为小鸟准备一个爱巢,尺寸不能小于

    生活 2021年10月21日
  • Linux前台的程序如何转到后台执行并且关闭终端而不杀死命令

    技术Linux前台的程序如何转到后台执行并且关闭终端而不杀死命令这篇文章给大家介绍Linux前台的程序如何转到后台执行并且关闭终端而不杀死命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。过SSH或

    攻略 2021年10月21日
  • cocos2dx中的核心类是什么

    技术cocos2dx中的核心类是什么今天就跟大家聊聊有关cocos2dx中的核心类是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、节点类(Node)

    攻略 2021年11月11日
  • 额宝,支付宝于额宝。是什么意思

    技术额宝,支付宝于额宝。是什么意思支付宝里的余额是支付宝平台的一个资金账户额宝,可以随存随取,也可以用于支付宝上面消费,但转入余额账户的资金不产生收益。余额宝是一种资金管理服务。转入余额宝,即购买货币基金,可享货币基金收

    生活 2021年10月20日
  • 在ASP.NET Core web API使用Swagger/OpenAPI,二)

    技术在ASP.NET Core web API使用Swagger/OpenAPI,二) 在ASP.NET Core web API使用Swagger/OpenAPI(二)实战
    首先介绍三个重要组件:Sw

    礼包 2021年11月26日