Oracle 创建外部表

        找别人要一下数据,但是他发来一个 xxx.csv 文件,怎么办?

1、使用视图化工具导入

       使用导入工具导入,如 DBeaver,右击要导入的表,选择导入数据。

         选择对应的 csv 文件,下一步就行了(如果出现导入后乱码,可以考虑一下字符集的问题)。

        但是,有时候数据量很大,几十上百万的数据的时候,就会出现加载到多少条就卡住不动了,这个时候,就可以考虑一下先创建一个临时的外部表。

2、 创建外部表

原表:

create table TEST.test01(user_name varchar2(32),age number(3,0),height number(4,1)
)

原数据:

csv 文件(不同的打开方式,显示的会不一样):

        在 Oracle 数据库中,外部表是一种特殊类型的表,它并不将数据实际存储在数据库内部,而是提供了一种直接访问存储在数据库外部文件中数据的方式,就好像这些数据是存储在数据库表中一样。

1)创建逻辑目录(需DBA权限)

CREATE DIRECTORY restore AS 'D:\Oracle19c\restore';

2)授予用户对这个目录的读写权限 

GRANT READ, WRITE ON DIRECTORY restore TO TEST;

3)创建外部表

        上面的建表语句就跟原始表一样就行。

CREATE TABLE TEST.test02 (user_name varchar2(32),age number(3,0),height number(4,1)
)
ORGANIZATION external (type oracle_loaderdefault directory restoreaccess parameters(records delimited by newlineskip 1badfile 'bad.txt'logfile 'log.txt'fields terminated by ","ENCLOSED BY '"'missing field values are null)location('test.csv')
);

注释: 

ORGANIZATION external :创建外部表的组织部分,指定外部表的相关属性
type oracle_loader:指定外部表的类型为 oracle_loader,这是 Oracle 提供的用于加载外部数据的接口类型
default directory restore:指定默认的目录对象,该目录对象需要提前创建,用于指定外部文件所在的路径
access parameters: 定义访问外部文件的参数,这些参数告诉 Oracle 如何读取外部文件
records delimited by newline:指定记录的分隔符为换行符,意味着每一行就是一个记录
skip 1:跳过文件的第一行,通常用于跳过表头
badfile 'bad.txt':指定坏文件的名称,当在加载数据过程中遇到不符合规则的数据时,这些数据会被记录到该文件中
logfile 'log.txt':指定日志文件的名称,在加载数据过程中的详细信息,如错误信息、处理进度等会被记录到该文件中
fields terminated by ",":指定字段之间的分隔符为逗号,即文件中每一行的数据是通过逗号来分隔不同字段的
ENCLOSED BY '"':指定字段值是被双引号包围的,当字段值中包含分隔符或特殊字符时,使用双引号可以正确解析字段值
missing field values are null:当某个字段的值缺失时,将其视为 NULL 值
location('test.csv'):指定外部文件的位置,这里的文件名是 test.csv,文件应位于 restore 目录对象所指向的路径下

        提示:这里要把 csv 文件放到刚才创建的逻辑目录对应的实际目录下。

3)建立好之后,查询可能会提示

        只需要在查询前执行以下这句话,修改 Oracle 外部表(TEST.test02)的拒绝限制设置。

ALTER TABLE TEST.test02 reject LIMIT unlimited;

        再进行查询,就没问题了。

select * from TEST.test02;

        然后再把这个表的数据迁到你想要还原的表里,或者直接用这个表的数据,新建一张表。

CREATE TABLE TEST.test03 AS SELECT * FROM TEST.test02

        这样就相当于把 csv 文件还原到数据库了。

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

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

相关文章

【华为OD- B卷 01 - 传递悄悄话 100分(python、java、c、c++、js)】

【华为OD- B卷 01 - 传递悄悄话 100分(python、java、c、c++、js)】 题目 给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。 初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花…

房贷利率计算前端小程序

利率计算前端小程序 视图效果展示如下&#xff1a; 在这里插入代码片 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&qu…

自制操作系统day8 (鼠标数据取得、通往32位模式之路、A20GATE、切换到保护模式、控制寄存器cr0-cr4以及cr8、ALIGNB)

day8 鼠标数据取得方法 fifo8_init(&mousefifo, 128, mousebuf); for (;;) { io_cli(); if (fifo8_status(&keyfifo) fifo8_status(&mousefifo) 0) { io_stihlt(); } else { if (fifo8_status(&keyfifo) ! 0) { i fifo8_get(&keyfifo); io_sti(); spr…

IP大科普:住宅IP、机房IP、原生IP、双ISP

不同类型的IP在跨境电商、广告营销、网络技术、数据收集等领域都有广泛应用&#xff0c;比如常见的住宅IP、机房IP、原生IP、双ISP等&#xff0c;这些IP分别都有什么特点&#xff0c;发挥什么作用&#xff0c;适合哪些业务场景&#xff1f; 一、IP类型及其作用 1.住宅IP 住宅…

Elasticsearch面试题带答案

Elasticsearch面试题带答案 Elasticsearch面试题及答案【最新版】Elasticsearch高级面试题大全(2025版),发现网上很多Elasticsearch面试题及答案整理都没有答案,所以花了很长时间搜集,本套Elasticsearch面试题大全,Elasticsearch面试题大汇总,有大量经典的Elasticsearch面…

Eigen与OpenCV矩阵操作全面对比:最大值、最小值、平均值

功能对比总表 功能Eigen 方法OpenCV 方法主要区别最大值mat.maxCoeff(&row, &col)cv::minMaxLoc(mat, NULL, &maxVal, NULL, &maxLoc)Eigen需要分开调用&#xff0c;OpenCV一次获取最小值mat.minCoeff(&row, &col)cv::minMaxLoc(mat, &minVal, NU…

echarts之双折线渐变图

vue3echarts实现双折线渐变图 echarts中文官网&#xff1a;https://echarts.apache.org/examples/zh/index.html 效果图展示&#xff1a; 整体代码如下&#xff1a; <template><div id"lineChart" style"width:100%;height:400px;"></di…

MD编辑器推荐【Obsidian】含下载安装和实用教程

为什么推荐 Obsidian &#xff1f; 免费 &#xff08;Typora 开始收费了&#xff09;Typora 实现的功能&#xff0c;它都有&#xff01;代码块可一键复制 文件目录支持文件夹 大纲支持折叠、搜索 特色功能 – 白板 特色功能 – 关系图谱 下载 https://pan.baidu.com/s/1I1fSly…

vue 鼠标经过时显示/隐藏其他元素

方式一&#xff1a; 使用纯css方式 , :hover是可以控制其他元素 1、 当两个元素是父子关系 <div class"all_" ><div> <i class"iconfont icon-sun sun"></i></div> </div> .all_{} .sun {display: none; /* 默认…

静态网站部署:如何通过GitHub免费部署一个静态网站

GitHub提供的免费静态网站托管服务可以无需担心昂贵的服务器费用和复杂的设置步骤&#xff0c;本篇文章中将一步步解如何通过GitHub免费部署一个静态网站&#xff0c;帮助大家将创意和作品快速展现给世界。 目录 了解基础情况 创建基础站点 在线调试站点 前端项目部署 部署…

Pytorch里面多任务Loss是加起来还是分别backward? | Pytorch | 深度学习

当你在深度学习中进入“多任务学习(Multi-task Learning)”的领域,第一道关卡可能不是设计网络结构,也不是准备数据集,而是:多个Loss到底是加起来一起backward,还是分别backward? 这个问题看似简单,却涉及PyTorch计算图的构建逻辑、自动求导机制、内存管理、任务耦合…

基于DPABI提取nii文件模板的中心点坐标

基于DPABI提取nii文件模板的中心点坐标 在使用DPABI&#xff08;Data Processing Assistant for Resting-State fMRI&#xff09;处理NIfTI&#xff08;.nii&#xff09;文件时&#xff0c;可以通过以下步骤提取模板中每个坐标点的中心点坐标&#xff1a;https://wenku.csdn.n…

redis 基本命令-17 (KEYS、EXISTS、TYPE、TTL)

Redis 基本命令&#xff1a;KEYS、EXISTS、TYPE、TTL Redis 提供了一套基本命令&#xff0c;这些命令对于管理密钥和了解数据库中存储的数据至关重要。这些命令虽然简单&#xff0c;但提供了对 Redis 实例的结构和状态的重要见解。具体来说&#xff0c;KEYS、EXISTS、TYPE 和 …

加速leveldb查询性能之Cache技术

加速leveldb查询性能之Cache技术 目录 1.两种Cache2.Table Cache3.Block Cache 注&#xff1a;本节所有内容更新至星球。 学习本节之前最好提前需要学习前面两篇文章&#xff0c;这样便好理解本节内容。 多图文讲解leveldb之SST/LDB文件格式 【深入浅出leveldb】LRU与哈希表 1.…

5.2.3 使用配置文件方式整合MyBatis

本实战通过使用Spring Boot和MyBatis技术栈&#xff0c;实现了文章列表显示功能。首先&#xff0c;通过创建ArticleMapper接口和对应的ArticleMapper.xml配置文件&#xff0c;实现了对文章数据的增删改查操作&#xff0c;并通过单元测试验证了功能的正确性。接着&#xff0c;通…

Node.js 源码架构详解

Node.js 的源码是一个庞大且复杂的项目&#xff0c;它主要由 C 和 JavaScript 构成。要完全理解每一部分需要大量的时间和精力。我会给你一个高层次的概述&#xff0c;并指出一些关键的目录和组件&#xff0c;帮助你开始探索。 Node.js 的核心架构 Node.js 的核心可以概括为以…

【NLP 76、Faiss 向量数据库】

压抑与痛苦&#xff0c;那些辗转反侧的夜&#xff0c;终会让我们更加强大 —— 25.5.20 Faiss&#xff08;Facebook AI Similarity Search&#xff09;是由 Facebook AI 团队开发的一个开源库&#xff0c;用于高效相似性搜索的库&#xff0c;特别适用于大规模向…

Go 语言简介

1. Go 语言简介 1.1 什么是 Go 语言 Go语言&#xff0c;通常被称为Golang&#xff0c;是由Google在2007年开始开发&#xff0c;并在2009年正式发布的一种开源编程语言。Go语言的设计初衷是解决大型软件开发中的效率和可维护性问题&#xff0c;特别是在多核处理器和网络化系统…

VMware虚拟机突然无法ssh连接

遇到的情况&#xff1a; 功能全部正常的情况下&#xff0c;没有修改任何配置&#xff0c;重启电脑之后无法ssh连接 其实不太可能的可能原因&#xff1a; 1、虚拟机内部sshd服务未运行 systemctl status sshd systemctl start sshd 2、检查SSH端口监听 netstat -an | grep :…

[ 计算机网络 ] | 宏观谈谈计算机网络

&#xff08;目录占位&#xff09; 网络间通信&#xff0c;本质是不同的两个用户通信&#xff1b;本质是两个不同主机上的两个进程间通信。 因为物理距离的提升&#xff0c;就衍生出了很多问题。TCP/IP协议栈 / OSI七层模型&#xff0c;将协议分层&#xff0c;每一层都是为了…