oracle----导入、导出DMP文件

Oracle可以导入、导出整个数据库、某个用户下的数据库、某张表的dmp文件数据

 

oracle10g远程数据库导入、导出DMP文件

终端登录数据库(终端导入、导出)

cmd-----》sqlplus /nolog----》conn wtwz/wtwz@192.168.2.134:1521/gdsdp(以用户wtwz登录,wtwz有导入导出的权限)

如果用户没有权限,则需要给用户追加权限:

cmd----》sqlplus /nolog(sqlplus与oracle进行交互)----》conn sys/kezhu2013 as sysdba(以sysdba用户登陆oracle) 

删除用户:

drop user wtwz cascade; 

新建用户:

create user wtwz identified by wtwz default tablespace eep;(如果已经创建过用户,这步可以省略)

授予系统权限:

grant CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION to wtwz;

导出 :

1、全部导出 :

$exp wtwz/wtwz@192.168.2.134:1521/gdsdp file=d:\sdp.dmp rows=y,compress=n,full=y

wtwz:分别是登录数据库的账号和密码

gdsdp:数据库名(实例名)

file=d:\sdp.dmp :导出文件的存放路径及保存的名字

rows:

compress:导出文件是否压缩 n不,y是

full:是否全部导出 y是,n不

2、将system用户与sys用户的表导出:

$exp wtwz/wtwz@192.168.2.134:1521/gdsdp file=d:/sdp.dmp owner=(system,sys)

3、将表inner_notify、notify_staff_relat导出:

$exp wtwz/wtwz@192.168.2.134:1521/gdsdp file=d:/sdp.dmp tables=(inner_notify,notify_staff_relat)

4、将表table1中的字段filed1以"00"打头的数据导出:

$exp wtwz/wtwz@192.168.2.134:1521/gdsdp file=d:/sdp.dmp tables=(table1) query=/" where filed1 like '00%'/"


导入:

1、全部导入:

$imp wtwz/[email protected]:1521/gdsdp file=d:/sdp.dmp full=yes,ignore=y

file=d:/sdp.dmp  :导入文件的存放路径

full:是否全部导出  y是,n不

ignore:是否导入已存在的表 y不导入,n导入

2、将d:/sdp.dmp 中的表table1 导入:

$imp wtwz/[email protected]:1521/gdsdp  file=d:/sdp.dmp tables=(table1)

oracle10g本地数据库导入、导出DMP文件

导入: 

方法一:(终端导入)

 先将目录转到bin下,比如我的Oracle安装路径为:c:/oracle,那么bin目录为:C:/oracle/product/10.1.0/db_1/BIN(要用到oracle目录下的imp.exe)

开始->运行->cmd->cd C:/oracle/product/10.1.0/db_1/BIN->

$imp jhla/jhla@orcl file='c:/jhla.dmp' from user='jhla' to user='jhla'

按照上面的顺序运行命令即可,

jhla/jhla分别为用户名/密码

orcl数据库名,如:@192.168.2.134:1521/king

file='c:/jhla.dmp' 导入的文件存放路径

from  user='jhla'

to      user='jhla'

 

方法二:(网页客户端Enterprise Manager Console导入)

1.用SYS用户名,以DBA的身份在ie中登入到数据库(ORACLE客户端Enterprise Manager Console)

 

2.在方案->用户与权限->用户

  新建用户

  给该用户授予“角色”:

  CONNECT,DBA,EXP_FULL_DATABASE,IMP_FULL_DATABASE,RESOURCE

  授予系统权限:

  ALTER USER,COMMENT ANY TABLE,CREATE ANY VIEW,CREATESESSION,

  CREATE USER,DELETE ANY TABLE,DROP ANY VIEW,DROP USER,

  UNLIMITED TABLESPACE

 

3.在命令行下执行:(一定完全按照以下步骤)

$imp 用户名/口令  回车

填写导入文件路径:EXPDAT.DMP>c:\a.dmp

输入插入缓冲区大小:默认不填 回车

只列出导入文件的内容:   回车

忽略创建错误:yes

导入权限:yes

导入表数据:yes

导入整个导出文件:yes

等待……

成功终止导入,但出现警告。

例如:

4.打开PLSQL  Developer,用新建的用户名和口令,以normal身份登录

5.在tables中可以查看导入到表

6.到此结束

导出:

$exp username/password@服务名 file=文件路径及文件名

服务器名的获取:

1、 先登录conn 用户名/密码

2、 执行下列sql命令:select name from v$database

例:我的数据库pcms的用户名和密码都是mmis,服务名为pcms 我要导出到D盘下的pcms.dmp文件,可以这样写:

$exp mmis/mmis@pcms file=d:\pcms.dmp

SQL> $exp 用户名/密码@服务名 file=路径+文件名

如下图所示:

 $exp gengjingzhen/********@XE file=d:grains.dmp

 oracle10gPL\SQL导入、导出DMP文件

方法一:可视化导入、导出;前提:用户数据库已创建、用户角色权限已分配、pl\sql已登录数据库)

导出:

1、 tools --> export table

2、选中要导出的表

3、选择导出表的数据时有三种方式:Oracle Export,Sql Insert,pl/sql developer

     1)Oracle Export:导出DMP文件(二进制、跨平台、可包含权限)

     2)  Sql Insert:导出SQL文件(可编辑、适合小数据量、表中不能有大字段blob、clob、long否则不能导出)

     3)pl/sql developer :导出PDE文件(只有plsql自己能导入导出、不能编辑)

 

 

导出数据到excel文件 :选中数据表---->query data---->选中要导出的数据----->右键copy to excel

导入:

1、系统用户登录 PL\SQL,修改导入DMP文件用户的角色:追加dba权限

 

 

 

2、切换为用户登录PL\SQL, tools --> inport table

方法二:命令式导入、导出;前提:用户数据库已创建、用户角色权限已分配、pl\sql已登录数据库)

Command Window----》

导入:$imp wtwz/[email protected]:1521/gdsdp file=d:\ynfywl_bak_20140323.DMP full=yes

导出:$exp wtwz/wtwz@192.168.2.134:1521/gdsdp file=d:\sdp.dmp rows=y,compress=n

大家知道Colb吗?

CLOB定义

  数据库中的一种保存文件所使用的类型。

  Character Large Object

  SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。Clob 对象在它被创建的事务处理期间有效。

  在一些数据库系统里,也使用Text 作为CLOB的别名,比如SQL Server

CLOB和BLOB的区别

  CLOB使用CHAR来保存数据。 如:保存XML文档。

  BLOB就是使用二进制保存数据。 如:保存位图。

JAVA里面对CLOB的操作

  在绝大多数情况下,使用2种方法使用CLOB

  1 相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可

  2 如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可

  读取数据

  ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");

  rs.next();

  Reader reader = rs.getCharacterStream(2);

  插入数据

  PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");

  pstmt.setInt(1, 1);

  pstmt.setString(2, htmlStr);

  pstmt.executeUpdate();

  更新数据

  Statement stmt = con.createStatement();

  ResultSet rs = stmt.executeQuery("SELECT * FROM test1");

  rs.next();

  Clob clob = rs.getClob(2);

  long pos = clob.position("dog", 1);

  clob.setString(1, "cat", len, 3);

  rs.updateClob(2, clob);

rs.updateRow();       

猜你喜欢

转载自2277259257.iteye.com/blog/2035567