orical导入办公软件excel
1. orcl导出
在“运行”里打开cmd
2
输入命令:sqlplussystem/123456@orcl
其中system是登录数据库的用户名
123456是用户名的密码
orcl是数据库实例名称
3
如果提示命令无效,那就是你没有配置好oracle的环境变量(想当年我也被这个问题困扰着),配置oracle环境变量的方法如下:
1、右击“我的电脑”->选择“属性”->选择“高级”->单击“环境变量”2、选择“path”这一行,单击“编辑”,在“path”的变量值文本框的最后面先加入一个分号“:”,然后再分号后面加入sqlplus文件的目录路径,如“c:\programfiles\oracle\product\10.2.0\db_1\bin”,然后点击“确定”按钮。3、如果在“系统变量”列表框下面的“变量”列中找不到“oracle_home”和“oracle_sid”这两个变量,则需要下面操作,否则无需一下操作。4、在“系统变量”中点击“新建”按钮,在“变量名”中输入“oracle_home”,变量值中输入oracle的安装目录路径,如“c:\programfiles\oracle\product\10.2.0\db_1”,然后点击“确定”按钮。5、在“系统变量”中点击“新建”按钮,在“变量名”中输入“oracle_sid”,变量值中输入数据库的实例名,然后点击“确定”按钮。
oracle_home:oracle数据库软件的安装目录oracle_sid:oracle数据库的实例名oracle数据库实例名:用于和操作系统进行联系的标识,即数据库和操作系统之间的交换是通过数据库实例名来体现的。
end
第二步,expdp备份命令
1
创建oracle的备份目录:
sql>createdirectorydpdata1as'd:\temp\dmp';
这仅仅是在oracle里设定的目录,并没有真正创建
2
可以通过这句命令查看到这个目录
sql>select*fromdba_directories;
3
赋于要导出数据表的所属用户权限
sql>grantread,writeondirectorydpdata1tosshe;
4
好了,到了关键一步,之前走了不少弯路,但其它是小问题,在网上零零碎碎查了很多资料,终于找到原因。
首先,要切换回命令窗口,不要再在sql>下运行,然后输入命令:
expdpsystem/123456@orcldirectory=dpdata1dumpfile=sshe.dmplogfile=sshe.logschemas=sshe
5
上面报了一个错ora-39002:操作无效
原因是d:\temp\dmp这个目录不存在,别以为createdirectory之后就会自动生成文件夹,也别以为执行expdp后会自动生成文件夹,要自己手动新建这个目录文件夹的。新建文件夹后再试一下,果然成功了!恭喜你,已成功备份!
6
如果你要问,导出来的dmp文件怎样还原回去。好吧,做人做到底,为了省去你再找方法的麻烦,这里我也做一个演示(一般备份的数据是等到数据库有问题时才用的上)。
首先,再一次登录数据库sqlplussystem/123456@orcl
然后,删除目标数据库用户dropusersshecascade;
7
现在来再一次创建用户,可以用命令创建,也可以在plsql里创建,这里在plsql创建。
用system登录数据库,然后右键users--新建
然后填写你的账号名称,必须和备份时的用户一致,并赋于相应的权限
最后点击应用,完成用户创建。
8
返回dos命令窗口,不再是sql>
输入导入命令:impdpsystem/123456@orcldirectory=dpdata1dumpfile=sshe.dmplogfile=sshe.logschemas=sshe
导入成功!
end
步骤3定时执行备份任务
做一个按年月日命名的批处理。在d:\temp\目录下新建一个文件,随便命名为.bat,我的命名为sshe.bat,编辑为如下代码
-------------------------------------------------------------------------
@echooffremsetbackupfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmpremsetlogfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.logremdelete30daysfilesforfiles/p"d:\temp\dmp"/d-30/c"cmd/cechodeleting@file...&&del/f@path"cdd:\temp\dmp
rembackupschemassetbackupfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmpsetlogfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.logexpdpsshe/sshedirectory=dir_dpdumpfile=%backupfile%logfile=%logfile%schemas=ssheparallel=4
-------------------------------------------------------------------------------
可以试执行一下,会自动生成一个以年月日命名的备份文件
forfiles/p"d:\temp\dmp"/d-30/c"cmd/cechodeleting@file...&&del/f@path"的作用是:删除本目录下30天以后的备份文件,这个挺有用的。
做一个windows每晚自动运行数据库备份的bat,我的命名为auto.bat编辑如下内容
------------------------------------------------------------------------------
@echooffschtasks/create/tnsshe数据库定时备份/tr"d:\temp\sshe_bak.bat"/scdaily/st00:00:00/ru"system"pauseexit
------------------------------------------------------------------------------
双击auto.bat,就会在windows添加一个定时任务,每晚0点0分就会自动执行一次sshe.bat,从而完成自动备份的目的。
右键我的电脑:管理——任务计划程序——任务计划程序库,可以看到刚才添加进去的定时任务
5
可以将电脑的时钟设为23点59分50秒,等待10秒钟,看看自动备份能否成功。如果成功那就大功告成了!!
2. orcl导出数据
Oracle数据泵expdpimpdp
一、使用数据泵导出的步骤:
1、创建directory垍頭條萊
(我是用system用户创建的,scott用户没有权限)
create directory dump1 as 'e:\dump' ;
2、为scott用户授权
grant read,write on directory dump1 to scott;
3、退出system用户,执行导出操作
C:\Documents and Settings\Administrator>expdp scott/orcl directory=dump1 dumpfile=垍頭條萊
aaaaa.dmp;
4、导出成功!
二、使用数据泵将导入:
C:\Documents and Settings\Administrator>impdp scott/orcl directory=dump1 dumpfile=
AAAAA.dmp
注:如果你更改了导出文件aaaaa.dmp的位置或者你执行了drop directory dump1;條萊垍頭
则还要执行导出步骤中的1、2步骤,再进行导入操作。頭條萊垍
3. oracle导出表
如果是oracle sql developer的话,在查询结果哪儿,用右键,可以导出成excel的。
如果用pl/sql developer、toad之类的,也可以将查询结果导出成excel
pl/sql developer还可以直接copy查询结果,到excel中粘贴。
如果用navicat for oracle,可以使用导出的方法。
4. orcl导出命令
exp三种用法:
1、exp 导出某个用户全部数据库
格式:exp ywxy/ywxy@ORCL file=d:/daochu1.dmp full=y;
ywxy/ywxy@ORCL 是用户名/密码@数据库名條萊垍頭
file=d:/daochu1.dmp 是导出的路径垍頭條萊
full=y 是导出全库
2、exp 导出某个用户的某个库
格式:exp ywxy/ywxy@ORCL file=d:/daochu1.dmp owner=system;
ywxy/ywxy@ORCL 是用户名/密码@数据库名
file=d:/daochu1.dmp 是导出的路径
owner=system 是要导出的库頭條萊垍
3、exp 导出某个用户的某个表
格式:exp ywxy/ywxy@ORCL file=d:/daochu1.dmp tables=C_ZX_QYJC;
ywxy/ywxy@ORCL 是用户名/密码@数据库名
file=d:/daochu1.dmp 是导出的路径垍頭條萊
tables=C_ZX_QYJC 是导出的表名字,多个表名则 (table1,table2)形式條萊垍頭
5. orcale数据库导出
1、打开oracle数据库,点击登陆选项,点击文件选项,点击新建选项,最后点击sql窗口;
2、然后在sql窗口中进行编写sql语句的操作,勇sql语句进行查询出想要导出来的数值;
3、然后在查询出来数据的地方,不要选中数据,把鼠标放到空白单元格处进行鼠标右键操作,找到复制到Excel选项;
4、然后在复制到excel中选择想要保存的格式-->作为xls保存,打开后则是excel形式的数据;頭條萊垍
5、默认的保存路径-->将鼠标放在excel名称上-->会出现路径-->根据路径打开即可。 頭條萊垍
6. orcl导出dmp文件
Oracle导出程序Exp的使用具体过程
Oracle的导出实用程序(Export utility)允许从数据库提取数据,并且将数据写入操作系统文件。exp使用的基本格式:exp[username[/password[@service]]],以下例举exp常用用法。
1.获取帮助
exp help=y
2.导出一个完整数据库垍頭條萊
exp system/manager file=bible_db log=dible_db full=y
3.导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n頭條萊垍
4.导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark垍頭條萊
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。條萊垍頭
SET LINESIZE 132垍頭條萊
SET PAGESIZE 0頭條萊垍
SET TRIMSPOOL ON
SPOOL c:\seapark.syn垍頭條萊
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||'.'||table_name||';'
FROM dba_synonyms條萊垍頭
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF條萊垍頭
5.导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank條萊垍頭
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)頭條萊垍
6.估计导出文件的大小頭條萊垍
全部表总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';
seapark用户所属表的总字节数:
SELECT sum(bytes)頭條萊垍
FROM dba_segments垍頭條萊
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';垍頭條萊
seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'條萊垍頭
AND segment_name = 'AQUATIC_ANIMAL';垍頭條萊
7.导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type條萊垍頭
file=fruit log=fruit
UNIX系统:
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type條萊垍頭
file=fruit log=fruit
8.用多个文件分割一个导出文件
exp system/manager頭條萊垍
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hr.paycheck
9.使用参数文件
exp system/manager parfile=bible_tables.par
bible_tables.par参数文件:垍頭條萊
#Export the sample tables used for the Oracle8i Database Administrator's Bible.垍頭條萊
file=bible_tables垍頭條萊
log=bible_tables垍頭條萊
tables=(
amy.artist
amy.books垍頭條萊
seapark.checkup
seapark.items垍頭條萊
)條萊垍頭
10.增量导出垍頭條萊
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702.dmp垍頭條萊
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702.dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702.dmp
7. oracl导出数据库
1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
2、设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。
3、可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。说明如下:
3.1 使用ALLOCATE EXTENT的说明
使用ALLOCATE EXTENT可以为数据库对象分配Extent。其语法如下:
-----------
ALLOCATE EXTENT { SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer }
-----------
可以针对数据表、索引、物化视图等手工分配Extent。
ALLOCATE EXTENT使用样例:
ALLOCATE EXTENT
ALLOCATE EXTENT(SIZE integer [K | M])
ALLOCATE EXTENT(DATAFILE 'filename')
ALLOCATE EXTENT(INSTANCE integer)
ALLOCATE EXTENT(SIZE integer [K | M] DATAFILE 'filename')
ALLOCATE EXTENT(SIZE integer [K | M] INSTANCE integer)
针对数据表操作的完整语法如下:
-----------
ALTER TABLE [schema.]table_name ALLOCATE EXTENT [({ SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer})]
-----------
故,需要构建如下样子简单的SQL命令:
-----------
alter table aTabelName allocate extent
-----------
3.2 构建对空表分配空间的SQL命令,
查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:
-----------
SQL>select table_name from user_tables where NUM_ROWS=0;
-----------
根据上述查询,可以构建针对空表分配空间的命令语句,如下:
-----------
SQL>Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
-----------
批量输出上述生成的SQL语句,建立C:\createsql.sql,其内容如下:
-----------
set heading off;
set echo off;
set feedback off;
set termout on;
spool C:\allocate.sql;
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
spool off;
-----------
执行C:\createsql.sql,命令如下:
-----------
SQL>@ C:\createsql.sql;
-----------
执行完毕后,得到C:\allocate.sql文件。
打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句。
3.4 执行SQL命令,对空表分配空间:
执行C:\allocate.sql,命令如下:
-----------
SQL>@ C:\allocate.sql;
-----------
执行完毕,表已更改。
3.4 此时执行exp命令,即可把包括空表在内的所有表,正常导出。
另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的。
在Oracle10g中及以前,密码中的字母大小写无所谓。
8. orcl导出数据有记录吗
exp h1/h1 file=D:\h1.dmp log=D:\h1.log tables=(h1.table1,h1.table2,h1.table3,h1.table4) rows=n
主要就是后边rows=n 这个代表只导出表结构,而不导出数据頭條萊垍
tables=(h1.table1,h1.table2,h1.table3,h1.table4) 就是导出某些指定的表。