Windows中使用Oracle外部表导入数据
EXCEL与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/11121,KERT,309.60,87/01/1423,PETER,1500.25,84/03/12124,SMITH,678.00,91/01/0715,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主屏幕对话框中,分别输入用户登录名,密码,数据库名称和控制文件名,确认后进行数据装载。
Oracle中怎样导入数据库文件
Oracle中怎样导入数据库文件
1导出
1.1导出具体的分为:导出表,导出方案,导出数据库三种方式。
导出使用exp命令来完成的,该命令常用的选项有:
userid:用于指定执行导出操作的用户名,口令,连接字符串
tables:用于指定执行导出操作的表
owner:用于指定执行导出操作的方案
full=y:用于指定执行导出操作的数据库
intype:用于指定执行导出操作的增量类型
rows:用于指定执行导向操作是否要导出表中的数据
file:用于指定导出文件名
oracle
2导出表
2.1导出自己的表
exp userid=scott/tiger@myoral tables=(emp.dept) file=d:\e1.dmp
2.2导出其他方案的表
如果用户要导出其他方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表
E:\oracle\ora92\bin>exp userid=system/manager@myoral tables=(scott.emp)=d:\e.emp 特别说明:在导入和导出的时候,要到oracle目录的bin目录下。
2.3导出表的结构
exp userid=scott/tiger@accp tables=(emp) file=d:\e3.dmp rows=n。
oracle 导出导入操作
oracle 导出导入操作基础知识:一、数据导出(exp.exe)1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochu.dmp文件中exp system/accp@orcl file=d:\daochu.dmp full=y2、将数据库orcl中scott用户的对象导出exp scott/accp@orcl file=d:\daochu.dmp owner=(scott)3、将数据库orcl中的scott用户的表emp、dept导出exp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)4、将数据库orcl中的表空间testSpace导出exp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)二、数据导入(imp.exe)1、将d:\daochu.dmp 中的数据导入orcl数据库中。
imp system/accp@orcl file=d:\daochu.dmp full=y2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。
imp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y3、将d:\daochu.dmp中的表emp导入imp scott/accp@orcl file=d:\daochu.dmp tables=(emp)ok,现在尝试导出数据首先查看字符集select userenv(‘language’) from dual;分别查看字符集是否相同,不相同的话更改一致,否则不能正常导入我在执行过程中出现错误error: ora-12712(解决办法)shutdown immediate;startup mount;ALTER SESSION SET SQL_TRACE=TRUE;ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;ALTER SYSTEM SET AQ_TM_PROCESSES=0;ALTER DATABASE OPEN;set linesize 120;alter database character set zhs16gbk;RROR at line 1:ORA-12712: new character set must be a superset of old character setALTER DATABASE character set INTERNAL_USE zhs16gbk;ALTER SESSION SET SQL_TRACE=FALSE;shutdown immediate;STARTUP执行导出命令exp scott/cat@orcl wner=scott direct=y file=scott.dmp执行成功后将scott.dmp 拷贝至目标数据库执行导入命令imp scott/cat@orcl fromuser=scott touser=scott ignore=y file=d:\jzz.DMP。
Oracle中的导入导出表及数据
Oracle中的导入导出表及数据Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能可以构建两个相同的数据库。
1.用plsql实现1.1使用plsql连接oracle,点击工具——导出表1.2选择要导出的表1.3可执行文件在C:\oracle\product\10.2.0\db_1\bin 目录下导出是exp 导入是imp导出的为dmp文件1.4导入文件:点击工具——导入表在导入文件中选择要导入的表确认后点击导入2.用dos命令实现2.1Windows——R——cmd2.2输入dos命令:exp youngtop_us/ail@192.168.0.46/orcl10g file=F:/fileSys.dmp log=F:/fileSys.logstatistics=none tables=file_attach,file_tree,file_permissionps:exp user/password@主机地址file=存储位置log=存储位置statistics=none tables=tablename3.将数据导出到excel表中及将excel表数据导入数据库3.1选中要导出数据的表右键——查询数据3.2选中表中的数据邮件——复制到excel3.3在excel中保存3.4可以不按照数据库中的字段存放顺序,编辑形成Excel表中的数据3.5选中要导入的数据后另存一份txt文档3.6在plsql中点击工具——文本导入器进入到文本导入器的页面后,先点击“来自文本文件的数据”选项卡,然后点击打开按钮,选择数据录入.txt文件3.7在配置中进行配置如果不将标题名勾选上,则会导致字段名也当做记录被导入到数据库中,影响正确录入3.8点击导入按钮将数据导入oracle数据库中。
关于oracle导出excel和excel导入oracle的经验总结
关于oracle导出excel和excel导入oracle的经验总结关于oracle导出excel和excel导入oracle的经验总结一、oracle导出excel方法一:最简单的方法---用工具plsql dev执行File =>new Report Window 。
在sql标签中写入需要的sql,点击执行或按快捷键F8,会先吃出查询结果。
在右侧工具栏,可以选择按钮另存为html、copy as html、export results,其中export results按钮中就可以导出excel文件、csv文件、tsv文件、xml文件。
方法二:最专业的方法---用原始工具sqlplus原文参见:/archives/2005/04/eoasqlplusieaae.html我做了一点修改,如下所示:1.main.sql用以设置环境,调用具体功能脚本2.功能脚本-get_tables.sql为实现具体功能之脚本通过这样两个脚本可以避免spool中的冗余信息,参考:如何去除SQLPLUS中SPOOL的冗余信息示例如下:1.main.sql脚本:[oracle@jumper utl_file]$ more main.sqlset linesize 200set term off verify off feedback off pagesize 999set markup html on entmap ON spool on preformat off spool d:/tables.xls@d:/get_tables.sqlspool offexit2.get_tables.sql脚本:[oracle@jumper utl_file]$ more get_tables.sqlselectowner,table_name,tablespace_name,blocks,last_analyzed from all_tables order by 1,2;3.执行并获得输出:[oracle@jumper utl_file]$ sqlplus "/ as sysdba" @d:/main.sqlSQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - ProductionDisconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - Production[oracle@jumper utl_file]$ ls -l tables.xls-rw-r--r-- 1 oracle dba 69539 Apr 25 10:30 tables.xls[oracle@jumper utl_file]$此处输出为xls文件,通过下图我们可以看到输出效果:把main.sql脚本中的,spool tables.xls更改为spool tables.htm,我们可以获得htm格式输出,效果如下图:方法三:最悲剧的方法,之所以称为悲剧,是因为这个方法其实很简单,但是你可能没有注意。
oracle数据库导入导出命令
Oracle数据导入导出imp/exp功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录\$ora10g\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp 中exp system/manager@TEST file=d:\daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3 将数据库中的表table1 、table2导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
Oracle数据导入导出详细步骤
Oracle 数据导入导出详细步骤说明:1.请先设置好 oracle 实例的环境变量 [grneas 是当前已安装的数据库实例名 ]Windows 下在 cmd 命令窗口执行: set ORACLE_SID=grneas Linux/AIX 下在终端窗口执行: exportORACLE_SID=grneasWindows 下查看该变量是否正确的命令:echo %ORACLE_SID%Linux/AIX 下查看该变量是否正确的命令: echo $ORACLE_SID 2.进入 sqlplus 窗口的命令:所有操作系统都用: sqlplus /nologconn / as sysdba 一、 Oracle 数据导出(备份)1.创建目录(导出文件存放位置)在 sqlplus 窗口下执行:grant read,write on directory expdpdir to system,grneas;其中: expdpdir 为目录名, grneas 是 EAS 用户名3.数据导出windows 在 cmd 窗口, linux 、AIX 在终端 ssh 窗口直接执行:(不要进入 sqlplus 窗口)expdp grneas/kingdee@grneas schemas=grneasdirectory=expdpdirdumpfile=grneas_20110706.dmplogfile=grneas_20110706.log 说明: 1).以上命令要在同一行输入再回车2).其中的 grneas/kingdee@grneas 是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量 ORACLE_SID 为当前要导出的实例,则可不加 @grneas3).schemas=grneas表示要导出的 EAS 用户(方案)为 grneas, 在oracle 下,数据库对象在不同用户间是隔离的,每个用户都有自己的一些表、视图等,所以我们只要导出 EAS 用户的数据就可以了4).directory=expdpdir 表示导出时使用的目录,也就是文件存放的位置5).dumpfile=grneas_20110706.dmp 表示导出的数据文件名6).logfile=grneas_20110706.log 表示导出日志文件名,也存放在相同目录下二、 Oracle 数据导入(还原)以下是将原 grneas 数据备份还原到新账套 grneas21.创建表空间在 sqlplus 窗口下执行:create tablespaceEAS_D_grneas2_STANDARD datafile'/oradata/test/EAS_D_grneas2_STANDARD.dbf' size 2000m;以上命令创建数据表空间,要在同一行下回车执行 create temporarytablespace EAS_T_grneas2_STANDARD tempfile'/oradata/test/EAS_T_grneas2_STANDARD.dbf' size 500m;以上命令创建临时表空间,要在同一行下回车执行2.设置表空间自动增长在 sqlplus 窗口下执行:alter database datafile'/oradata/test/EAS_D_grneas2_STANDARD.dbf' autoextend on;alter database tempfile'/oradata/test/EAS_T_grneas2_STANDARD.dbf' autoextend on;3.创建目录(若目录已创建,可以略去不做,准备导入的备份文件要放在此目录下)在 sqlplus 窗口下执行: create user grneas2 identified by kingdee default tablespace EAS_D_grneas2_STANDARD temporary tablespace EAS_T_grneas2_STANDARD; 说明:identified by kingdee 表示密码为 kingdee 5.用户授权grant connect,resource,dba to grneas2;6.目录授权grant read,write on directory expdpdir tosystem,grneas2;7•数据导入(将原grneas账套恢复到一个新的 grneas2账套)impdp grneas2/kingdee@grneas directory=expdpdirdumpfile=grneas_20110706.dmplogfile=impgrneas_20110706.l og schemas=grneasremap_schema=grneas:grneas2remap_tablespace=EAS_D_grneas_STANDARD:EAS_D_grneas2_STANDARD,EAS_T_grneas_STANDARD:EAS_T_grneas2_STANDARD--sqlfile=script.sql ( 生成 SQL 脚本 )说明: 1).以上命令要在同一行输入再回车2).其中的grneas2/kingdee@grneas是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量 ORACLE_SID 为当前要导入的实例,则可不加 @grneas3).schemas=grneas表示要导入的原 EAS 用户(方案)为grneas4).directory=expdpdir 表示导入时使用的目录,也就是文件存放的位置5).dumpfile=grneas_20110706.dmp 表示要导入的数据文件6).logfile=impgrneas_20110706.log 表示导入时产生的日志文件7).remap_schema=grneas:grneas2表示导入的数据也由原来的 EAS_D_grneas_STANDARD 改为存储到 EAS_D_grneas2_STANDARD 表空间9).--sqlfile=script.sql ( 生成 SQL 脚本)表示只生成脚本,有加这个参数就只生成脚本没有导入数据,要查看脚本才加这个参数,否则在导入的时候,就不要加这个参数注意区别大小写……其它 oracle 命令查看用户与表空间Select * from dba_users;查看锁表进程 SQL 语句 1:select sess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_modefrom v$locked_object lo,dba_objects ao, v$session sesswhere ao.object_id = lo.object_id andlo.session_id = sess.sid;查看锁表进程 SQL 语句 2:select * from v$session t1, v$locked_objectt2 where t1.sid = t2.SESSION_ID;杀掉锁表进程:如有記錄則表示有 lock ,記錄下 SID 和 serial# ,將記錄的ID 替換下面的 738,1429,即可解除 LOCK alter system kill session '738,1429';数据库用户被锁定时解锁命令alter user theas account unlock;启动 EMemctl start dbconsole。
Oracle数据库数据导入的方法
Oracle数据库数据导入的方法每个数据库管理员都会面临数据导入的问题,这有可能发生在数据库的新老移植过程中,或者是在数据库崩溃后的恢复重建过程中,还有可能是在创建测试数据库的模拟环境过程中,总之作为一名合格的数据库管理员,你应该做好接受各种数据导入请求的技术储备,同时还要尽量满足人本能的对导入速度的苛求。
本文仅针对 Oracle 数据库所提供的加速数据导入的各种特性和技术进行探讨,其中的一些方法也可以转化应用于其他数据库。
以下七种数据导入方法哪个最适用需要针对具体情况具体分析,我也附带列举了影响导入速度的各种因素供斟酌。
为了比较各种数据导入方法的效果,我创建了示例表和数据集,并用各种方法导入示例数据集来计算总体导入时间和导入进程占用 CPU 时间,这里得出的时间仅供参考。
需要说明的是,建议你使用 Oracle 9i 企业版数据库,当然你也可以尝试使用 Oracle 7.3 以上的标准版数据库。
本文使用的机器配置为:CPU Intel P4,内存 256M,数据库 Oracle 9i 企业版。
示例表结构和数据集为了演示和比较各种数据导入方法,我假定数据导入任务是将外部文件数据导入到 Oracle 数据库的CALLS表中,外部数据文件包含十万条呼叫中心记录,将近 6MB 的文件大小,具体的数据示例如下:82302284384,2003-04-18:13:18:58,5001,投诉,手机三包维修质量82302284385,2003-04-18:13:18:59,3352,咨询,供水热线的号码82302284386,2003-04-18:13:19:01,3142,建议,增设公交线路接受导入数据的表名是 CALLS,表结构如下:Name Null? Type Comment------------ --------- ------------- -----------------CALL_ID NOT NULL NUMBER Primary keyCALL_DATE NOT NULL DATE Non-unique indexEMP_ID NOT NULL NUMBERCALL_TYPE NOT NULL VARCHAR2(12)DETAILS VARCHAR2(25)逐条数据插入INSERT数据导入的最简单方法就是编写 INSERT 语句,将数据逐条插入数据库。
windows下Oracle导入导出用户数据
Oracle导入导出用户数据-- 导出用户-- 一、新建目录。
目录名称:third,目录路径:E:\OracleUserCeshi create directory third as 'E:\OracleUserCeshi';-- 二、查看之前创建的路径名称是否存在select * from dba_directories;-- 三、数据库已存在用户执行①操作。
数据库需要重新创建用户执行②操作-- ①begin-- 数据库已有用户:hrl,用户可以读写的目录名称:thirdGRANT READ, WRITE ON DIRECTORY third to hrl;-- ①end-- ②begin-- 创建用户create user hrl identified by hrl;-- 给已经创建的用户修改密码alter user hrl identified by oracle;-- 创建一个新的表空间。
表空间名称:hrl_hrl,表空间路径:E:\OracleUserCeshi\hrl_hrl.dbfcreatetablespacehrl_hrldatafile 'E:\OracleUserCeshi\hrl_hrl.dbf' size 200M;-- 创建好表空间,将表空间分配给用户.alter user hrl default tablespacehrl_hrl;-- 给用户分配了表空间,用户还不能登陆(没有登录权限),还需要为用户分配权限grant create session,createtable,createview,createsequence,unlimitedtablespace to hrl;-- 数据库已有用户:hrl,用户可以读写的目录名称:thirdGRANT READ, WRITE ON DIRECTORY third to hrl;--②end-- 四、数据库用户名:hrl,数据库用户密码:oracle,数据库地址:10.216.60.188,数据库sid:orcl,目录名称:third,DMP文件名称:hrl.dmp,日志文件名称:hrl.log。
Oracle导入和导出
Oracle提供两个工具imp.exe 和exp.exe分别用于导入和导出数据。
这两个工具位于Oracle_home/bin目录下。
导出数据exp1 将数据库ATSTestDB完全导出,用户名system 密码123456 导出到c:\export.dmp中exp system/123456@ATSTestDB file=c:\export.dmp full=y其中ATSTestDB为数据库名称,system为该数据库里的账户,123456为其密码。
2 将数据库中system用户与sys用户的所有相关资源导出(表,存储过程,方法,视图等等)exp system/123456@ATSTestDB file= c:\export.dmp owner=(system,sys)3 将数据库中的表sys.table1、owbsys.table2导出exp system/123456@ATSTestDB file= c:\export.dmp tables=( sys.table1, owbsys.table2)注意,需要加上表的schema名称,如果没有加的话默认是导当前connected用户的表,当然你连接上去的账户要对相应的表有权限。
4 将数据库中的表table1中的字段Title以"GangGe"打头的数据导出exp system/123456@ATSTestDB file= c:\export.dmp tables=(table1) query=\" where Title like 'GangGe%'\"斜杠“\”后面跟冒号是为了转义字符冒号”““用的,因为后面是一条条件查询语句。
Query参数只能指定一个,如果Query要为多张表,所以同样,tables里面也只能有一张表,或者多张表,然后query里面的条件在这些表上面都可以运行。
否则只好多写几条exp语句了。
Oracle数据库使用SQL Loader导入外部数据的方法详解
Oracle数据库导入外部数据如何实现SQL*LOADER不用下载啊oracle装好后,在oracle的bin目录下面就有啊sqlldr.exeSQL*Loader是Oracle数据库导入外部数据的一个工具.它和DB2的Load工具相似,但有更多的选择,它支持变化的加载模式,可选的加载及多表加载.如何使用 SQL*Loader 工具我们可以用Oracle的sqlldr工具来导入数据。
例如:sqlldr scott/tiger control=loader.ctl控制文件(loader.ctl) 将加载一个外部数据文件(含分隔符). loader.ctl如下:load datainfile 'c:\data\mydata.csv'into table empfields terminated by "," optionally enclosed by '"'( empno, empname, sal, deptno )mydata.csv 如下:10001,"Scott Tiger", 1000, 4010002,"Frank Naude", 500, 20下面是一个指定记录长度的示例控制文件。
"*" 代表数据文件与此文件同名,即在后面使用BEGINDATA段来标识数据。
load datainfile *replaceinto table departments( dept position (02:05) char(4),deptname position (08:27) char(20))begindataCOSC COMPUTER SCIENCEENGL ENGLISH LITERATUREMATH MATHEMATICSPOLY POLITICAL SCIENCEUnloader这样的工具Oracle 没有提供将数据导出到一个文件的工具。
XORACLE数据导入之SQLLOAD外部数据导入
XORACLE数据导⼊之SQLLOAD外部数据导⼊今天公司需要把外部⽂本的⼀些数据导⼊到数据库。
这⾥把相关步骤和注意的地⽅记录,供需要的⼈参考学习!这⾥的环境是在windows下的数据库,linux或者其他数据库同理!1、准备⼯作:创建需要导⼊数据的表结构,如果已有相关的表,此步省略!SQL>create table test2 (3 host VARCHAR2(30),4user_name VARCHAR2(30),5 ip_address VARCHAR2(15),6 pass VARCHAR2(4) default'no'not null,7 judge NUMBER default0not null,8 endtime DATE9 );表已创建。
2、编写sqlload导⼊数据的控制⽂件,这⾥测试的控制⽂件如下,可以根据⾃⼰需要添加相关的控制参数,测试的话复制保存为txt⽂件即可!LOAD DATAINFILE 'd:\data.txt'INTO TABLE testTRUNCATEfields terminated by','trailing nullcols(HOST,USER_NAME,IP_AddrESS,PASS,JUDge,endTIME)控制⽂件还有其他参数,根据⾃⼰需求调整和测试:附部分控制参数:具体⽤法以官⽅⽂档为准OPTIONS (skip=1,rows=128) -- sqlldr 命令显⽰的选项可以写到这⾥边来,skip=1 ⽤来跳过数据中的第⼀⾏LOAD DATAINFILE "users_data.csv" --指定外部数据⽂件,可以是不同格式的数据⽂件,如csv、txt都⽀持可以写多个 INFILE "another_data_file.csv" 指定多个数据⽂件truncate--操作类型,⽤ truncate table 来清除表中原有记录,根据情况⽽定是否需要清楚原有表中数据INTO TABLE users --要插⼊记录的表Fields terminated by "," --数据中每⾏记录⽤ "," 分隔Optionally enclosed by'"'--数据中每个字段⽤ '"' 框起,⽐如字段中有 "," 分隔符时trailing nullcols --表的字段没有对应的值时允许为空(virtual_column FILLER, --这是⼀个虚拟字段,⽤来跳过由 PL/SQL Developer ⽣成的第⼀列序号user_id number, --字段可以指定类型,否则认为是 CHARACTER 类型, log ⽂件中有显⽰user_name,login_times,last_login DATE "YYYY-MM-DD HH24:MI:SS" -- 指定接受⽇期的格式,相当⽤ to_date() 函数转换)insert--为缺省⽅式,在数据装载开始时要求表为空append --在表中追加新记录replace--删除旧记录(⽤ delete from table 语句),替换成新装载的记录truncate--删除旧记录(⽤ truncate table 语句),替换成新装载的记录3、创建需要导⼊的数据,注意数据格式必须和表结构严格对应,否则导⼊失败!测试数据如下:有部分数据最后字段为空,所以控制⽂件中需要加trailing nullcols 参数!ttt,SCOTT,192.168.1.111,yes,1,qq,JACK,192.168.1.20,no,1,YY,TOM,192.168.1.20,no,1,WEB1,HAHA,192.168.1.1,no,1,XXX,ROBIN,111.111.111.111,no,1,08-AUG-08DB2,LUCY,192.168.10.10,no,1,ORACLE,LILY,222.222.222.222,no,1,WORKGROUP,DENNIS,133.133.133.133,no,0,08-AUG-08DCR,CANDY,192.168.100.10,no,1,T3,FLY,192.168.10.33,no,1,T1,LINDA,192.168.10.200,no,1,08-AUG-08T2,LILEI,192.168.100.31,no,1,08-AUG-084、导⼊数据-导⼊时也有相关的参数进⾏控制附部分导⼊参数:各参数可以再命令⾏下输⼊sqlldr查看C:\Documents and Settings\Administrator>sqlldrSQL*Loader: Release 11.2.0.1.0- Production on星期三 2⽉2717:13:242013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.⽤法: SQLLDR keyword=value [,keyword=value,...]有效的关键字:userid -- ORACLE ⽤户名/⼝令control -- 控制⽂件名log-- ⽇志⽂件名bad -- 错误⽂件名data -- 数据⽂件名discard -- 废弃⽂件名discardmax -- 允许废弃的⽂件的数⽬ (全部默认)skip -- 要跳过的逻辑记录的数⽬ (默认 0)load-- 要加载的逻辑记录的数⽬ (全部默认)errors -- 允许的错误的数⽬ (默认 50)rows -- 常规路径绑定数组中或直接路径保存数据间的⾏数(默认: 常规路径64, 所有直接路径)bindsize -- 常规路径绑定数组的⼤⼩ (以字节计) (默认 256000)silent -- 运⾏过程中隐藏消息 (标题,反馈,错误,废弃,分区)direct -- 使⽤直接路径 (默认 FALSE)parfile -- 参数⽂件: 包含参数说明的⽂件的名称parallel -- 执⾏并⾏加载 (默认 FALSE)file-- 要从以下对象中分配区的⽂件skip_unusable_indexes -- 不允许/允许使⽤⽆⽤的索引或索引分区 (默认 FALSE)skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为⽆⽤ (默认 FALSE)commit_discontinued -- 提交加载中断时已加载的⾏ (默认 FALSE)readsize -- 读取缓冲区的⼤⼩ (默认 1048576)external_table -- 使⽤外部表进⾏加载; NOT_USED, GENERATE_ONLY, EXECUTE (默认 NOT_USED)columnarrayrows -- 直接路径列数组的⾏数 (默认 5000)streamsize -- 直接路径流缓冲区的⼤⼩ (以字节计) (默认 256000)multithreading -- 在直接路径中使⽤多线程resumable -- 启⽤或禁⽤当前的可恢复会话 (默认 FALSE)resumable_name -- 有助于标识可恢复语句的⽂本字符串resumable_timeout -- RESUMABLE 的等待时间 (以秒计) (默认 7200)date_cache -- ⽇期转换⾼速缓存的⼤⼩ (以条⽬计) (默认 1000)no_index_errors -- 出现任何索引错误时中⽌加载 (默认 FALSE)如下命令:control=指定控制⽂件和路径log=导⼊⽇志⽂件保存 bad=错误信息 data=数据⽂件开始导⼊:C:\Documents and Settings\Administrator>sqlldr scott/tiger control=d:\sqlload.txt log=d:\loadlog.txt bad=d:\bad.txt data=d:\data.txtSQL*Loader: Release 11.2.0.1.0- Production on星期三 2⽉2717:06:522013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.达到提交点-逻辑记录计数12导⼊成功后查看结果:C:\Documents and Settings\Administrator>sqlplus scott/tigerSQL*Plus: Release 11.2.0.1.0 Production on星期三 2⽉2717:07:052013Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0- ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>select*from test;HOST USER_NAME IP_ADDRESS PASS JUDGE ENDTIME---------- ---------- ------------------------------ -------- ---------- --------------ttt SCOTT 192.168.1.111 yes 1qq JACK 192.168.1.20 no 1YY TOM 192.168.1.20 no 1WEB1 HAHA 192.168.1.1 no 1DB2 LUCY 192.168.10.10 no 1ORACLE LILY 222.222.222.222 no 1DCR CANDY 192.168.100.10 no 1T3 FLY 192.168.10.33 no 1已选择8⾏。
ORACLE数据导出和导入解读
ORACLE数据导出和导入Cd\回到根目錄分类:技术积累2007.3.4 20:14 作者:海之声| 评论:0 | 阅读:0一. 导出工具exp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binexp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS 间迁移它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子$exp test/test123@appdbEnter array fetch buffer size: 4096 > 回车Export file: expdat.dmp > m.dmp 生成导出的文件名(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3Export table data (yes/no): yes > 回车Compress extents (yes/no): yes > 回车Export done in ZHS16GBK character set and ZHS16GBK NCHAR character setAbout to export specified tables via Conventional Path ...Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名. . exporting table CMAMENU 4336 rows exportedTable(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名nTable(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车Export terminated successfully without warnings.3. 导出工具exp非交互式命令行方式的例子$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\"file=/directory/scott2.dmp说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log参数文件username.par内容userid=username/userpasswordbuffer=8192000compress=ngrants=y说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改filesize指定生成的二进制备份文件的最大字节数(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)二.导入工具imp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binimp导入工具将EXP形成的二进制系统文件导入到数据库中.它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
oracle导入导出数据命令
这里的myoracle是前面配置的客户端本地服务名。
或
SQL>conn / as sysdba
SQL>startup
Windows下,启动监听器:C:lsnrctl start。
启动Oracle实例服务:C:oradim –startup –sid myoracle。
(1)启动服务器端监听器与数据库服务:
Linux/Unix下,启动监听器:$ lsnrctl start。
· 关闭监听器:$ lsnrctl stop。
· 查看监听状态:$ lsnrctl status。
SQL>conn sys@myoracle as sysdba
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
Linux/Unix下:$ lsnrctl start aListener。
Windows下:C:lsnrctl start aListener。
(2)测试连接数据库服务器。
测试的方法多种多样,可以在上面配置本地服务名时进行测试,也可以是第三方客户端工具,如PL/SQL Developer,最方便的是用Oracle自带的SQLplus工具,以下利用SQLplus进行测试:
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
oracle导数据的方式
oracle导数据的方式摘要:1.导数据的概念2.Oracle 数据库的导数据方式a.数据泵b.导入/导出工具c.SQL*Loaderd.OEM 备份与恢复3.数据泵的优势与使用方法4.导入/导出工具的使用场景与步骤5.SQL*Loader 的工作原理与配置6.OEM 备份与恢复的功能与操作7.总结与展望正文:1.导数据的概念在Oracle 数据库中,导数据是指将数据从一个源数据库传输到另一个目标数据库的过程。
导数据通常用于数据迁移、数据备份与恢复等场景。
为了实现这一目标,Oracle 提供了多种导数据方式。
本文将对这些方式进行详细介绍。
2.Oracle 数据库的导数据方式a.数据泵数据泵(Data Pump)是Oracle 数据库提供的一种高效、可扩展的导数据方式。
它基于Oracle 的内置进程,使用PL/SQL 进行数据传输。
数据泵支持批量传输、事务传输以及并行传输等多种传输模式,能够满足不同场景的需求。
b.导入/导出工具导入/导出工具(Import/Export)是Oracle数据库自带的一款命令行工具,用于实现数据的导入与导出。
它支持多种文件格式,如CSV、TXT等。
通过配置相应的参数文件,导入/导出工具可以实现自动化数据传输。
c.SQL*LoaderSQL*Loader 是Oracle 提供的一款用于加载大量数据的工具。
它通过SQL 语句将数据从外部文件加载到数据库表中。
SQL*Loader 支持各种数据类型与约束,能够满足复杂数据结构的导入需求。
d.OEM 备份与恢复Oracle Enterprise Manager(OEM)是Oracle 数据库的管理工具,提供备份与恢复功能。
通过OEM,用户可以方便地对数据库进行备份与恢复操作。
此外,OEM 还支持自动备份与恢复策略,提高数据安全性。
3.数据泵的优势与使用方法数据泵的优势在于其高效性与可扩展性。
数据泵支持批量传输、事务传输以及并行传输等多种传输模式,能够满足不同场景的需求。
CMD操作oracle数据导库过程图解
CMD操作oracle数据导库过程图解1.cmd窗⼝下,登陆管理员⽤户:sqlplus sys/1 as sysdba2.创建新⽤户并为⽤户授权: (1)创建⽤户---Create the usercreate user Helq3_Proidentified by "1"default tablespace MOFtemporary tablespace TEMPprofile DEFAULT; (2)为⽤户授权SQL> grant dba to helq3_cpbgt_20200714 with admin option;SQL> grant unlimited tablespace to helq3_cpbgt_20200714 with admin option;SQL> grant imp_full_database to helq3_cpbgt_20200714;3.数据导⼊ (1)imp导⼊:imp userid=helq3_cpbgt_20200714/1@orcl file=E:\cpcz.dmp full=yignore=y (2)数据泵导⼊impdp ⾸先,创建,并为⽤户授权此⽂件夹 数据泵导⼊:impdp helq3_cpbgt_20200714/1 dumpfile=cpcz.dmp directory=expdp_dir remap_schema=helq3_cpbgt_20200714(导出时的⽤户名):helq3_cpbgt_202007144.数据导出 (1)exp导出:exp helq3_cpbgt_20200714/1@orcl file=E:\cpcz.dmp log=cpcz.log 导出带空表的数据库->先做查询,再正常导出:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; (2)expdp 数据泵导出:expdp helq3_cpbgt_20200714/1@orclschemas=helq3_cpbgt_20200714 dumpfile=cpcz.dmp directory=expdp_dir logfile=cpcz.log以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
oracle数据导出导入
Oracle数据导入导出imp/exp功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过net8 assistant中本地-->服务命名添加正确的服务命名其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录\ora81\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3 将数据库中的表table1 、table2导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows中使用Oracle外部表导入数据
Oracle 数据库的外部表,是指不在数据库中的表,也称“虚表”,对外部表可以使用标准SQL 语句进行装载,而不需要先将外部表中的数据装载进数据库中。
只读:由于外部表实际上是磁盘中的文件,所以不能通过SQL语句对外部表文件进行修改。
对于外部表,实际使用中可以方便的用来加载数据,比如初始化用户数据,或者将历史数据报表使用外部表加载用来作相关临时性分析,而不需要程序来提供导入支持。
闲话少说,按照下面的例子操练之后,相信大家都掌握外部表的使用原理,在具体使用中融会贯通。
(在linux中的使用方法在此文中不作描述,原理相同)
--创建目录
create directory test_dir as'E:\external_table';
--sys登录,授权目录给指定用户
grant read,write on directory test_dir to test_user;
--使用被授权的用户test_user创建外部表:
create table test_table
(empno int,
ename varchar2(20),
sal int,
deptno int)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY test_dir
ACCESS Parameters
(
RECORDS DELIMITED BY NEWLINE
badfile 'bad_test.txt'
LOGFILE'log_test.txt'
FIELDS TERMINATED BY','
MISSING FIELD VALUES ARE NULL
(empno,ename,sal,deptno)
)
LOCATION('t1.txt')
)
;
--查询外部表
select * from test_table;
--查看外部表的两个字典视图
select * from dba_external_tables;
select * from dba_external_locations;
SELECT OWNER, TABLE_NAME, DEFAULT_DIRECTORY_NAME, ACCESS_PARAMETERS
FROM DBA_EXTERNAL_TABLES;
--将外部表数据变成内部表,可以进行任意编辑,或者通过SQL语句将数据插入到你需要的表中create table aaa as select * from test_table;
select * from aaa;
--删除外部表目录,外部表即不存在
drop directory test_dir;。