达梦数据库 创建外部表 [-7082]:外部表数据错误.

1:定义

外部表,是指不存在于数据库中的表。通过向达梦提供描述外部表的元数据,可以把一
个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中一样来
进行访问。
外部表的数据存储在操作系统中,是操作系统文件,建立外部表的时候,不会产生段,
页簇等存储结构,只有与表相关的定义放在数据字典中。在数据库中不能对外部表的内容进
行修改,不能对外部表建立主键,索引,外键。不需要将外部表的数据载入到数据库中
来,通过 sql 解码器来访问外部表

2:如何建立外部表:

案例1:
1、数据文件

[dmdba@localhost opt]$ vi a.txt
[dmdba@localhost opt]$ cat a.txt
序号,内容
1,AAAA
2,BBBBB
3,DD
4,CCCC
5,FF
6,WERWRWRW
7,iiiii
8,nnnnn
9,SER
10,EWDEWRWRWRWRWEEEEEEEEEEEEEEEEEEEEEEEE
[dmdba@localhost opt]$ 

2:控制文件

[dmdba@localhost opt]$ vi a.ctl
[dmdba@dw01:/opt]$ cat a.ctl
LOAD DATA
INFILE 'a.txt'
INTO TABLE TEST.EXT
FIELDS ','

3:创建目录

SQL> create directory extdir as '/opt/'   ;
操作已执行

4:创建外部表

SQL> create external table test.ext(id int,name varchar(20)) from default direct                                                                                                  ory extdir location('a.ctl');
操作已执行
已用时间: 10.564(毫秒). 执行号:403.

5:验证结果:

SQL> select * from test.ext;
select * from test.ext;
[-7082]:外部表数据错误.
已用时间: 6.835(毫秒). 执行号:0.
SQL>

错误原因:

1: 表定义
表定义的test.ext(id int,name varchar(20)),varchar为20,但是a.txt中有一个记录明显超过20。

修改表定义:发现外部表的表定义无法修改

删除重建

SQL> drop table TEST.EXT;
操作已执行
已用时间: 128.774(毫秒). 执行号:708.
SQL> create external table test.ext(id int,name varchar(60)) from default directory extdir location('a.ctl');
操作已执行
已用时间: 39.210(毫秒). 执行号:709.
SQL>

2:a.txt表里面有表头 ,加载的时候需要去掉表头
修改控制文件, 加skip表头

[dmdba@dw01:/opt]$ vi a.ctl
[dmdba@dw01:/opt]$ cat a.ctl
options(
skip=1
)
LOAD DATA
INFILE 'a.txt'
INTO TABLE TEST.EXT
FIELDS ','
[dmdba@dw01:/opt]$


3:检查权限
a.txt 以及 a.ctl均在/opt路径下,赋予dmdba权限

[root@dw01:/opt]$ chown -R dmdba:dinstall /opt
[root@dw01:/opt]$ chmod -R 777 /opt

4:检查创建的目录是否错误:


SQL> create directory extdir as '/opt/'   ;

修改为/opt

SQL>  drop directory extdir;
SQL> create directory extdir as '/opt'   ;

SQL> select * from dba_directories;

行号     OWNER DIRECTORY_NAME DIRECTORY_PATH
---------- ----- -------------- --------------
1          SYS   EXTDIR         /opt

已用时间: 1.155(毫秒). 执行号:804.
SQL>

修改完毕后查询

SQL> select * from test.ext;

行号     ID          NAME
---------- ----------- -------------------------------------
1          1           AAAA
2          2           BBBBB
3          3           DD
4          4           CCCC
5          5           FF
6          6           WERWRWRW
7          7           iiiii
8          8           nnnnn
9          9           SER
10         10          EWDEWRWRWRWRWEEEEEEEEEEEEEEEEEEEEEEEE

10 rows got

相关推荐

  1. 数据库 创建外部 [-7082]:外部数据错误.

    2024-03-31 22:44:02       18 阅读
  2. 数据库使用-外部

    2024-03-31 22:44:02       12 阅读
  3. 创建临时(DM8数据库)

    2024-03-31 22:44:02       13 阅读
  4. 数据库 分区的维护

    2024-03-31 22:44:02       27 阅读
  5. (DM)数据库管理

    2024-03-31 22:44:02       13 阅读
  6. hive创建hbase外部关联实例

    2024-03-31 22:44:02       12 阅读
  7. 如何利用OceanBase v4.2的 外部简化外部数据处理

    2024-03-31 22:44:02       13 阅读

最近更新

  1. 贪心算法-以高校教材管理系统为例

    2024-03-31 22:44:02       0 阅读
  2. 使用 .NET 实现 MongoDB

    2024-03-31 22:44:02       0 阅读
  3. ES5/ES6补充笔记

    2024-03-31 22:44:02       0 阅读
  4. Conda Channels全掌握:Linux中添加与移除的艺术

    2024-03-31 22:44:02       0 阅读
  5. Jetson-AGX-Orin离线安装nvidia-jetpack

    2024-03-31 22:44:02       1 阅读
  6. 2024前端面试真题【CSS篇】

    2024-03-31 22:44:02       1 阅读
  7. 如何使用echart画k线图

    2024-03-31 22:44:02       1 阅读

热门阅读

  1. Linux-基础环境搭建

    2024-03-31 22:44:02       17 阅读
  2. C语言学习笔记二

    2024-03-31 22:44:02       16 阅读
  3. springMVC是什么?

    2024-03-31 22:44:02       16 阅读
  4. leetcode217-Intersection of Two Arrays

    2024-03-31 22:44:02       15 阅读
  5. JDK 21 中对虚拟线程的 DDR 支持

    2024-03-31 22:44:02       17 阅读
  6. 5.94 BCC工具之cachetop.py解读

    2024-03-31 22:44:02       21 阅读
  7. 怎么使用Redis模拟Session

    2024-03-31 22:44:02       17 阅读