【DM8】外部表

2024-04-10 06:36
文章标签 外部 dm8

本文主要是介绍【DM8】外部表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

外部表是指不存在于数据库中的表。
通过向达梦数据库定义描述外部表的元数据,可以把一个操作系统文件当成一个只读的数据库表,对外部表将像普通定义的表一样访问。
在这里插入图片描述

外部表的数据存储在操作系统文件中,建立外部表的时候,不会产生段,页簇等存储结构,只有与表相关的定义放在数据字典中。在数据库中不能对外部表的内容进行修改,不能对外部表建立主键,索引,外键。不需要将外部表的数据载入到数据库中来,通过SQL解码器来访问外部表。

外部表创建和访问主要步骤如下:
1.创建相关操作系统目录和外部文件;
2.在数据库中定义外部表目录;
3.根据需要定义控制文件(可选);
4.在数据库中创建外部表定义;
5.通过数据库访问外部表。

举例:
根据/opt/emp.txt文件,创建外部表TEST.EMP

[root@study ~]# cd /opt/
[root@study opt]# cat emp.txt 
1,a,2019-01-01
2,b,2018-08-08
3,c,1998-10-10
4,d,1988-11-11

1.不用控制文件

创建目录

SQL> create directory ddmpdir as '/opt';

图形化界面创建外部表
在这里插入图片描述

命令行方式:

SQL> create external table TEST.EMP(ID INT,NAME VARCHAR(10),SDATE DATE) from datafile default directory ddmpdir location('emp.txt')parms(fields delimited by ',');
操作已执行
已用时间: 5.204(毫秒). 执行号:5901.
SQL> select * from TEST.EMP;行号     ID          NAME SDATE     
---------- ----------- ---- ----------
1          1           a    2019-01-01
2          2           b    2018-08-08
3          3           c    1998-10-10
4          4           d    1988-11-11已用时间: 5.892(毫秒). 执行号:5902.

2.用控制文件

控制文件

[root@study opt]# cat emp.ctl 
LOAD DATA
INFILE 'emp.txt'
INTO TABLE TEST.EMP
FIELDS ','

创建目录

SQL> create directory empdir as '/opt';

图形化创建表
在这里插入图片描述

命令行方式创建表

SQL> create external table TEST.EMP(ID INT,NAME VARCHAR(10),SDATE DATE) from default directory empdir location('emp.ctl');
操作已执行
已用时间: 3.684(毫秒). 执行号:5602.

插入成功

SQL> select * from TEST.EMP;行号     ID          NAME SDATE     
---------- ----------- ---- ----------
1          1           a    2019-01-01
2          2           b    2018-08-08
3          3           c    1998-10-10
4          4           d    1988-11-11已用时间: 18.343(毫秒). 执行号:5603

注意检查:
1.建表的时候注意varchar的值
2.目录权限问题
3.目录是否正确
4.不用控制文件创建外部表的时候,要注意添加分隔符号的参数列表,命令行方式from后面有个datafile default

这篇关于【DM8】外部表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/890309

相关文章

DM8数据库安装后配置

1 前言 在上篇文章中,我们已经成功将库装好。在安装完成后,为了能够更好地满足应用需求和保障系统的安全稳定运行,通常需要进行一些基本的配置。下面是一些常见的配置项: 数据库服务注册:默认包含14个功能模块,将这些模块注册成服务后,可以更好的启动和管理这些功能;基本的实例参数配置:契合应用场景和发挥系统的最大性能;备份:有备无患;… 2 注册实例服务 注册了实例服务后,可以使用系统服务管理,

【AI大模型应用开发】2.1 Function Calling连接外部世界 - 入门与实战(1)

Function Calling是大模型连接外部世界的通道,目前出现的插件(Plugins )、OpenAI的Actions、各个大模型平台中出现的tools工具集,其实都是Function Calling的范畴。时下大火的OpenAI的GPTs,原理就是使用了Function Calling,例如联网检索、code interpreter。 本文带大家了解下Function calling,看

外部中断的边缘触发和电平触发

MCS-51单片机中的边缘触发是指当输入引脚电平由高到低发生跳变时,才引起中断。而电平触发是指只要外部引脚为低电平就引起中断。         在电平触发方式下,当外部引脚的低电平在中断服务返回前没有被拉高时(即撤除中断请求状态),会引起反复的不需要的中断,造成程序执行的错误。这类中断方式下,需要在中断服务程序中设置指令,清除外部中断的低电平状态,使之变为高电平。

从应用内跳转至外部浏览器 - 鸿蒙 HarmonyOS Next

从应用内跳转至外部浏览器,基于 Want 来实现,同时也可以通过其方式尝试跳转至其它系统模块,具体可参考如下 code : 方法调用 // 调用pushOutsideWeb(controller, url) 方法实现 import { common, contextConstant, Want } from '@kit.AbilityKit';import { HintMessage

江协科技STM32学习- P11 中断系统,EXTI外部中断

🚀write in front🚀   🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​  💬本系列哔哩哔哩江科大STM32的视频为主以及自己的总结梳理📚  🚀Projeet source code🚀    💾工程代码放在了本人的Gitee仓库:iPickCan (iPickCan

Java在windows和linux上调用外部程序

在用java开发时,有时候会遇到需要调用系统命令或者外部脚本,当前文章给出调用方法。代码如下: /*** 转换脚本路径为在win、linux中可执行的命令* * @param scriptPath* 脚本路径* @return 在linux或window中可执行的命令*/public static String[] convertExecuteCommand(Str

报错:Reached the max session limit(DM8 达梦数据库)

报错:Reached the max session limit - - DM8 达梦数据库 1 环境介绍2 数据库启动SYSTEM IS READY后面日志3 数据库刚启动日志4 达梦数据库学习使用列表 1 环境介绍 某项目无法连接数据库,报错:超过最大会话数限制 , 检查 dmdba ulimit -a openfiles 已改检查 dm.ini 其中 MAX_SESSION

C++ 在外部访问对象的protected成员的方法

起因 起因在于,今天在写UE4插件时,有一个对象的protected成员我想要访问。这个类没有提供接口来访问那个成员,并且这个类是定义在引擎代码中的而我不想“污染”引擎代码。 不过,我想到这么做或许可以在不改变原有类的定义下访问其中的protected成员: 定义一个原有类的子类,在其中定义可以访问protected成员的接口。想要访问对象的成员时,将原有类类型的指针转变为子类类型的指针,然

一种在C++中外部强行访问私有成员的方法

问题 C++在设计上,是不允许类的私有成员在外部被访问读写的。 然而,有时是想要在外部访问私有成员的。我目前常见的情况是:想要访问UE引擎代码中的类的私有成员,但又不想“污染”其源代码将其private改为public。 方法 一种方法是,再建立一个完全相同结构的类,只不过将成员改为public: class MyClassA_MirrorPublic{public:int dat

as3.0 [Embed]标签嵌入外部资源

as3.0 [Embed]标签嵌入外部资源   空闲时间,总结一下[Embed]标签的用途,好记性不如烂笔头,记录下来,为方便查找。 1、[Embed]嵌入资源 ActionScript代码的顺序非常重要。你必须在声明变量前添加[Embed]元数据标签,而且这个变量的类型会是Class。 package { import flash.display.