搜档网
当前位置:搜档网 › 将图片数据插入oracle数据库中_file1

将图片数据插入oracle数据库中_file1

将图片数据插入oracle数据库中_file1
将图片数据插入oracle数据库中_file1

Oracle中插入图片并显示(用BLOB类型)

Oracle中插入图片并显示(用BLOB类型)

要在oracle里面存入图片用 blob类型

首先在数据库里建立:

--连接到管理员

conn sys/tbsoft as sysdba;

--为scott用户授权

grant create any directory to scott;

--回到scott用户

conn scott/tiger;

--创建存储图片的表

CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL); --创建存储图片的目录

CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\picture';

--在c:下自己建一个叫picture的文件夹

CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS F_LOB BFILE;--文件类型

B_LOB BLOB;

BEGIN

iNSERT INTO IMAGE_LOB (T_ID, T_IMAGE)

VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;

--插入空的blob

F_LOB:= BFILENAME ('IMAGES', FILENAME);

--获取指定目录下的文件

DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONLY);

--以只读的方式打开文件

DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB));

--传递对象

DBMS_LOB.FILECLOSE (F_LOB);

--关闭原始文件

END;

/

--在C:\picture下放一张图片1.gif

--将该图片存入表

call IMG_INSERT('1','1.gif');

然后创建一个web项目连接数据库后创建一个BlobDAO类用来取出表中的blob 类型图片

Java代码收藏代码

public class BlobDAO {

private static final BlobDAO instance = new BlobDAO();

private Connection conn = null;

private BlobDAO() {

}

public static BlobDAO getInstance() {

return instance;

}

private void initConn() {

conn = DBAccess.getInstance().getConn();

}

public byte[] getImage(String imgname) {

BufferedInputStream ins;//取得BLOB的IO流

byte[] bt = null;

initConn();

Blob bo = null;

PreparedStatement ps = null;

ResultSet rs = null;

String sql = "select T_IMAGE from IMAGE_LOB where t_id=?"; try {

ps = conn.prepareStatement(sql);

ps.setString(1, imgname);

rs = ps.executeQuery();

if (rs.next()) {

bo = rs.getBlob("T_IMAGE");

try {

ins = new

BufferedInputStream(bo.getBinaryStream());

int bufferSize = (int) bo.length();//取得BLOB 的长度

bt = new byte[bufferSize];

try {

ins.read(bt, 0, bufferSize);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//建立字节缓存

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

rs.close();

ps.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return bt;

}

}

在action里面调用getImage()方法并显示图片在页面上

Java代码收藏代码

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

// TODO Auto-generated method stub

BlobDAO blobDAO = BlobDAO.getInstance();

byte[] bs = blobDAO.getImage("1");

try {

response.getOutputStream().write(bs);

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

添加图片到数据库

请在c盘下放入图片--c:\\4.gif

Java代码收藏代码

public void savaImg(String imgId) {

//传的是存入数据库图片的id

initConn();

Statement st = null;

BLOB blob = null; //图片类型

OutputStream outputStream = null; //输出流

File file = null; //文件

InputStream inputStream = null; //输入流

ResultSet rs = null;

try {

conn.setAutoCommit(false); //事物由程序员操作

st = conn.createStatement();

st.executeQuery("insert into IMAGE_LOB values('"+ imgId +"',empty_blob())");

rs = st.executeQuery("select T_IMAGE from IMAGE_LOB where t_id='"+ imgId +"' for update");

if (rs.next()) {

blob = (BLOB) rs.getBlob(1);

outputStream = blob.getBinaryOutputStream();

file = new File("c:\\4.gif");

inputStream = new FileInputStream(file);

byte[] b = new byte[blob.getBufferSize()];

int len = 0;

while ((len = inputStream.read(b)) != -1) { System.out.println(len);

outputStream.write(b, 0, len);

}

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

try {

inputStream.close();

outputStream.flush();

outputStream.close();

rs.close();

st.close();

https://www.sodocs.net/doc/017516541.html,mit();

conn.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

操作完毕!

作者“669098238”

oracle数据库数据的导入导出

Oracle数据库导入导出命令(备份与恢复) Toad 一个很好的oralce数据库操作与管理工具,使用它可以很方便地导入导出数据表,用户以及整个数据库。今天在这里主要讲一下用命令行来操作oracle数据导入和导出: 备份数据 1、获取帮助: exp help=y 2. 导出一个完整数据库 exp user/pwd@instance file=path full=y 示例:exp system/system@xc file = c:/hehe full =y imp tax/test@tax file=d:/dbbak.dmp full=y 3 、导出一个或一组指定用户所属的全部表、索引和其他对象 exp system/manager file=seapark log=seapark owner=seapark exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold) 示例:exp system/system@xc file=c:/hehe owner=uep 4、导出一个或多个指定表 exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist) 示例:exp system/system@xc file=c:/heh tables=(ueppm.ne_table) 恢复数据 1. 获取帮助 imp help=y 2. 导入一个完整数据库 imp system/manager file=bible_db log=dible_db full=y ignore=y 3. 导入一个或一组指定用户所属的全部表、索引和其他对象 imp system/manager file=seapark log=seapark fromuser=seapark imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold) 4. 将一个用户所属的数据导入另一个用户 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1) 5. 导入一个表 imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b) ************************ **************************** 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle 数据库中去。 1. 简单导出数据(Export)和导入数据(Import) Oracle支持三种类型的输出: (1)表方式(T方式),将指定表的数据导出。 (2)用户方式(U方式),将指定用户的所有对象及数据导出。 (3)全库方式(Full方式),将数据库中的所有对象导出。 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

Oracle Export/Import数据库备份与恢复的三种方法

Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: exp system/manager inctype=complete file=040731.dmp (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: exp system/manager inctype=incremental file=040731.dmp

带有oracle数据库的数据迁移方案

数据迁移技术方案 项目背景 某信息中心系统本次机房搬迁以及数据迁移工程是本次项目需完成的重点工作,包括整个信息中心的核心数据及业务交换中心,系统现有设备包括:核心交换机、接入交换机、服务器、存储盘阵等,迁移主要分设备迁移和数据迁移。系统搬迁具有时间短、系统结构复杂、测试时间长、设备繁多昂贵、人员多、层次复杂等特点。本项目搬迁迁移,时间非常紧,且对设备的稳定性也是一个考验。因此,必须协调好各单位人员的关系,齐心协力才可能在预定时间内完成搬迁迁移工程。 整个迁移工作分两步走,第一步先对数据进行迁移,数据迁移完成确认无误。第二步对整体信息中心所有设备进行迁移,确保所有设备正常运行。 本方案是以尽量不影响信息中心工作或将影响降低到最低为前提的情况下制定的,即先完成新机房网络接入后,确保网络畅通稳定的前提下,完成信息中心系统业务的部署,确保整个系统在新机房业务实现,整个业务系统顺利割接,然后再在特定时间点开始原机房的设备搬迁工作,在1-2工作日内完成整个服务器、网络设备的搬迁、安装及测试。并且在开机以后,继续跟踪系统的运行情况,随时处理系统运行的异常情况。我公司在资源方面有较大优势,如在搬迁迁多工作中出现设备故障,除在备品备件中提供的备件外,还可协调各方资源以最快速度解决客户设备故障问题。

系统环境 第一机房环境 ( 设备分布 第一机房设备共涉及到10个机柜,具体设备名称及数量为:38台pvg server(1810/2800)汇聚服务器、4台pvg server3800核心服务器、26台存储、1台存储控制服务器、5台交换机。 硬件设备情况 汇聚服务器 汇聚服务器品牌为网力产品,38台中32台设备作为汇聚服务器,每台设备使用2个网卡:1个网卡接入单位、另1个网卡接入存储服务器;另外6台为出口服务,只使用1个网卡。设备网口全部接到RG-6806/6810两台交换机上,以便与单位和存储设备通讯。总电口使用量为:32*2+6=70个。 核心服务器 核心服务器品牌为网力产品,4台该设备中2台为负责汇总个单位,另外2台为出口服务。每台设备使用1个网口,网口接到RG-6806/6810上。总电口使用量为:1*4=4。 存储 [ 存储品牌为XX以及部分老存储设备,存储共涉及到17台设备:1台控制器、16台存储。控制服务器使用1个网卡,接入到RG-6810上。16台存储各使用2个网口,每台存储对应两台汇聚服务器,设备网口接入到RG-6810/6806上。总电口使用量为:16*2+1=33个。 交换机

Oracle 11G 数据库迁移手册

客户的数据库采用expdp命令导出的,这是Oracle10g以后采用的新的导出方式,比exp 执行效率上有所提高。下面说明如何做导入导出: 1、环境变量设置(在Sqlplus中执行) create or replace directory as ‘c:\tmpdir’; 注:c:\tmpdir也可以是另外的随意目录,用单引号括起来 2、导出ARADMIN库 expdp /@ directory= dumpfile=xxxxxx.dat logfile=xxxx.log schemas=ARADMIN; 3、如果需要备份(通常不需要)CMDB WebService则导出AtriumAdmin库 expdp /@ directory= dumpfile=xxxxxx.dat logfile=xxxx.log schemas=ARADMIN; 4、导出成功后,把dat和log文件都拷贝到目标数据库服务器上,记住两个文件的放 置路径 5、目标库导入前操作 create or replace directory as ‘c:\tmpdir’; 注:此处的c:\tmpdir替换成两个文件的存放路径 Sqlplus登录目标库(一定要用管理员账号); sqlplus /@ as sysdba; 核对连接的库名: show parameter name; 查看连接的是哪个SID; select username from dba_users order by created;查看所有表空间命令的最后两行应该有ARADMIN和ATRIUMADMIN表空间名;

oracle数据库的导入导出及表空间的创建

oracle数据库的导入导出及表空间的创建 (1)向oracle数据库中导入完整的数据库(后缀名:dmp) 首先进入cmd,输入sqlplus/nolog运行oracle自带程序,然后输入conn/as sysdba,以数据库管理员(dba)的身份链接到后台数据库。 step1:建立临时表空间(取名为:libsys_temp) create temporary tablespace libsys_temp tempfile'D:\oracle\libsys_temp.dbf'//指定空间存放路径 size1000M//为临时表空间分配磁盘空间 autoextend on next10M maxsize2048M//若存入的数据量超过了分配的空间大小, //则以每次新增10M的大小增大表间,但最大为2048M! extent management local;//设置表空间的区管理为本地管理,为的是减少分配extent的时 //候产生的内部递归sql,提高数据库分配空间的效率. step2:建立数据表空间,用于存储导入的数据库中的所有数据(取名:libsys_data) create tablespace libsys_data logging//指明导入过程记入日志中 datafile'D:\oracle\libsys_data.dbf'//指定数据库保存的路径size10240M//注意表空间应足够大,否则导入将出错! autoextend on next100M maxsize20480M extent management local;

Oracle数据库的数据迁移方法

数据迁移的一般步骤 对数据库管理人员来说,数据库数据迁移极具挑战性,一旦措施不当,珍贵的数据资源将面临丢失的危险,要成功地实现数据库数据平滑迁移,需要周密计划和充分准备,并按照一定的步骤来完成。 设计数据迁移方案 设计数据迁移方案主要包括以下几个方面工作:研究与数据迁移相关的资料,或在网站上查询相关内容、评估和选择数据迁移的软硬件平台、选择数据迁移方法、选择数据备份和恢复策略、设计数据迁移和测试方案等。 进行数据模拟迁移 根据设计的数据迁移方案,建立一个模拟的数据迁移环境,它既能仿真实际环境又不影响实际数据,然后在数据模拟迁移环境中测试数据迁移的效果。数据模拟迁移前也应按备份策略备份模拟数据,以便数据迁移后能按恢复策略进行恢复测试。 测试数据模拟迁移 根据设计的数据迁移测试方案测试数据模拟迁移,也就是检查数据模拟迁移后数据和应用软件是否正常,主要包括:数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。 准备实施数据迁移 数据模拟迁移测试成功后,在正式实施数据迁移前还需要做好以下几个方面工作:进行完全数据备份、确定数据迁移方案、安装和配置软硬件等。 正式实施数据迁移

按照确定的数据迁移方案,正式实施数据迁移。 测试数据迁移效果 按照数据迁移测试方案测试数据迁移效果,并对数据迁移后的数据库参数和性能进行调整,使之满足数据迁移后实际应用系统的需要。 移植系统应用软件 将实际应用系统的应用软件移植到数据迁移后的数据库系统上,并使之正常运行。 正式运行应用系统 在正式实施数据迁移成功并且数据库参数和性能达到要求后,就可以正式运行应用系统,并投入实际使用。 实现向Oracle8i数据迁移

带有oracle数据库的数据迁移方案精编版

数据迁移技术方案 一、项目背景 某信息中心系统本次机房搬迁以及数据迁移工程是本次项目需完成的重点工作,包括整个信息中心的核心数据及业务交换中心,系统现有设备包括:核心交换机、接入交换机、服务器、存储盘阵等,迁移主要分设备迁移和数据迁移。系统搬迁具有时间短、系统结构复杂、测试时间长、设备繁多昂贵、人员多、层次复杂等特点。本项目搬迁迁移,时间非常紧,且对设备的稳定性也是一个考验。因此,必须协调好各单位人员的关系,齐心协力才可能在预定时间内完成搬迁迁移工程。 整个迁移工作分两步走,第一步先对数据进行迁移,数据迁移完成确认无误。第二步对整体信息中心所有设备进行迁移,确保所有设备正常运行。 本方案是以尽量不影响信息中心工作或将影响降低到最低为前提的情况下制定的,即先完成新机房网络接入后,确保网络畅通稳定的前提下,完成信息中心系统业务的部署,确保整个系统在新机房业务实现,整个业务系统顺利割接,然后再在特定时间点开始原机房的设备搬迁工作,在1-2工作日内完成整个服务器、网络设备的搬迁、安装及测试。并且在开机以后,继续跟踪系统的运行情况,随时处理系统运行的异常情况。我公司在资源方面有较大优势,如在搬迁迁多工作中出现设备故障,除在备品备件中提供的备件外,还可协调各方资源以最快速度解决客户设备故障问题。

二、系统环境 1、第一机房环境 1.1. 设备分布 第一机房设备共涉及到10个机柜,具体设备名称及数量为:38台pvg server(1810/2800)汇聚服务器、4台pvg server3800核心服务器、26台存储、1台存储控制服务器、5台交换机。 1.2. 硬件设备情况 1.2.1汇聚服务器 汇聚服务器品牌为网力产品,38台中32台设备作为汇聚服务器,每台设备使用2个网卡:1个网卡接入单位、另1个网卡接入存储服务器;另外6台为出口服务,只使用1个网卡。设备网口全部接到RG-6806/6810两台交换机上,以便与单位和存储设备通讯。总电口使用量为:32*2+6=70个。 1.2.2核心服务器 核心服务器品牌为网力产品,4台该设备中2台为负责汇总个单位,另外2台为出口服务。每台设备使用1个网口,网口接到RG-6806/6810上。总电口使用量为:1*4=4。 1.2.3存储 存储品牌为XX以及部分老存储设备,存储共涉及到17台设备:1台控制器、16台存储。控制服务器使用1个网卡,接入到RG-6810上。16台存储各使用2个网口,每台存储对应两台汇聚服务器,设备网口接入到RG-6810/6806上。总电口使用量为:16*2+1=33个。 1.2.4交换机 交换机品牌为锐捷及H3C。共涉及到5台交换机:RG-6810、RG-6806、RG-7610、H3C 7506、H3C 7506E。设备端口及板卡信息为:

把Excel中的数据导入Oracle 数据库中练习题.doc

教你怎么样把Excel 文件中的数据导入到Oracle 数据库中 第一种:最简单的方法。 在EXCEL中全选数据,然后COPY。接着打开PL/SQL DEVELOPER,打开SQL窗口,输入select * from mytable for update; 然后执行,就可以看到查出目的表mytable数据,如果是空表,当然是没数据了。然后点击下面列表上方的锁(编辑数据),不管有没有数据,我们选择最后一个空行的行头,让整行变成黑色则表示整行已全选中。注意该行左边是有个黑色实心三角箭头的。然后粘贴,再commit 就OK咯。 说明:而且这个方法还有个好处就是对EXCEL中的日期型、数值型字段的处理也很正常,数据类型不会丢失。 图:选中了行然后粘贴数据 第二种:简单的方法。 先将Excel文件另存为一个.csv 文件,然后编写一个insert.ctl文件,ctl文件写法如下:load data--1、控制文件标识 infile 'test.csv'--2、要输入的数据文件名为test.csv append into table table_name --3、向表table_name中追加记录 fields terminated by ','--4、字段终止于',',是一个逗号 (field1, field2, field3, ... fieldn)-----定义列对应顺序 field(x)要与Oracle表中的字段名保持一致(大写) 最后在DOS命令下执行以下命令: sqlldr user/password control=insert.ctl

图:表示导入了12条记录 第三种:比较简单的方法。 如果数据不是很多,可以使用如下方法: 假设表名为test_excel,有4列数据,则设置Excel的E1单元格的值为 ="insert into test_excel values(‘” & A1 & “’, ‘” & B1 & “’, ‘” & C1 & “’, ‘” & D1 & “’);” 向下拖动该公式,则生成一列sql,把其copy到sql/plus中执行即可(如果数据中有单引号,需要先替换成两个),临时导数据用这种方法还是比较方便的。 图:使用Excel的公式功能为我们生成的SQL语句 图:导入到Oracle数据库后的表数据

Oracle数据库迁移的几种方式

Oracle数据库迁移的几种方式 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上、迁移到远程的机房、迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一、exp/imp逻辑备份与恢复: 它是最常用最简单的方法,一般是基于应用的owner级做导出导入。 操作方法为: 在新库建立好owner和表空间,停老库的应用,在老库执行: $ exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000, 导入dmp文件到新库,在新库执行如下命令: $ imp user/pwdfromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y. 优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间。 二、Storage存储迁移: 这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。 操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置。将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库。 优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为停库、切存储、起库的时间;缺点是要求新老库都是同一平台,是相同的数据库版本。 三、利用data guard迁移: 用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式。

dmp文件导入oracle数据库方法

DMP文件使用IMP导入ORACLE方法 在审计中接到被审计单位的ORACLE数据库EXP导出的备份文件XXX.DMP文件,需要导入ORACLE数据库中进行查询。 一、准备工作 1、将XXX.DMP拷贝到E:\下; 2、使用超大文本查看器logvewer软件打开XXX.DMP,在文件开头中找到导出用户名,使用查找功能输入TABLESPACE查找此单词后的表空间名称。 例如:我们得到财政预算数据库ORACLE数据EXP备份文件IFMIS2012_CJ20121229.DMP文件,经查看用户名为IFMIS2012_CJ,表空间名称为L TSYSDA TA01、L TSYSDA TA02、L TSYSDA TA03、L TINXDA TA01、L TLOBDA TA01、USERS六个,USERS是系统用户表空间,在建立表空间时就不需要再建了。 二、安装ORACLE 按照ORACLE 11G安装图解安装就可以了,建议安装企业版桌面模式,启动ORACLE服务,创建实例,使用统一口令。 我安装的是企业版服务器模式,创建实例ORCL,使用统一口令SQ。 三、建立表空间 方法有2种,一种DOS下SQLPLUS方式,一种是ORACLE的EM方式。

建议使用EM方式建立表空间: 1、启动服务:我的电脑—右键—管理—服务—ORACLE3个服务启动; 2、启动EM:开始--程序-- ORACLE-oradb11g_home1-- Database Control - orcl; 3、登陆:用户名:sys 口令:SQ(安装时统一口令)连接身份:SYSDBA; 4、创建空间表: 选‘服务器’—‘表空间’—‘创建’—‘表空间名称’—‘添 加物理数据库名称’—‘可扩展,无限制’--‘确定’。 如有其他表空间可以继续—‘创建’~~~‘确定’的程序。 例如:将上述事例的5个表空间逐一创建。 注意:表空间大小的选择要合适,必须要选择可扩展。 四、建立用户并授权 建议在DOS下SQLPLUS方式下进行: 1、开始—附件—dos提示符; 2、输入:CD\ 回车 3、以DBA身份登陆超级用户:c:\>SQLPLUS SYS/SQ AS SYSDBA回车 4、建立用户(以事例为内容建立):sql>CREA TE USER ifmis2012_cj IDENTIFIED BY sq; (ifmis2012_cj用户名,sq 口令)。

Oracle10g的数据迁移方案(好文章要转)

Oracle10g的数据迁移方案(好文章要转) 2008-07-07 11:31 网上看到一个不错的文章,转帖给大家,包括传输表空间解决跨平台及endian-ness问题的处理方法 找到将数据从仓库迁移到集市的最快方法。 Lora 是Acme银行的数据库管理员,她现在在该银行高层管理团队高级会议上成了大家最关注的核心人物。这次会议的目的是确定一些方法,来使最终用户能够详细分析公司主数据仓库中的数据。会上提出的一种想法是创建几个小型数据集市--每个集市根据一个特定的职能范围存储数据--这样每个数据集市就可以由专门的团队来使用。 为了有效地实现数据集市的方法,数据专家必须能将数据快速、有效地放入数据集市中。该团队面临的挑战就是解决如何用数据仓库中的数据快速刷新数据集市中的数据,而这些数据集市又运行在各个结构不同的平台上。这就是Lora为什么出席会议的原因。她会为移动数据提出哪些可供选择的方法呢? 作为一名经验丰富、知识渊博的数据库管理员,Lora向与会者提供了三种可能的方法,分别是: 使用可移动表空间 使用数据泵(导入和导出) 拖出表空间 本文介绍Lora对这三种可选方法的解释,包括它们的实施细节和优缺点。 可移动表空间 Lora 从可移动表空方法开始介绍。把整个表空间移动到目标系统的最快速方法是用FTP(文件传输协议)或rcp(远程复制)来简单地转移表空间的基本文件。但是,仅仅复制Oracle数据文件还不够,目标数据库必须识别出并导入文件以及相应的表空间,最终用户才能使用表空间数据。使用可移动表空间包括复制表空间文件和使它们中的数据在目标数据库中可用。 在考虑该方法之前必须进行一些审查。首先,对于要转移到目标系统的表空间TS1,它必须是自含式的(self-contained)。也就是说,在该表空间中表的所有索引、分区及其他从属于该表的各数据段都必须在该表空间内部。Lora解释说,如果一个表空间集合包含所有从属的数据段,那么就认为这个集合是自含式的。例如,如果表空间TS1和TS2要作为一个集合进行转移,TS1中的一个表在TS2中有一个索引,则这个表空间集合就是自含式的。但是,如果TS1中的一个表另一个索引在表空间TS3中,则该表空间集合(TS1, TS2)就不是自含式的。 要移动表空间,Lora提议使用Oracle数据库10g中的数据泵导出(Data Pump Export)工具。数据泵是Oracle的新一代数据转移工具,它替换了早期的Oracle Export (EXP)和Import (IMP)工具。这些老的工具使用正则SQL来提取和插入数据,而数据泵则与它们不同,它使用能绕过SQL缓冲区的专用API,从而使操作过程速度变得极快。此外,数据泵可以提取特定的对象,如特定的存储过程或特定表空

dmp文件导入到Oracle数据库

向Oracle数据库导入DMP文件 说明:dmp文件为Oracle数据库备份文件。 命令:imp:导入 emp:导出 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把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 密码sql 导出到D:\daochu.dmp中 exp system/sql@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/sql@TEST file=d:\daochu.dmp owner=(system,sys) 3 将数据库中的表table1、table2导出 exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=( table1、table2) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/sql@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面加上compress=y 来实现。 数据的导入: 1 将D:\daochu.dmp 中的数据导入TEST数据库中。 imp system/sql@TEST file=d:\daochu.dmp imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上ignore=y 就可以了。 2 将d:\daochu.dmp中的表table1 导入 imp system/sql@TEST file=d:\daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

windows环境oracle数据库迁移实例

环境描述: 源数据库 Oracle服务器版本: Oracle9.2.0.8 数据库名称db_name = oradb instance_name=oradb 操作系统版本: windows 2003 实例安装位置: $oracle_base = e:\oracle 目标数据库 Oracle服务器版本: Oracle9.2.0.8 数据库名称db_name = orcl instance_name=orcl 操作系统版本: windows xp 实例安装位置: $oracle_base = d:\oracle 执行步骤. 一, 数据库名称和sid要求相同 1.1 数据库名称的相关概念 一, 数据库名 数据库名是数据库的身份证号码, 用于表示一个数据库. 在参数文件(?/database/initSID.ora)中用DB_NAME表示. *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='oradb' *.instance_name='oradb' 数据库名是在安装数据库, 创建新的数据库, 创建数据控制文件, 修改数据库结构, 备份与恢复数据库时都需要使用到的. 查询数据库名称: ?Select name, dbid from v$database; ◆Show parameter db_name; ◆查看参数文件initsid.ora 二, 数据库实例名 数据库实例名是用户和操作系统进行联系的标识, 也就是说数据库和操作系统之间的交互使用的是数据库实例名. 实例名在参数文件中也存在, 该参数为instance_name. 数据库名和实例名可以相同也可以不同, 在一般情况下, 数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中, 数据库名和实例名是一对多的关系.

如何写批处理文件自动将数据导入oracle数据库

如何写批处理文件自动将数据导入oracle数据库 Oracle数据库的自动导入与导出,在许多地方有广泛的应用.例如:一个Oracle数据库应用系统开发结束后,如果要将系统安装到客户计算机上,就需要将初始数据导入到用户的Oracle数据库中. 最近项目中也需要实现以上功能,花了点时间搜索实验,整理如下:先把要安装的初始数据文件导出为initial.dmp,然后在客户计算上安装好oracle,接着执行批处理文件impInitialData.bat(与该批处理文件同一目录还有createuser.sql,initial.dmp两个文件)impInitialData.bat中内容如下: @echo off sqlplus system/manager @createuser imp system/manager file=initial.dmp fromuser=initialuser touser=initialuser ignore = y上面的createuser是一个扩展名为sql的文件.与批处理文件放在同一目录下.其内容为: create user initialuser identified by test; grant dba,resource,connect to initialuser; exit;简要解释一下: @echo off 表示其之后的命令不在命令提示符窗口显示出来 sqlplus为oracle的一个工具程序,须先安装oracle后才能使用 system/manager 为oracle的一个默认管理员帐户,如果被锁定或更改密码了就不能用了,可以用其它的帐户/密码来替换; @createuser 表示执行createuser.sql文件 该sql文件中, create user xx identified by yy;表示创建一个密码为yy的用户xx; grant dba,resource,connect to xx;表示授权给用户xx dba,resource,connect 权限imp 为导入数据命令,后面的参数中file表示要导入的数据库文件;fromuser表示原导出的数据库文件的用户名;touser表示要导入的数据库的用户名;ignore表示忽略错误大致的方法就是这样,可以再增添其它命令来执行更复杂的操作.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他们所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。

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=y 2 将数据库中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文件可以很好的压缩。 不过在上面命令后面加上 compress=y 就可以了 数据的导入 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:\daochu.dmp 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

Oracle 表空间数据文件迁移

一、系统表空间数据文件迁移: SQL> conn /@study as sysdba 已连接。 SQL>descdba_data_files; 名称是否为空? 类型 ----------------------------------------- -------- ---------------------------- FILE_NAME VARCHAR2(513) FILE_ID NUMBER TABLESPACE_NAME VARCHAR2(30) BYTES NUMBER BLOCKS NUMBER STATUS VARCHAR2(9) RELATIVE_FNO NUMBER AUTOEXTENSIBLE VARCHAR2(3) MAXBYTES NUMBER MAXBLOCKS NUMBER INCREMENT_BY NUMBER USER_BYTES NUMBER USER_BLOCKS NUMBER ONLINE_STATUS VARCHAR2(7) SQL> select file_name,tablespace_name from dba_data_files where tablespace_name= 'SYSTEM'; FILE_NAME -------------------------------------------------------------------------------- TABLESPACE_NAME ------------------------------ D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSTEM01.DBF SYSTEM SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE例程已经关闭。 SQL> host copy D:\oracle\product\10.2.0\oradata\study\system.dbf d:\oracle\study 系统找不到指定的文件。 SQL> host copy D:\oracle\product\10.2.0\oradata\study\system.dbf d:\oracle\study

Csv格式数据导入oracle方法

Csv格式数据导入oracle方法 SQLLOAD命令导入oracle数据库表结构: create table ( deptno number(2), dname varchar2(14), sloc varchar2(13) ) '文件中的内容: 10,Sales,Virginia

20,"Accou,nting",Virginia 30,Consulting,Virginia 40,Finance,Virginia 当前文件存放路径:>sqlldruserid=用户名/密码[@数据库字符串]control=控制文件sqlldr userid='sys/admin as sysdba' control=e:\oracle\data\ 控制文件中的内容 load data infile 'E:\oracle\data\' append into table fields terminated by ','

optionally enclosed by '"' (deptno,dname,sloc) 备注: loaddata:控制文件标识 infile'E:\oracle\data\':需要输入的数据文件名 appendinto table :向表中进行数据操作 fieldsterminated by ',':字段终止符 X'09'表示TAB键 csv文件用,表示,txt文件两者都可 optionallyenclosed by '"' :字段取值符比如csv文件有一个字段包含逗号,但是解析的时候又要按逗号解析,这个时候就要加上这个值(deptno,dname,sloc):表结构 --insert为缺省方式,在数据装载的时候要求表为空,否则退回

mysql数据库迁移到Oracle数据库迁移方案

mysql数据库迁移到Oracle数据库迁移方 案 准备工具 1.连接Mysql 的jdbc 驱动mysql-connector-java-5.0.4-bin.jar 2.Oracle公司开发的SQL Developer 1.2 下面就是配置SQL Developer 1.2 配置环境 选择Tools-Preferences -Database-Third Party JDBC Driver 点击Add Entry 添加Mysql的jdbc 驱动。

配置Mysql 和Oracle 的连接 点击Connection 右键选择New Connection 分别建立Mysql 和Oracle连接。 建立好连接后,你就可以查看你得数据库了。 配置Repository 选择Migration -> Repository Management -> Create Repository创建Repository。

两种迁移数据方式: 1.Capture the source database or tables 2.Convert the captured database or tables 3.Generate DDL for the new Oracle schema objects 4.Run the generated DDL script to create the new user and objects 5.Copy any data from the source database to the new database,select Migration->Migration Data select a converted model. 快速迁移: 选择你要迁移的表或数据库,选择Migration -> Quick Migrate

相关主题