关于在ORACLE EBS 12R运行AUTOCONFIG引发的错误的解决方案(转)
环境:OS:REDHAT AS3 LINUX ORACLE EBS 12R1.在DB TIER运行AUTOCONFIG:<ORACLE_HOME>/appsutil/scripts/<CONTEXT_NAME>/adautocfg.sh/ebs/d02/oracle/VIS/db/tech_st/10.2.0/appsutil/scripts/VIS_demo/adautocfg.sh注:运行这个脚本后可能会出现APPS用户被锁的情况,这时需要用SYS或SYSTEM用户登录ORACLE去解锁:SQL>ALTER USER APPS ACCOUNT UNLOCK;必须保证在应用端能通过SQL*PLUS连接ORACLE DB2.在APPS TIER运行AUTOCONGIF:cd $ADMIN_SCRIPTS_HOME/ebs/d01/oracle/VIS/inst/apps/VIS_demo/admin/scripts/a
process参数设置过小引发的错误(转)
在用户使用ORACLE EBS 12R的时候,发现提示出错:用户名,密码或数据库无效。表单没办法弹出来。登录数据库:SQL> conn apps/appsERROR:ORA-12516: TNS:listener could not find available handler with matching protocolstack登录不上数据库,查找ORA-12516的错误:TNS-12516 TNS:listener could not find available handler with matching protocol stackCause: None of the known and available service handlers for the given SERVICE_NAME support the client's protocol stack: transport, session, and presentat
子查询中的IN与EXISTS的区别(转)
在复杂的查询中,选择正确的子句将会对性能产生很大的影响。考虑一下在你的编码中使用过哪一些子句。 在主要/明细关系表中写一个SQL的时候,多数人都会经历这么一步,那就是决定是使用WHERE EXISTS(…)子句还是WHERE值IN(…)子句来编写查询语句。你可能会拒绝使用WHERE EXISTS,因为用它来编写的话,要返回一个值,在语法上很困难,而这正是你经常忽视的。 可是,如果你使用基于规则的最优化的话,情况就会大不相同了。你可以通过了解哪个表是驱动表,以及每一部份会返回多少行,来确定一个基于规则的查询的性能。 当你用I
Oracle中TRUNCATE和Delete区别及TRUNCATE使用说明(转)
TRUNCATE和Delete有以下几点区别 1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而TRUNCATE则不会被撤销。 2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。 3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比Delete操作后的表要快得多。 4、TRUNCATE不能触发任何Delete触发器。 5、不能授予任何人清空他人的表的权限。 6、当表被清空后表和表的索引讲重新设置
表空间跨平台传输(转)
好不容易找回来了,感觉还不如从新做一次,不过回来了,呵呵 最近实在是很忙,已经俩月没有写blog了,很惭愧哦,今天测试了一下aix 64位系统表空间传输到window 32位的测试(中间涉及到了字符集的问题) SQL> select PLATFORM_ID,PLATFORM_NAME from v$database;PLATFORM_ID PLATFORM_NAME----------- -------------------------------------------------- 6 AIX-Based Systems (64-bit) SQL> select * from v$transportable_platform; PLATFORM_ID PLATFORM_NAME
再次探讨number(p,s)(转)
上次探讨了常见的s<p的情况,这种基本上很好理解!其中p表示该number的总长度,s为小数位。如果s为负数,则会取相应位数的取整。例如,如果number(4,-2),则数字1234的存储值为1200。关于这点在此就不多谈了! 下面来谈谈少见的p<s的情况。在这种情况下precision用来指定小数点之后的最大有效数字位数。当然不包括小数点后紧接着的0的个数。例如: SQL> conn test/test@report 已连接。 SQL> create table test1(t1 number(4,5),t2 number(3,6),t3 number(2,4)); 表已创建。 SQL> insert into test1(t1) value
Oracle9i Release9.2.0.4的安装(转)
注:本文的安装环境为RedHat Linux AS3 Update4 1. 准备安装文件:# gunzip ship_9204_linux_disk1.cpio.gz ship_9204_linux_disk2.cpio.gz ship_9204_linux_disk3.cpio.gz # cpio -idmv < ship_9204_linux_disk1.cpio# cpio -idmv < ship_9204_linux_disk2.cpio # cpio -idmv < ship_9204_linux_disk3.cpio 2.配置Linux内核参数:(1)配置系统在启动时内核所必须的参数: 修改内核配置文件 /etc/sysctl.conf :kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs
Oracle强烈建议使用lob来代替long型字段(转)
一、 可以在以下情况使用long字段: 1、 select的list列表。 SQL> insert into test_long values (1,'tgfdsfgdsgfsd'); 已创建 1 行。 SQL> insert into test_long values (2,'asfafafasd'); 已创建 1 行。 SQL> commit; 提交完成。 SQL> col id for 9999; SQL> col description for a30; SQL> select * from test_long; ID DESCRIPTION ----- ------------------------------ 1 tgfdsfgdsgfsd 2 asfafafasd 2、 update语句中的set子句: SQL>
Oracle对象类型 (转)
Oracle对象类型也有属性和方法. 创建对象类型与创建表很相似,只是实际上不为存储的数据分配空间: 不带方法的简单对象类型: CREATE TYPE type_name as OBJECT ( column_1 type1, column_2 type2, ...); 注意:AS OBJECT 创建好对象类型之后,就可以在创建表的时候,使用该类型了,如: CREATE TYPE HUMAN AS OBJECT( NAME VARCHAR2(20), SEX VARCHAR2(1),-- F : FEMALE M:MALE BIRTHDAY DATE, NOTE VARCHAR2(300)) 稍后,可以用下面的语句查看: SELECT * FROM USER_OBJECTS WHERE OB
Set 命令介绍 (转)
该命令包含许多子命令: SET system_variable value system_variable value 可以是如下的子句之一: APPI[NFO]{ON|OFF|text} ARRAY[SIZE] {15|n} AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n} AUTOP[RINT] {ON|OFF} AUTORECOVERY [ON|OFF] AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] BLO[CKTERMINATOR] {.|c} CMDS[EP] {;|c|ON|OFF} COLSEP {_|text} COM[PATIBILITY]{V7|V8|NATIVE} CON[CAT] {.|c|ON|OFF} COPYC[OMMIT] {0|n} COPYTYPECHECK {ON|OFF} DEF[INE] {&|c|ON|OFF} DESCRIBE [DEPTH {1|n|ALL}][LIN
在输入sql语句的过程中临时先运行一个sql*plus命令(转)
用井字符号"#"允许在输入SQL过程中临时执行其他语句,例如:select deptno, empno, ename2 from emp3 where这时, 你发现你想不起来工资的列名是什么了. 这种情况下, 只要在下一行以#开头, 就可以执行一条sql*plus命令, 执行完后, 刚才的语句可以继续输入 SQL>> select deptno, empno, ename2 from emp3 where6 #desc empName Null? Type----------------------------------------- -------- --------------EMPNO NOT NULL NUMBER(4)ENAME VARCHAR2(10)JOB VARCHAR2(9)MGR NUMBER(4)HIREDATE DATESAL NUMBER
Tuning PGA_AGGREGATE_TARGET in Oracle 9i (转)
Abstract Oracle 9i introduced the PGA_AGGREGATE_TARGET parameter to help better manage session working areas in a session’s Program Global Area (PGA). This paper discusses available methods to help tune this new Oracle 9i parameter. Introduction Each Oracle session needs memory set aside for it to perform certain work operations. For instance, if the application requests a sorting operation by using certain SQL statements, like GROUP BY or ORDER BY, the application’s sess
Tuning Database Buffer Cache(转)
Introduction Buffer pool or buffer cache is a memory structure within Oracle SGA that is used for caching data blocks in the memory. Accessing data from the memory is significantly faster than accessing data from disk. The goal of block buffer tuning is to efficiently cache frequently used data blocks in the buffer cache (SGA) and provide faster access to data. Tuning block buffer is a key task in any Oracle tuning initiative and is a part of an ongoing tuning and monitoring of pro
HOWTO--在procedure返回結果集(转)
在很多時候我們需要通過bind var來提高整個DB的performance,在我們用第三次開發軟件做對結果集的查詢。我們如何在procedure中完成對結果集的查詢呢,從oracle7.3才被支持,在9i以后又有新的變化,在9i以前要define一個type才可以。而在9i以后oracle引入了一個新的類型為sys_refcursor,這樣就不需要我們重新定義。我們來看一個例子吧。 C:oracleora92sqlplusdemo>sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 4月 2 11:09:06 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
RAC备份出错解决(转)
上午查看今日凌晨Rman备份日志发现有爆错,错误如下:RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: =========================================================== RMAN-03009: failure of backup command on d2 channel at 06/27/2007 05:06:17ORA-19504: failed to create file "/data/rman/archivelog/MEM_20070627_349_1.arc"ORA-27040: file create error, unable to create fileLinux Err
ORACLE 体系结构(转)
前言 很多人大概都是从SQL Server转过来的,可能是受MS的影响太深,老想着用SQL Server的方法来解决ORACLE的问题,这就是一个极大的失误,比如有人就老喜欢用那个OEM,那个我一直认为是ORACLE的糟粕的一个代表,ORACLE的精髓是代码的管理,任何管理、备份、恢复都可以通过代码或脚本实现。比如还有的人就喜欢SQL Server过程中能直接写select语句,认为ORACLE必须要能做,有人认为SQL SERVER的过程能执行DDL语句,那ORACLE也必须要这样……诚然,我不是承认不可以,但是很多的很多的这一切,就是你实现了,却是ORACLE强烈反
Oracle rowid小议(转)
在8i以前rowid由file#+block#+row#组成,占用6个bytes的空间,10 bit 的 file# ,22 bit 的 block# ,16 bit 的 row#。其中oracle 的dba(data block address)是32 bits的,包括10 bit 的 file# 和 22 bit 的block#。由于不存在0编号文件,oracle中的文件最大数量2^10-1=1023而datafile能达到的最大size就是2^22*db_block_size如果db_block_size为4k的datafile max size就是16G如果db_block_size为8k的datafile max size就是32G 从oracle 8开始rowid变成了extend rowid,由data_object_id#+rfile#+block#+row#组成,占用10个bytes
Oracle数据库静默安装实践 (转)
前言 本文是作者进行Oracle数据库静默安装的实践过程记录及经验总结。其中10g的静默安装实践是在RHEL AS3U4上进行的,9i的静默安装实践是在Windows XP Professional(SP2)上进行的。9i的普通安装有3张光盘,Oracle专门为嵌入式安装定制了9i的一张安装光盘的版本9204e,可在OPN网站上下载该版本的安装文件。本文的9i安装实践所使用的版本即为9204e。可通过本文了解Oracle数据库静默安装的主要步骤和过程,亦可将本文作为简明的静默安装指南进行参考。如果需要详细的静默安装过程和参数说明,请根据实际的操作系统和数据库版本参考OEIKi
PRO*C (转)
单行读 #include <stdio.h> #include <sqlca.h>void sqlerror(); EXEC SQL BEGIN DECLARE SECTION; char *connstr = "scott/tiger"; char db_ename[30];int db_deptno;EXEC SQL END DECLARE SECTION; void main() { EXEC SQL WHENEVER SQLERROR DO sqlerror(); EXEC SQL WHENEVER SQLWARNING CONTINUE; EXEC SQL CONNECT :connstr; EXEC SQL WHENEVER NOTFOUND GOTO notfound; EXEC SQL SELECT ENAME, DEPTNOINTO db_ename, db_deptno FROM EMPWHERE EMPNO = 7369;found:printf("
动态SQL和PL/SQL的EXECUTE IMMEDIATE选项(转)
EXECUTE IMMEDIATE代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTE IMMEDIATE,因为它获的收益在包之上。 使用技巧 1. EXECUTE IMMEDIATE将不会提交一个DML事务执行,应该显式提交 如果通过EXECUTE IMMEDIATE处理DML命令,那么在完成以前需要显式提交或者作为EXECUTE IMMEDIATE自己的一部分.