考试时有一题是根据提供的文件建立外部表。
题目本身难度不大,但是由于考试时间比较紧张,再加上使用手机热点连接进入考试环境,经常被电话等外界因素干扰。
1、首先查看考试提供的文件,cat /opt/***.txt
主要是查看文件的内数据的格式,以及中间的分割符号
2、创建控制文件vi .ctl
LOAD DATA
INFILE '/opt/.txt'
INTO TABLE DMTEST.***
FIELDS ',' //分割符以实际考试题目为准
3、将控制文件、数据文件的权限赋予dmdba用户
chown dmdba:dinstall ***.txt ***.ctl
4、新建目录
将控制文件所在的目录添加进去
5、创建外部表
create external table DMTEST.( INT, *** VARCHAR(20), *** DATE) from '/opt/**.ctl';
考试时出现的问题:
在执行创建外部表步骤的时候,
出现:-2609:外部表不支持的操作
开始以为是sql语句或者控制文件写的有问题,用了其他方式进行尝试
create external table DMTEST.( INT, *** VARCHAR(20), *** DATE) from datafile '/opt/**.txt' parms (fields delimited by ',', skip 1, character_code 'utf-8');
加上了更多的参数,但还是一样的报错。
后突然发现原因是一开始忘记创建目录,所以执行失败。
因为平时使用的数据库版本比较老,没有创建目录也能创建外部表,但是达梦8的版本,外部表不再支持没有指定目录情况下的创建外部表,所以导致问题出现。
后来也是想起之前DCP的老师在讲课时提到的,导入外部表的时候要先建目录。建完目录之后果然一下子就成功了。
PS:
1.考试环境虽然在考前一天能够进行测试,但是测试时为提供数据库虚机,到考试时前半小时还有点不适应。
2.考试及培训时间固定,无法自主选择。没法选到周末,培训时因工作原因无法认真听课,只能回家查看录播。在单位考试时容易受到外界因素干扰,且网络环境不稳定。
3.建议能够提供可以操作的测试机环境,让考生可以在考前练手,并熟悉考试流程。
文章
阅读量
获赞