YashanDB external_table语法


external_table_clause用于在创建一个外部表时,指定其对应的外部数据信息。

本语句不会对外部数据是否存在及正确进行校验,即只要语法正确均可创建成功。查询一个外部表时,系统根据本语句所定义的外部数据信息进行检索,不满足条件时则会报错。

# type

通过TYPE关键字指定外部表驱动名,可省略。access_driver_type的值可为YASDB_LOADER或ORACLE_LOADER,二者等价。

# external_table_data_props_clause

指定外部表中数据的属性,可省略。

# default directory

指定外部表对应数据文件所在的缺省目录,可省略。当后续语句中未指定directory_name时,将以本目录作为数据或日志文件所在的默认目录。

directory_name必须为YashanDB中已创建的一个目录对象,创建方式参考CREATE DIRECTORY

# access parameters

指定在查询外部表时,读取外部数据文件的参数,包括源文件名称、列格式以及日志记录。

# record_format_info_clause

指定数据行格式,可省略。

# delimited by newline

指定读取外部数据文件时,数据记录之间的分隔符是换行符。

# output_files_clause

指定数据库在读取外部数据时的日志信息,若省略该子句,系统将以默认名称创建日志文件进行记录。

# nobadfile | badfile

指定BADFILE时,查询外部数据过程中遇到的错误数据将记录在file_pos_clause指定的文件中。

指定NOBADFILE时,系统不会记录查询外部数据时的错误数据。

# nologfile | logfile

指定LOGFILE时,查询外部数据的操作过程将记录在file_pos_clause指定的文件中。

指定NOLOGFILE时,系统不会记录查询外部数据时的操作信息。

# file_pos_clause

指定上述badfile或logfile所对应的物理文件,格式为directory_name:file_name。

directory_name必须为YashanDB中已创建的一个目录对象,省略时默认为DEFAULT DIRECTORY所指定目录对象。

Note:

出于性能考虑,在共享集群部署中不建议将badfile和logfile的directory设置在YFS。

file_name为一个操作系统可接受的文件名称,对于不存在的文件将由系统在记录日志时创建,对于已存在的文件,系统将对badfile进行覆盖填写,对logfile进行追加填写。

对于file_name,数据库会对部分符号进行替换:

  • %%将被替换为%

  • %a%p将被替换为当前线程ID。

# field_definitions_clause

指定外部数据列格式,可省略。

# terminated by

指定外部数据文件的字段之间的分隔符,分隔符的类型只能为字符,0x’9’、x’9’被解析为制表符,应与外部数据文件中实际使用的分隔符保持一致,若省略则默认为’,'。

# optionally enclosed by

如果外部数据文件中使用了封闭符号(只能使用’“‘封闭符),需通过本语句进行指定,且只能指定为’”'。

# location

指定外部数据文件所在的路径,格式为(directory_name:location_specifier)。

directory_name必须为YashanDB中已创建的一个目录对象,省略时默认为DEFAULT DIRECTORY所指定目录对象。

location_specifier为一个已存在的CSV文件的名称。

# reject limit

指定在查询外部数据时,可容忍的最多错误数据行数,达到容忍值时系统将终止查询操作。可省略,则默认为0行。UNLIMITED表示容许所有的数据错误。

示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值