将execl文件数据导入到数据库中(代替外部表的办法)

简介:

环境描述:

数据库版本: oracle Release 11.2.0.3.0版本

execl版本 :WPS Office 9.1.0.4764 -- 详细版本号 , 其实就是金山的那个WPS

需求描述:

开发提供了5个execl表格,格式为:.xlsx文件 每个表中数据量不是很大 最多的行数为:645行,开发想通过 5个表中的数据和生产库进行做数据比对,然后修改数据。

表格的数据 列共4列:(我以为用 字母表示代替列名

唯一号 姓名 身份证号码 户口性质

a b c d

我的处理思路:

1 使用外部表进行数据导入。

但是外部表真是问题多多啊,有遇到了奇葩问题了, 为了节约读者的观赏性:

我把内容分为两部分 1 代替外部表的办法 2 第二次遇到外部表的奇葩问题。

那部分感兴趣看那部分,不罗嗦。

1 代替外部表的办法

1. 创建要导入的表的表结构:

比如我的上面所述的表,我将表起名为 data1 列有 a b c d

create table data1

(

a number(10),

b varchar2(30),

c number(20),

d number(5)

);

2. 表创建好以后可以利用 PLSQL工具直接将execl表中的数据直接粘贴进去!

在execl表中将所有列(除了标题行)全部选中,在创建的表中执行:

select * from data1 for update; 打开锁 选中 A B C D 四列如下图:可以直接粘贴。


这样就可以完全复制进去了。


需要注意的是 不要这样进行粘贴,会发现少一列。


这样的话 第一列的id 不见了,原因是: 第一列会贴在边框上。


总结:

这个办法,确实挺实用的,但是限制数据量小的表使用。

这样还节省了execl文本格式的转换工作,外部表分割时候定义的分割符的问题。

比如,假如列中自带有, 那么数据将出现问题,就先说到这里,可以实际操作一下,评判出那个更有效率更准确。

2 第二次遇到外部表的奇葩问题。

表的列:

唯一号 姓名 身份证号码 户口性质

a b c d

遇到的问题描述:

创建外部表时候 列的类型创建为: A number B varchar2 c number d number 的表创建了查询却没有数据。

如果我将表的列 创建成为 : A varchar2 B varchar2 C varchar2 D varchar2 就可以查到数据 但是使用where条件查询过滤数据的时候不能用。

操作步骤:

1 将execl文件格式化转换为.csv格式,然后上次到服务器的目录中。

文件上传到了/home/oralce/ 数据内容格式为: 注(最后一列将字符转为数字了,开发要求的)

格式为:

1 本市城镇职工

2 外埠城镇职工

3 本市农村劳动力

4 外埠农村劳动力

5 本市农民工

6 外埠农民工


2 创建外部表:

创建逻辑目录并授权:

conn / as sysdba

CREATE DIRECTORY TESTDIR AS '/home/oracle';

GRANT READ,WRITE ON DIRECTORY TESTDIR TO xcy;


CREATE TABLE test_date

(a number(10),

b varchar2(40),

c number(20) ,

d number(20)

)

ORGANIZATION EXTERNAL

(TYPE ORACLE_LOADER

DEFAULT DIRECTORY TESTDIR

ACCESS PARAMETERS(RECORDS DELIMITED BY NEWLINE

FIELDS TERMINATED BY ','

(a char,

b char,

c char,

d char

))

LOCATION('data1.csv'))

reject limit 40000;

如果 数值类型都为 vahrcahr2 的就可以


但是这样不能用 数值类型,查询不出结果目的没有达到。。


奇怪吧。。这个问题我今天想了一天,更换用户,sys用户 都实过结果一样的问题, 最后我也没能解决。大家有知道是什么原因的请留言给我。



本文转自ICT时空 dbasdk博客,原文链接:将execl文件数据导入到数据库中(代替外部表的办法) ,如需转载请自行联系原博主。

相关文章
|
29天前
|
监控 关系型数据库 数据库
OceanBase数据库常见问题之文件存在但是数据库提示文件不存在如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
1月前
|
SQL Java 数据库连接
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
17 0
|
2天前
|
NoSQL MongoDB 数据库
MongoDB数据恢复—MongoDB数据库文件被破坏的数据恢复案例
服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分区进行了格式化操作,然后将数据库文件拷回原分区,重新启动MongoDB服务,服务无法启动。
|
7天前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
处理爬取的数据,可存储为txt、csv(适合表格数据)或json(适合结构化数据)文件。若需存储大量数据并执行复杂查询,可选择关系型(如MySQL)或非关系型(如MongoDB)数据库。以MySQL为例,需安装数据库和Python的pymysql库,创建数据库和表,然后编写Python代码进行数据操作。选择存储方式应考虑数据类型、数量及后续处理需求。
14 1
|
1月前
|
SQL Java 数据库连接
springboot解析txt文件顺便加到数据库中(nohup文件)
springboot解析txt文件顺便加到数据库中(nohup文件)
112 1
|
3月前
|
SQL 存储 Oracle
oracle如何定期备份数据库sql文件
【1月更文挑战第7天】oracle如何定期备份数据库sql文件
58 8
|
4月前
|
SQL 关系型数据库 MySQL
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
111 0
|
4月前
|
消息中间件 存储 中间件
Greenplum GPKafka【部署 01】使用GPKafka实现Kafka数据导入Greenplum数据库完整流程分享(扩展安装文件网盘分享)
Greenplum GPKafka【部署 01】使用GPKafka实现Kafka数据导入Greenplum数据库完整流程分享(扩展安装文件网盘分享)
37 0
|
4月前
|
XML 关系型数据库 MySQL
【Mysql】有关数据库中一对多/一对一,多对一xml中文件映射问题
【Mysql】有关数据库中一对多/一对一,多对一xml中文件映射问题
27 0
|
5天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
35 2

热门文章

最新文章