(一)环境迁移说明
1.1 迁移
由于EBS系统开发复杂,一般项目实施都是使用三套或者三套以上的系统,一套作为开发使用系统,一套作为集成测试系统,一套就是企业用的正式环境系统,在项目实施过程中对一些开发所创建的表,同义词,索引,值集,快速编码,并发程序等等内容我们需要从开发环境拷贝到测试环境上去,当测试完成后我们又要拷贝到正式环境上去,这一拷贝过程就叫做迁移。在开发过程中需要拷贝的东西量都比较大,所以迁移不是简单的拷贝
1.2 迁移步骤
1.EBS应用的安装
2.ORACLE用户的创建
3.ORACLE数据库对象创建
4.ORACLE应用对象的创建
1.3 迁移的方法
迁移就是实现客户化对象从一个地方到另一个地方,所以肯定先是从一个地方取出来,然后放到另一个地方上去,具体的来说就是采用各种方法将一个系统的对象下载下来形成一个文件然后上传到新的服务器上去,然后写人新的环境
1. 利用FNDLOAD实现对象的DOWNLOAD和UPLOAD
2. 利用dbms_lob包将对象写成大对象,然后加载上去
3. 使用EXPDP和IMPDP迁移数据
2.1 oracle产品结构
2.2 创建表空间
CREATE [TEMPORARY]
TABLESPACE [tablespace name]
DATAFILE/TEMPFILE[file]
DEFAULTSTORAGE ([storage parameters])
[option];
TEMPORARY: 临时表空间,一般与TEMPFILE搭配
Alter database datafile ‘F:\app\Rainbow\oradata\orcl\ school_01.dbf’ resize 30m;
表空间信息
属于临时表空间的临时文件信息 DBA_TEMP_FILES
属于表空间的数据文件的信息 DBA_DATA_FILES
所有临时文件的信息 V$TEMPFILE
所有数据文件的信息 V$DATAFILE
所有(用户能访问的)表空间内自由区域的信息 DBA_FREE_SPACE
USER_FREE_SPACE
所有(用户能访问的)表空间内数据区域的信息 DBA_EXTENTS
USER_EXTENTS
所有(用户能访问的)表空间内的数据段的信息 DBA_SEGMENTS
USER_SEGMENTS
所有(用户能访问的)表空间的描述 DBA_TABLESPACE
USER_TABLESPACE
所有表空间的名称及相关信息 V$TABLESPACE
2.3 创建用户
Create user 用户名 identified by 密码
2 default tablespace 表空间名
3 temporary tablespace temp;
2.4 DBMS_LOB包
1、dbms_lob.append(
dest_lob IN OUT NOCOPY BLOB,
src_lob IN BLOB)
dbms_lob.append(
dest_lob IN OUT NOCOPY CLOB CHARACTER SET ANY_CS,
src_lob IN CLOB CHRACTER SET dest_lob%CHARSET);
将源LOB变量的内容添加到目标LOB变量的尾部。
示例:dest_lob clob;
src_lob clob;
dbms_lob.append(dest_lob,src_lob);
2、dbms_lob.close(lob_loc IN OUT NOCOPY BLOB/CLOB/BFILE)
关闭已经打开的LOB。
3、dbms_lob.compare(
lob_1 IN BLOB/CLOB/BFILE,
lob_2 IN BLOB/CLOB/BFILE,
amount IN INTEGER:=4294967295,--要比较的字符数(CLOB),字节数(BLOB)
offset_1 IN INTEGER:=1,--lob_1的起始位置
offset_2 IN INTEGER:=1--lob_2的起始位置)
比较两个LOB的内容。
4、dbms_lob.copy(
dest_lob IN OUT NOCOPY BLOB/CLOB/NCLOB,
src_lob IN BLOB/CLOB/NCOB,
amount IN INTEGER,
dest_offset IN INTEGER:=1,
src_offset IN INTEGER:=1)
从src_lob中,以src_offset为起始位置,截取amount个字符/字节,放到dest_lob的dest_offset位置。
5、dbms_lob.createtemporary(
lob_loc IN OUT NOCOPY BLOB/DLOB/NCLOB,
cache IN BOOLEAN,
dur IN PLS_INTEGER:=10)
在用户的临时表空间中,建立临时LOB。
lob_loc:指定LOB定位符。
Cache:是否将LOB读取到缓冲区。
Dur:指定何时清除临时LOB(10:会话结束时。12:调用结束时)。
6、dbms_lob.erase(
lob_loc IN OUT NOCOPY BLOB/CLOB/NCLOB,
amount IN OUT NOCOPY INTEGER,--字符/字节数
offset IN INTEGER:=1—起始位置
)
删除LOB变量的内容。
7、dbms_lob.fileclose(file_loc IN OUT NOCOPY BFILE)
关闭打开的BFILE定位符所指向的OS文件
8、dbms_lob.filecloseall关闭当前会话已经打开的所有BFILE文件。
9、dbms_lob.fileexists(file_loc IN BFILE) RETURN INTEGER
确定file_loc对应的OS文件是否存在,1:存在。0:不存在。
10、dbms_lob.filegetname(
file_loc IN BFILE,
dir_alias OUT varchar2,
filename OUT varchar2)
获取BFILE定位符所对应的目录别名和文件名。
11、dbms_lob.fileisopen(file_loc IN BFILE) RETURN INTEGER
确定BFILE对应的OS文件是否打开。
12、dbms_lob.freetemporary(lob_lob IN OUT NOCOPY BLOB/CLOB/NCLOB)
释放在默认临时表空间中的临时LOB。
13、dbms_lob.fileopen(file_loc IN OUT NOCOPY BFILE,
Open_mode IN BINARY_INTEGER:file_readonly)
打开文件。
14、dbms_lob.getchunksize(lob_loc IN BLOB/CLOB/NCLOB) RETURN INTEGER
当建立包含CLOB/BLOB列的表时,通过指定CHUNK参数可以指定操纵LOB需要分配的字节数(数据库尺寸的整数倍)默认为数据块的尺寸。
15、dbms_lob.getlength(lob_loc IN BLOB/CLOB/BFILE/NCLOB) RETURN INTEGER
获取长度。
16、dbms_lob.instr(
Lob_loc IN BLOB/CLOB/NCLOB/BFILE,
Pattern IN RAW/VARCHAR2,
Offset IN INTERGER:=1,
Nth IN INTEGER:=1) RETURN INTEGER;
返回特定样式数据从LOB某偏移位置开始出现N次的具体位置。
17、dbms_lob.idopen(lob_loc IN BLOB/CLOB/BFILE) RETURN INT
确定LOB是否打开,打开:1,未打开:0。
18、dbms_lob.istemporary(lob_loc IN BLOB/CLOB/NCLOB) RETURN INTEGER
确定定位符是否为临时LOB。
19、dbms_lob.loadfromfile(
dest_lob IN OUT NOCOPY BLOB/CLOB,
src_file IN FILE,
amount IN INTEGER,
dest_offset IN INTEGER:=1,
src_offset IN INTEGER:=1)
将BFILE的部分或全部内容复制到目标LOB变量。
20、dbms_lob.loadblobfromfile(
dest_lob IN OUT NOCOPY BLOB,
src_bfile IN BFILE,
amount IN INTEGER,
dest_offset IN OUT INTEGER,
src_offset IN OUT INTEGER)
将BFILE数据装载到BLOB中,并且在装载后取得最新的偏移位置。
21、dbms_lob.open(
lob_loc IN OUT NOCOPY BLOB/CLOB/BFILE,
open_mode IN BINARY_INTEGER)
打开LOB,open_mode(只读:dbms_lob.lob_readonly,读写:dbms_lob.lob_readwrite).
22、dbms_lob.read(
lob_loc IN BLOB/CLOB/BFILE,
amount IN OUT NOCOPY BINARY_INTEGER),--IN:要读取的字符数,
OUT:实际读取的字符数。
Offset IN INTEGER,
Buffer OUT RAW/VARCHAR2—存储数据的变量
)
将LOB数据读取到缓存区中(变量中)。
23、dbms_lob.substr(
Lob_loc IN BLOB/CL