众所周知,MicrosoftExcel能很直观而方便地进行数据输入,统计,生成图表,但它的数据管理能力有限,对大量的数据查询能力不足,如果利用它数据计算方面的优点和大型 数据库 ORACLE的数据查询优点,可以设计出功能强大的数据处理系统,

众所周知,MicrosoftExcel能很直观而方便地进行数据输入,统计,生成图表,但它的数据管理能力有限,对大量的数据查询能力不足,如果利用它数据计算方面的优点和大型数据库ORACLE的数据查询优点,可以设计出功能强大的数据处理系统。

假设与Excel数据文件相对应的职工情况表EMP已在ORAC LE系统中创建,此表中各字段按照顺序分别是职工代号( Emp—No),职工姓名(Ename),工资(Salary),雇用时间(Hiredate)。

本文将通过此例来介绍Excel与ORACL E数据交换的具体步骤。

1、将Excel中的数据装入ORACLE数据库

通过ORACLE数据库系统的高级应用工具SQL*Loader 可以将原来的Excel中存储的数据直接装入ORACLE数据库的表中。

首先,在MicrosoftExcel中完成表格数据输入后,选择“保存文件”命令,在出现对话框的“文件类型”栏中选取“格式化文本文件(空格分隔)”以形成一个标准格式化文本文件(*.PRN)或是选取“CSV(逗号分隔)” 形成一个逗号定界文件(*.CSV)。这两者的区别是:标准格式的文本文件中每个记录等长,数据间按原库文件字段长度紧凑排列,字符型字段数据左对齐,数据型字段数据右对齐,不足部分用空格补足。逗号定界文件特点是各记录可不等长,字段按其定义顺序依次排列,字段间用逗号分隔,字符型字段和数据型字段的左右端空格被消去。

因为这两种格式文件有不同的数据装入方法,假如我们将职工情况EMP表存为EMP.CSV,数据变成如下形式:

120,JOE,1192.64,93/04/11

121,KERT,309.60,87/01/14

23,PETER,1500.25,84/03/12

124,SMITH,678.00,91/01/07

15,YOUNG,2390.12,80/05/03

接着,通过记事本建立以下控制文件,它包含了数据文件的名称及其格式,文件字段如何定界,数据类型是怎样等内容,将该装载控制文件保存为EMP.CTL:

LOADDATA INFILE 'C:\EMP.CSV’BADFILE 'EMP.BAD' DISCARDFILE 'EMP.DSC' APPEND INTOTABLEEMP FILEDS TERMINATED BY "," (Emp-No,Ename,Salary,HiredateDATA(8) "Y Y/MM/DD")

之后,双击SQL*Loader图标,进入ORA?CLE7的数据装载工具,在弹出的SQLLOADER主屏幕对话框中,分别输入用户登录名,密码,数据库名称和控制文件名,确认后进行数据装载。这样SQL*Loader一边转换、装入数据,一边将执行过程中的错误信息和统计信息存入登录文件(LogFile)中,把ORACLE拒绝装入的原始数据存入拒绝文件(RejectFile)。用户可以在装载完成后,打开登录文件文件查看数据的装载情况,了解因为何种原因使得数据被拒绝,是因为数据本身不符合数据库的数表定义还是违反了完整性原则等其它原因。由此可见,数据装载不仅快速而且安全。

特别要提到的是可以通过SQL*Loader同时将数据文件装入多个数表。例如在Excel表格中输入数据时,可以对应输入该职工参加的项目代号(Proj-No),现在需要将这些数据分别装入EMP表和PROJ表,EXCEL与ORACLE间的数据互传法数据库》(https://www.unjs.com)。数据文件按标准格式存储如下所示,其中第5,6,7列均为该职工参加的项目代号:

120JOE1192.6493/04/11101112

121KERT309.6087/01/142812

23PETER1500.2584/03/124017

124SMITH678.0091/01/07102021

15YOUNG2390.1280/05/03432617

编写的装载数据控制文件可以是:

LOADDATA INFILE'C:\EMP.PRN'  BADFILE'EMP.BAD' DISCARDFILE 'EMP.DSC' APPEND INTOTABLE EMP(Emp-NoPOSITION(01:05)INTEGER EXTERNAL,EnamePOSITION(06:15)CHAR, SalaryPOSITION(16:25)DECIMAL EXTERNAL, HiredatePOSITION(26:34)INTEGEREXTERNAL) INTOTABLEPROJ WHENProj-No!K'' (Emp-NoPOSITION(1:4)INTEGEREXTERNAL, Proj-NoPOSITION(35:38)INTEGEREXTERNAL) INTOTABLEPROJ WHENProj-No!K'' (Emp-NoPOSITION(1:4)INTEGEREXTERNAL, Proj-NoPOSITION(39:42)INTEGEREXTERNAL) INTOTABLEPROJ WHENProj-No!K'' (Emp-NoPOSITION(1:4)INTEGEREXTERNAL, Proj-NoPOSITION(43:46)INTEGEREXTERNAL)

注意,CHAR,INTEGEREXTERNAL和DECIMALEXTERNAL这些数据类型是指数据文件中的数据类型,而不是数据库中数表的数据类型。数字字段的EXTERNAL暗示了它不是以二进制格式存储的数字,而是以人可以识别的ASCII码格式存储。

这样运行SQL*Loader之后,所需数据被分别装入两个数表,非常方便。

2、将ORACLE数据文件转化为Excel文件 当需要在Excel下获取ORACLE数据时,可以通过ODBC (假设ORACLE是安装在Win?dowsNT操作系统下)。ODBC的英文意思是OpenDatabaseConnectivity(开放式数据库连接),它是Microsoft提供的一组标准应用程序编程接口(API)。ODBC建立了一组应用程序直接操作数据库数据的规范,允许用户的应用程序使用基于SQL语言的不同类型的数据库管理系统。 在Excel的“数据”菜单中获取“获取外部数据”,M icrosoftQuery被启动。这是一个非常有用的数据查询程序,它能在网络上以客户机/服务器形式快速查询数据。在其中的File菜单中选取NewQuery,“SelectDataSource ”窗口出现,提示用户在DataSource列表中选取需获取的数据所在的数据源。点按“Other”按钮,“ODBCDataSour ce”窗口出现,列出了机器中已被定义的所有ODBC数据源,如果在其中未能找到ORACLE数据源,说明对应于ORACLE 数据源的ODBCDriver驱动程序未有安装。此时,只要点选 New按纽,在出现的“AddDataSource”对话框中选取ORAC LE7.1Driver,“Oracle7ODBCSetup”窗口出现,分别输入数据库名字和有效的SQL*Net主机连接字符串(格式如:P/ServerName/InstantId),确认后MicrosoftQrery 就与ORACLE中的数据库相连。这之后,用户就可以象使用本机上的数据一样,对服务器数据进行操作。查询得到结果退出MicrosoftQuery时,选择“返回Excel”,数据就被取回到Excel中,在那里进行报表,制图处理,输出结果。

这样就可以非常方便地在Excel和ORACLE之间完成数据互传,实现这两个软件取长补短,使其更好地为我们服务。

原文转自:http://www.ltesting.net

oracle不同库之间传送文件,EXCEL与ORACLE间的数据互传法数据库 -电脑资料相关推荐

  1. winxp上传文件到服务器,通过SQLServer的xp_cmdshell在服务器之间传送文件

    xp_cmdshell作为sql Server的扩展存储过程之一,也是sql Server在安全大敌,很多sql安全手册上都要求关闭此过程,这不利用其特性简要实现了一个在sql服务器之间传取文件的功能 ...

  2. 在oracle官网 下载安装文件需要注册oracle账号

    在oracle官网 下载安装文件需要注册oracle账号,但是往往大家并不想注册,毕竟很麻烦啦.但是当你点击接受条款后可以不登录直接用迅雷下载绕过登录步骤

  3. 三步搞定oracle 11G 导出的pmd文件,导入oracle 12C数据库中

    将oracle 11G 导出的pmd文件,导入oracle 12C数据库中,将面临数据库用户名不匹配问题,12C用户名必须前缀c##,而导出的pmd文件又带原始11G数据库的用户名,无法在12C中建不 ...

  4. 两台centos之间传送文件

    最近在CentOS系统中(主机A)读数据.由于A主机只是作为数据读取,具体的Deep Learning 实验,需要在主机B( CentOS )中进行,需要将主机A上的数据传输.由于主机A并不是一直开着 ...

  5. linux rcp命令作用,Linux之间传送文件之rcp命令

    1. rcp命令简介 rcp代表"remote file copy"(远程文件拷贝).两台Linux主机之间复制文件可以使用它.rcp支持复制文件,也支持复制目录. 注意: rcp ...

  6. Windows 文件共享功能使用教程,局域网多台电脑之间传送文件

    设想一下,家里或者公司有多台电脑,连接同一个Wifi,也就是处于同一个局域网中. 在不能使用微信.网盘的文件传输功能的情况下,这多台电脑之间,就只能用U盘传送数据吗? 不.Windows系统中已经提供 ...

  7. oracle Blob保存方式,关于文件保存到Oracle中BLOB字段的方法及例子

    关于文件保存到Oracle中BLOB字段的方法及例子 ------------------------------------------- public class FileOpClass { pu ...

  8. oracle同库复制schema,使用impdp复制oracle的schema数据迁移 | 学步园

    测试环境: 源: windows 2003, oracle 10202 目标:windows 2000, oracle 10203 注:本文中所说的 schema 和 user 是一个意思. impd ...

  9. oracle一个库给多个用户名,配置oracle数据库服务器(为用户分配账户及空间和建立账户管理机制)...

    配置数据库服务器 介绍如何为用户分配账户和空间以及如何设置权限. 14.4.1 为用户分配账户及空间 数据库服务器软件和管理软件安装好之后,接下来就是为用户分配账户和空间了.本小节将详细介绍为用户分配 ...

最新文章

  1. 标准自编码器(TensorFlow实现)
  2. java 之 语言基础
  3. 洛谷3613睡觉困难综合征(LCT维护链信息(前后缀)+贪心)
  4. 8步教你打开Android之门 NDK入门教程
  5. 在CentOS 7 上搭建LAMP
  6. server2003 IIS6.0 网站不可用
  7. NAT网关自动去掉TCP syn包的时间戳
  8. VMwar配置静态ip
  9. 选offer的5个维度
  10. modbus功能码04实例_MODBUS功能码简介
  11. mongodb笔记 getting started
  12. 2019最新《网易云课堂C++开发工程师案例-网吧收银系统(MFC+ADO)》
  13. EXT2/EXT3文件系统
  14. [原创]Kjava手机顽童模拟器
  15. 关于 360 度评估
  16. HTML图片映射矩形坐标,HTML图片热区map area的用法(转载)
  17. 如何提升自己的打字速度?
  18. 小米9将正式更新android q,小米又良心一波,小米9用户将迎九大更新,Android Q即将到来...
  19. 有效预警6要素:亿级调用量的阿里云弹性计算SRE实践
  20. QT/C++从新手到老手系列之QT中级篇-李浩林-专题视频课程

热门文章

  1. DOM-11 【兼容】鼠标行为坐标系、pageXY封装、拖拽函数封装
  2. Css3实现波浪线效果1
  3. 川崎机器人c#通讯(转)
  4. OSPF地址汇总配置
  5. Windows系统下oracle数据库每天定时备份
  6. 简易版jQuery——mQuery
  7. setSignVisible的修改
  8. 算法复杂度为O(N) 的排序算法
  9. 计算UILabel带行间距的行高
  10. 札记__ADT:URL,Lua:strlen方法