达梦:-2609 外部表不支持的操作

在DM8数据库的不同版本中,创建外部表时可能会遇到不支持未指定目录的情况。为了解决这个问题,文章提供了两种创建外部表的方法:一种是通过创建目录对象并指定数据文件;另一种是使用控制文件加载数据。这两种方法都详细阐述了步骤,包括编写数据文件、创建目录对象以及建表语句等。
摘要由CSDN通过智能技术生成

        在项目上遇到这样一个问题,同样创建外部表的语句,在不同版本数据库上创建,报错:“外部表不支持的操作“。

后面通过查看对应版本的《DM8_SQL语言使用手册.pdf》文档发现,外部表不再支持没有指定目录情况下的创建外部表。

数据库版本为:1-2-174-2022.11.21-175072-20024-ENT

可通过SQL语句查看数据库的版本:

select build_version from v$instance;

如果你也遇到这样的情况,可以试试下面的创建方法:

方法1


1).编写数据文件,如下:

vi /home/dmdba/data.txt
1|9|7
4|3|2

2).创建目录对象如下:

 CREATE OR REPLACE DIRECTORY "EXTDIR" AS '/home/dmdba/';

3).建表语句:

DROP TABLE if EXISTS  EXT_TABLE2;
CREATE EXTERNAL TABLE EXT_TABLE2(
C1 INT,
C2 INT,
C3 INT
) FROM DATAFILE DEFAULT DIRECTORY EXTDIR LOCATION ('data.txt') PARMS(FIELDS 
DELIMITED BY '|' );
select * from ext_table2 ; 

4). 查询外部表

select * from EXT_TABLE2;

方法2:

1).创建控制文件 

vi /home/dmdba/quan.ctrl
OPTIONS( 
DATA = 'quan.txt' 
ERRORS = 5 
BADFILE = 't1.bad' 
LOG = 't1.log' 
NULL_STR = ' ffff ' 
SKIP = 0
CHARACTER_CODE = 'utf-8' 
)
LOAD DATA 
INFILE 'quan.txt' 
BADFILE 'test1.bad' 
INTO TABLE fldr1 
FIELDS TERMINATED BY '|'

2).编辑测试数据

vi /home/dmdba/quan.txt
1|a|2
1|2|3

3).创建目录对象如下:

CREATE OR REPLACE DIRECTORY "EXTDIR_3" AS '/home/dmdba/';

4).创建外部表 

drop TABLE fldr1 ; 
CREATE EXTERNAL TABLE fldr1(
"C1" varchar(10),
"C2" varchar(10),
"C3" varchar(10)
) FROM DEFAULT DIRECTORY EXTDIR_3 LOCATION ('quan.ctrl');

5).查询外部表 

select * from fldr1;

更多内容,请访问达梦社区地址:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值