Oracle 创建并使用外部表

目录

  • 一. 什么是外部表
  • 二. 创建外部表所在的文件夹对象
  • 三. 授予访问外部表文件夹的权限
    • 3.1 DBA用户授予普通用户访问外部表文件夹的权限
    • 3.2 授予Win10上的Oracle用户访问桌面文件夹的权限
  • 四. 普通用户创建外部表
  • 五. 查询
  • 六. 删除


一. 什么是外部表

  • 在 Oracle 数据库中,外部表(External Table)是一种特殊类型的表,它允许数据库直接访问外部文件(如 CSV 文件、文本文件等),并将这些文件的内容视为表数据进行查询。
  • 外部表本质上是一个逻辑表,它不会在数据库中存储实际的数据,而是通过指定的文件位置直接访问数据文件。

⏹外部表的特点

  • 无需存储数据:外部表的数据存储在外部文件系统中,而不是数据库表空间内。这意味着外部表只是一个映射,使得数据库可以通过 SQL 查询来访问存储在文件中的数据。
  • 直接访问外部数据:外部表允许您通过 SQL 查询直接访问外部文件中的数据,而无需将数据导入数据库。这对于处理大量的文件数据特别有用。
  • 支持大数据量处理:外部表非常适合处理大量外部数据文件,您可以像查询数据库表一样查询这些文件内容。
  • 支持多种文件格式:外部表支持多种不同的文件格式,如 CSV、固定宽度文本文件、分隔符分隔的文件等。

二. 创建外部表所在的文件夹对象

⏹在Oracle安装的Win10上准备好外部表所用到csv数据库文件。

在这里插入图片描述

"1","Name_1","41","user1@example.com","2024/05/20 13:05:39"
"2","Name_2","57","user2@example.com","2024/07/29 13:05:39"
"3","Name_3","44","user3@example.com","2024/10/11 13:05:39"
"4","Name_4","24","user4@example.com","2024/04/24 13:05:39"
"5","Name_5","42","user5@example.com","2024/02/21 13:05:39"
"6","Name_6","56","user6@example.com","2024/02/18 13:05:39"

⏹创建外部表所在的文件夹对象

  • 需要使用DBA用户
  • DBA用户所在的容器应该是PDB,而不是CDB
  • 因为我们的Oracle数据库安装在Win10上,所以文件夹路径需要Win10上的路径
# DBA用户切换容器为PDB
SQL>  ALTER SESSION SET CONTAINER = XEPDB1;Session altered.# 确认当前容器
SQL> SHOW CON_NAME;CON_NAME
------------------------------
XEPDB1
SQL>
SQL> CREATE OR REPLACE DIRECTORY PERSON_TABLE_EXT AS 'C:/Users/FengYeHong/Desktop';Directory created.# 确认文件夹对象已经创建完毕
SQL> SELECT directory_name, directory_path FROM all_directories WHERE directory_name = 'PERSON_TABLE_EXT';DIRECTORY_NAME             DIRECTORY_PATH
----------------           ---------------------------
PERSON_TABLE_EXT           C:/Users/FengYeHong/Desktop

三. 授予访问外部表文件夹的权限

3.1 DBA用户授予普通用户访问外部表文件夹的权限

SQL> GRANT READ, WRITE ON DIRECTORY PERSON_TABLE_EXT TO "DB_USER";Grant succeeded.

3.2 授予Win10上的Oracle用户访问桌面文件夹的权限

⏹通过services.msc打开服务,然后找到OracleServiceXE服务

在这里插入图片描述

⏹打开OracleServiceXE服务的属性,然后在登录选项卡中找到当前oracle服务的用户名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四. 普通用户创建外部表

  • 创建一个外部表,名称叫做PERSON_TABLE_TEST
  • CREATED_DATE DATE "yyyy/mm/dd hh24:mi:ss":指定日期的格式
  • LOCATION ('person_data.csv'),指定加载外部表所在文件夹中的person_data.csv文件。
CREATE TABLE PERSON_TABLE_TEST ("ID" NUMBER, "NAME" VARCHAR2(50), "AGE" NUMBER, "EMAIL" VARCHAR2(100), "CREATED_DATE" DATE
)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADERDEFAULT DIRECTORY PERSON_TABLE_EXTACCESS PARAMETERS(RECORDS DELIMITED BY NEWLINEFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'(ID, NAME, AGE, EMAIL, CREATED_DATE DATE "yyyy/mm/dd hh24:mi:ss"))LOCATION ('person_data.csv')
)
REJECT LIMIT UNLIMITED;

五. 查询

⏹查询外部表是否真的创建成功

SQL> SELECT TABLE_NAME FROM USER_EXTERNAL_TABLES WHERE TABLE_NAME = 'PERSON_TABLE_TEST';TABLE_NAME
--------------------------------------------------------------------------------
PERSON_TABLE_TEST

⏹查询外部表中的数据

  • 就像查询普通表一样
  • 外部表还可以和数据库中的表进行关联查询

在这里插入图片描述


六. 删除

⏹普通用户删除外部表,和删除普通表相同

DROP TABLE PERSON_TABLE_TEST;

⏹DBA用户删除外部表所在的目录

-- PERSON_TABLE_EXT 是目录的别名
DROP DIRECTORY PERSON_TABLE_EXT;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于FPGA的BPSK+costas环实现,包含testbench,分析不同信噪比对costas环性能影响

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.Verilog核心程序 4.完整算法代码文件获得 1.算法仿真效果 本作品是之前作品的改进和扩展: 1.m基于FPGA的BPSK调制解调通信系统verilog实现,包含testbench,包含载波同步_csdn基于fpga的bpsk-CSDN博客 2.m基于FP…

后端开发Web

Maven Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具 Maven的作用 依赖管理 方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题 统一项目结构 提供标准、统一的项目结构 项目构建 标准跨平台(…

前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!

引言 时光飞逝,2024年已经来临,回顾过去一年,科技的迅猛进步简直让人目不暇接。 在人工智能(AI)越来越强大的今天,我们不再停留在幻想阶段,量子计算的雏形开始展示它的无穷潜力,Web …

【10.2】队列-设计循环队列

一、题目 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普…

博客之星2024年度总评选——我的年度创作回顾与总结

2024年,是我在CSDN博客上持续耕耘、不断成长的一年。在此,与大家分享一下我的年度创作回顾与总结。 一、创作成长与突破 在人工智能领域,技术迭代迅速,知识更新频繁。为了保持自己的竞争力,在今年,我始终…

IDEA运行Java项目总会报程序包xxx不存在

我的在另外一台电脑上跑是没有问题的,在新的电脑上跑的时候,又出现了这个恶心的问题...... 思来想去,唯一的问题就是我的mavn环境没的配置好 如何在本地部署mavn环境,这里推荐一篇很好的文章: Maven安装与配置&…

java 根据前端传回的png图片数组,后端加水印加密码生成pdf,返回给前端

前端传回的png图片数组,后端加水印加密码生成pdf,返回给前端 场景:重点:maven依赖controllerservice 场景: 当前需求,前端通过html2canvas将页面报表生成图片下载,可以仍然不满意。 需要java后…

数据分库分表和迁移方案

在我们业务快速发展的过程中,数据量必然也会迎来突飞猛涨。那么当我们的数据量百倍、千倍、万倍、亿倍增长后,原有的单表性能就不能满足我们日常的查询和写入了,此时数据架构就不得不进行拆分,比如单表拆分成10张表、100张表、单个…

线上突发:MySQL 自增 ID 用完,怎么办?

线上突发:MySQL 自增 ID 用完,怎么办? 1. 问题背景2. 场景复现3. 自增id用完怎么办?4. 总结 1. 问题背景 最近,我们在数据库巡检的时候发现了一个问题:线上的地址表自增主键用的是int类型。随着业务越做越…

Java导出通过Word模板导出docx文件并通过QQ邮箱发送

一、创建Word模板 {{company}}{{Date}}服务器运行情况报告一、服务器:总告警次数:{{ServerTotal}} 服务器IP:{{IPA}},总共告警次数:{{ServerATotal}} 服务器IP:{{IPB}},总共告警次数:{{ServerBTotal}} 服务器IP:{{IPC}}&#x…

【22】Word:小李-高新技术企业政策❗

目录 题目​ NO1.2 NO3 NO4 NO5.6 NO7.8 NO9.10 若文章中存在删除空白行等要求,可以到最后来完成。注意最后一定要检查此部分!注意:大多是和事例一样即可,不用一摸一样,但也不要差太多。 题目 NO1.2 F12Fn&a…

自动化部署(三):项目管理平台

一、项目管理平台作用 帮助团队高效规划、执行和监控项目进度,确保任务按时完成并实现目标 敏捷开发:提供标准敏捷研发管理,支持Scrum 与 Kanban 规模化敏捷:支持大型研发团队跨项目协同,实现多项目路线图规划和资源管…

常用集合-数据结构-MySql

目录 java核心: 常用集合与数据结构: 单例集合: 双列集合: 线程安全的集合: ConcurrentHashMap集合: HashTable集合: CopyOnWriteArrayList集合: CopyOnWriteArraySet集合: ConcurrentLinkedQueue队列: ConcurrentSkipListMap和ConcurrentSkipListSet&…

IP属地与视频定位位置不一致:现象解析与影响探讨

在数字化时代,IP属地和视频定位位置已成为我们获取网络信息、判断内容真实性的重要依据。然而,有时我们会发现,某些视频内容中展示的定位位置与其发布者的IP属地并不一致。这种不一致现象引发了广泛的关注和讨论。本文旨在深入剖析IP属地与视…

计算机毕业设计hadoop+spark股票基金推荐系统 股票基金预测系统 股票基金可视化系统 股票基金数据分析 股票基金大数据 股票基金爬虫

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

机器学习-数据集划分

文章目录 一. 为什么要划分数据集二. 数据集划分的方法1. 留出法:2. 交叉验证:将数据集划分为训练集,验证集,测试集3. 留一法:4. 自助法: 一. 为什么要划分数据集 为了能够评估模型的泛化能力,可…

Vue 拦截监听原理

Vue 渐进式JavaScript 框架 学习笔记 - Vue 拦截监听原理 目录 拦截监听原理 如何跟踪变化 拦截监听示例 观察者 注意:vue3的变化 总结 拦截监听原理 如何跟踪变化 当你把一个普通的Javascript 对象传入 Vue 实例作为data选项,Vue 将遍历此对象所有的proper…

全面评测 DOCA 开发环境下的 DPU:性能表现、机器学习与金融高频交易下的计算能力分析

本文介绍了我在 DOCA 开发环境下对 DPU 进行测评和计算能力测试的一些真实体验和记录。在测评过程中,我主要关注了 DPU 在高并发数据传输和深度学习场景下的表现,以及基本的系统性能指标,包括 CPU 计算、内存带宽、多线程/多进程能力和 I/O 性…

基于JAVA的校园二手商品交易平台的设计与开发

摘 要:政府政策引导与社会观念的转变使得国内大学生的创业意识逐渐提高,很多高校大学生开始自主创业。目前我国各大高校暂且还没有较为成型的针对校内学生创业者的校园网络服务平台。本文首先主要是介绍了关于java语言以及web开发的相关技术,…

HarmonyOS Next 应用UI生成工具介绍

背景 HarmonyOS Next适配开发过程中难买难要参考之前逻辑,但是可能时间较长文档不全,只能参考Android或iOS代码,有些逻辑较重的场景还可以通过AI工具将Android 的Java代码逻辑转成TS完成部分复用。对于一些UI场景只能手动去写,虽…