IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Sqlldr导Excel文件导Oracle数据库 -> 正文阅读

[大数据]Sqlldr导Excel文件导Oracle数据库

使用sqlldr把Excel导入Oracle数据库我总结为三个步骤:

????????1.在Oracle数据库创建对应要导入数据的表,以及涉及到的列。

????????2.在控制文件中,写入相关内容。

????????3.Win+R打开命令行窗口,执行sqlldr命令。

当导入的数据不是很大时,如下所示:

1.(已存为csv文件),如下:

2.控制文件:

load data
infile 'e:\test.csv'
append into table test_order fields terminated by ','?
trailing nullcols(
product_id, user_name ,phone_num, address ,order_date ,delivery_date) ??
注意:当控制文件中的列不定义类型及大小时默认为char(255)

3.Win+R打开命令行窗口,执行命令。

查看Oracle数据库的内容:

csv实际数据7条,但实际插入数据6条,原因分析:

查看报错日志:

这里报错是因为在Oracle数据库建表时,各列的数据类型都不一样,而在控制文件里面把各列都默认为char类型的,当使用sqlldr导入数据时,会自动把控制文件的类型转换为与Oracle对应的数据类型,而在导入的scv文件的第一行,在控制文件重为char类型,在Oracle对应的可能为date类型,因不能成转换,所以报错。

解决办法:1.在Oracle数据库把所有的列东定义为varchar2类型。

? ? ? ? ? ? ? ? ? ?2.把csv文件的第一行删了。?

当导入的数据,某一列对应的内容太大

该列超过了默认的255,则可以在其列后定义类型及大小,如下:(csv文件加入一行,Oracle对应增加一列)

Oracle:alter table test_order add introduction varchar2(600);

?控制文件:

load data
infile 'e:\test.csv'
append into table test_order fields terminated by ','?
trailing nullcols(
product_id, user_name ,phone_num, address ,order_date ,delivery_date,introduction)

报错如下:

记录 4: 被拒绝 - 表 TEST_ORDER 的列 INTRODUCTION 出现错误。
数据文件的字段超出最大长度

更改控制文件:

load data
infile 'e:\test.csv'
append into table test_order fields terminated by ','?
trailing nullcols(
product_id, user_name ,phone_num, address ,order_date ,delivery_date,introduction char(666))

运行结果:

查看表:

?对控制文件中的append,insert,replace的说明:

append:在表里追加内容,表可以不为空。

insert:在表里插入数据,表要为空,否则报错。

replace:把表里的覆盖,类似overwrite,表不为空,也不会报错。

即:控制文件

load data
infile 'e:\test.csv'
append/insert/replace?into table test_order fields terminated by ','?
trailing nullcols(
product_id, user_name ,phone_num, address ,order_date ,delivery_date,introduction char(666))

三种情况分别截图如下:

append:在表里追加内容,表可以不为空。

?insert:在表里插入数据,表要为空,否则报错。

replace:把表里的覆盖,类似overwrite,表不为空,也不会报错。

?想要获取关于更多sqlldr的知识,敬请期待。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:15:37  更:2022-05-24 18:16:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:33:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码