Oracle EBS 11.5.10成功打3480000补丁
EBS 11.5.10成功打3480000补丁。[@more@]1、执行:H:oraappvisapplVIS_dell.cmd,注册环境变量。Set O7_DICTIONARY_ACCESSIBILITY = TRUE可以解决sys用户不能登录的问题。拷贝D:vc6VC98BinVCVARS32.BAT到:D:vc6CommonMSDev98Bin目录下。2、打Patch 2209078。3、打Patch 2381494 解决下面问题:h:orabasevisapplau11.5.0binCMDCART.DLL : 系统找不到指定的文件。4、打6773659,解决adst.lib(aiibas.obj) : error LNK2001: unresolved external symbol _strcasecmp5、Apply the AD Minipack 打6502082补丁。(4337683的升级版本)6、Update Au
insert all的用法
Oracle从9i开始有一个新的语法:insert all可以用一条语句同时插入几个表,提高了程序开发的效率.下面举例如下:[@more@]1.首先因为insert all语句不允许使用序列,需要创建2个函数来插入序列.CREATE OR REPLACE FUNCTION F_GETSEQ RETURN varchar2 DETERMINISTIC AS v_ID varchar2(50); BEGIN SELECT 'V'||to_char(sysdate,'yyyymmdd')||lpad(seq_voucher.nextval,6,0) INTO v_ID FROM DUAL; RETURN v_ID; END;CREATE OR REPLACE FUNCTION F_g_id RETURN varchar2 DETERMINISTIC AS g_ID varchar2(50); B
Oracle8i数据库升级到oracle10g时,Number数据类型返回应用程序一个错误值的处理
Oracle8i数据库升级到Oracle10g,原来运行正常的程序会返回一个错误的值,表现为如果原来8i上某个表有Number数据类型的列,没有定义长度和精度,这时,包含该表的数据库升级到10g会有一下问题:在C++程序,原来返回为一个固定值的应用程序,会返回一个没有定义的值,导致应用程序不能得到正确的结果.解决办法如下所述:[@more@]有两个办法解决改问题:1.修改Oracle8i数据库,把其中没有定义精度的列修改为number(38).这样C++程序也可以返回正确的值.这个办法适合数据库比较小的情况.2.升级C++应用程序端的Oracle客户端,打p3262468_9204_WINNT补丁,该补
一次磁盘IO高的处理
数据库IO很高,通过重新建表解决.[@more@]开发人员报应用程序慢,用top,sar查看系统状况,发现iowait为56.0%磁盘读为27600.00 rd_sec/s,磁盘读成为系统瓶颈.处理过程如下:1.查IO高的sql语句,发现IO最高的为一个存储过程.2.查看该存储过程,长时间执行的是下面的语句: SELECT a.company_id, a.operator_id, a.task_id, a.phone, a.content_id, a.transactionid, a.send_type, a.servercode, nvl(a.subject_product, ' ') AS subject_product, nvl(a.url, ' ') AS url, a.investigate_id, nvl( b.content, ' ') AS content,
Oracle10.2.0.2补丁的一个严重的问题
LIBSERVER10.A INCORRECTLY LOCATED IN $ORACLE_HOME/RDBMS/LIB/。[@more@]解决办法:1.打一个补丁5117016.还会引起问题.2.直接升级到10.2.03
Oracle 批联编命令BULK COLLECT的使用
1.使用批联编可以极大提高效率. [@more@]create or replace procedure batchas type bulk_type is table of emp_table%rowtype; ref_bulk bulk_type; type cursor_type is ref cursor return emp_table%rowtype; c_bulk cursor_type;begin execute immediate 'truncate table emp_table_his'; open c_bulk for select * from emp_table; loop fetch c_bulk bulk collect into ref_bulk limit 250000; forall i in 1..ref_bulk.count insert into emp_table_his values ref_bulk(i);
同步一个表可能重复的数据到历史表
两个思路,效率差别很大.同是2万条记录.1.用not in语句,耗时120s.2.用oracle9i添加的minus语句,耗时7s.[@more@]1.用not in 语句insert into emp_table_hisselect * from emp_tablewhere emp_no||nvl(emp_name,' ')||nvl(emp_salary,0) not in ( select emp_no||nvl(emp_name,' ')||nvl(emp_salary,0)from emp_table_his)emp_name,emp_salary考虑到可能为空的情况,emp_no为主键,不能为空.2.用minus语句insert into emp_table_his(select emp_no,nvl(emp_name,' '),nvl(emp_salary,0) from emp_tableminusselect emp_no,nvl(emp_name,' '),nv
Oracle 同步表记录的程序
1.将该程序按照一个Oracle的JOB每10分钟执行一次,同步一个表的数据到另一个表.2.该程序每1万行一提交,根据情况修改为合适的值.[@more@]create or replace procedure sync_table(p_table_name varchar2, p_to_table_name varchar2, p_table_colume varchar2) as v_col1 number(10); v_end_col1 number(10); sqlstr1 varchar2(2000); begin sqlstr1 := 'select nvl(max('||p_table_colume||'),0) from ' || p_to_table_name; execute immed
按时间段将旧数据插入历史表并删除表记录
输入参数之前的数据全部插入历史表,然后删除.30天一次提交,可以根据表的实际修改.[@more@]create or replace procedure del_record_time( p_time varchar2 --删除该时间之前的记录.)as/* 按时间段删除表记录,每30天的记录提交一次.*/ v_start_time date; --delete开始时间,也即从最早的记录开始. v_end_time date;begin select min(insert_date) into v_start_time from large_table; v_end_time := to_date(p_time,'yyyy-mm-dd'); if v_end_time > v_start_time then for i in
Oracle大量重复记录的删除
思路:1.创建视图,查出重复记录.2. 每10万一次commit,删除重复记录.[@more@]--创建查询重复记录的视图create or replace view v_large_table asselect row_idfrom (select rowid row_id,row_number() over (partition by col1 order by rowid ) rnfrom large_table)where rn <> 1--循环删除重复记录,10万一次提交.create or replace procedure del_repeatasv_rowid varchar2(100);v_num number(10);cursor c1 is select row_id from v_large_table;beginopen c1;v_num :=0;loopexit when c1%notfound;fetch c1 into v_rowid;delete f
为Oracle的用户表自动增加分区
该程序可以做为一个Oracle的JOB执行在每月的28日前执行(考虑2月28天的原因),自动为该用户下的分区表增加分区.[@more@]create or replace procedure guan_add_partition/*/*为一个用户下所有分区表自动增加分区.分区的列为date类型,分区名类似:p200706./*create by David*/asv_table_name varchar2(50);v_partition_name varchar2(50);v_month char(6);v_add_month_1 char(6);v_sql_string varchar2(2000);v_add_month varchar2(20);cursor cur_part is select distinct u.table_name,max(p.partition_name) max_part_name from user_table
windows平台自动导出Oracle数据库
该脚本在windows的计划任务执行,exp Oracle数据库,保留3天最新的备份.自动删除旧数据.[@more@]set rq=%date:~0,4%%date:~5,2%%date:~8,2% #求当前时间.set /A rq=rq-2 #求2天以前的时间.G:cd del %rq%.dmp #删除2天以前的记录set rq=%date:~0,4%%date:~5,2%%date:~8,2% exp system/******@xp10g file=%rq%.dmp owner=rossuser rows=n#当天的备份.将该文件保存为bat脚本,在windows的计划任务执行就可以.
SAP R3 4.71 IDES安装要领
针对安装熟练人员的简单步骤,做为提醒。[@more@]1.境要求:A、A、 OS:windows server 2000 或 windows advance server 2000,最少sp3补丁。最好不要使用windows server 2003。B、 硬盘:需要55G以上空闲空间,4G虚拟内存。C、 打印机:安装打印机,如果没有本地打印机,安装打印到文件。D、 给网卡分配固定IP地址,添加到hosts文件,如果经常不接网线,建议配虚拟网卡,SAP网卡没有接网线是不能启动的。2.安装步骤:A、JAVA 安装在操作系统中设置环境变量。JAVA_HOME=JAVA 工作目录。B、Oracle9.2.0.1 安装,不建库。C、Oracdle9.2.0.1 升
Vmware环境下Oracle10g RAC安装注意事项
由于Vmware和实际共享磁盘的不同,在虚拟机上配置RAC也有所不同,本文内容为安装过程的总结.可以帮助初学者少走弯路.[@more@]Vmware环境下Oracle10g RAC安装注意事项 1. 安装环境 Vmware GSX Server 3.2.0 虚拟机操作系统:RedHat Advance Server 3.0 update 5 数据库版本:Oracle10g 10.2.0.1.0 2. Vmware的安装 安装过程不做介绍,可以参考相关文档. 3. Vmware共享磁盘配置 用Vmware安装Oracle10g RAC容易出问题的就是共享磁盘的配置,如果共享磁盘没有正确配置,在安装CRS服务时会出现第