1、事务的概念 事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的根本,其中,ACID是事务的基本特性。A是Atomicity,原子性。一个事务往往涉及到许多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分操作成功,而另外一部分操作没有成功。如果事务在执行的过程中发生错误,那么数据库将回滚到事务发生之前的状态。比如银行的转账服务,这个事务的最终结果一定是:某个账户的余额增加了x,而另外一个账户的余额减少了x,或者两个账户的余额未发生变化。而不会出现其他情况。C是Consistency,一致性。一致性是指事务发生前和发生以后,都不会破坏数据库的约束关系, Read More
posted @ 2013-07-10 15:56 杨志威 Views(2376) Comments(0) Diggs(0) Edit
1、DBLINK 的作用当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。2、创建DBLINK 1 CREATE DATABASE LINK linkhome 2 3 CONNECT TO apps IDENTIFIED BY apps 4 5 USING ' (DESCRIPTION = 6 7 (ADDRESS_LIST = 8 9 (ADDRESS =10 11 (PROTOCOL = TCP)12 13 ... Read More
posted @ 2013-07-09 09:09 杨志威 Views(286) Comments(0) Diggs(0) Edit
一般的PL/SQL程序设计中,在DML和事务控制的语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及系统控制语句,可以通过使用动态SQL来实现。 首先我们应该了解什么是动态SQL,在Oracle数据库开发PL/SQL块中我们使用的SQL分为:静态SQL语句和动态SQL语句。所谓静态SQL指在PL/SQL块中使用的SQL语句在编译时是明确的,执行的是确定对象。而动态SQL是指在PL/SQL块编译时SQL语句是不确定的,如根据用户输入的参数的不同而执行不同的操作。编译程序对动态语句部分不进行处理,只是在程序运行时动态地创. Read More
posted @ 2013-02-19 16:24 杨志威 Views(613) Comments(0) Diggs(0) Edit
FRM-30187: Size of CHAR column in record group must be between 1 and 2000 原因是在建record group时,数据库中的列长度超过2000 解决办法:1.点击record group属性. 2.找到 property 'Column Specifications' 3.把字段的长度改为小于2000的即可. Read More
posted @ 2012-12-14 15:21 杨志威 Views(877) Comments(0) Diggs(0) Edit
ORACLE优化器的优化方式有两大类,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO)。A、 RBO方式:优化器在分析SQL语句时,更据数据库中表和索引等定义信息,遵循的是Oracle内部预定的一些规则。比如我们常见的:当一个where子句中的一列有索引时去走索引而不走全表扫描。B、 CBO方式:依词义可知,它是看语句的代价(Cost)了。基于代价的查询,数据库根据搜集的表和索引的数据的统计信息(统计信息通过analyze 命令或者使用dbms_stats包来搜集)综合来决定 Read More
posted @ 2012-12-11 10:51 杨志威 Views(11954) Comments(0) Diggs(0) Edit
R12安装后Form服务默认是Serverlet模式,且禁用Socket模式;只要按如下基本简单改动即可改成Socket模式,并允许Socket模式。 1. Source the environment on the application tier. 2. Stop all the application tier services: $INST_TOP/admin/scripts/adstpall.sh 3. Run the following command to enable Forms Socket Mode: $FND_TOP/bin/txkrun.pl -... Read More
posted @ 2012-12-05 10:44 杨志威 Views(1018) Comments(0) Diggs(0) Edit
遇到这样的问题,mark一下。一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。1.下面的语句用来查询哪些对象被锁:select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session swhere l.object_id = o.object_id and l.session_id=s.sid;2.下面的语句用来 Read More
posted @ 2012-11-08 10:52 杨志威 Views(308) Comments(0) Diggs(0) Edit
-1、查看表在那个表空间 select tablespace_name,table_name from user_talbes where table_name='test';--2、获取用户的默认表空间 select username, DEFAULT_TABLESPACE from dba_users where username='MXH';--3、查看表空间所有的文件 select * from dba_data_files where tablespace_name='USERS';--4、查看表空间使用情况: SELECT tbs 表 Read More
posted @ 2012-11-07 15:29 杨志威 Views(227) Comments(0) Diggs(0) Edit
一、获取当前sessionID。 select sid from v$mystat where rownum<2; 二、执行如下步骤 1. alter session set statistics_level=all; 2. alter session set tracefile_identifier='ORGPERF'; 3. alter session set events '10046 trace name context forever, level 12'; 4. Execute the problematic sql 5.... Read More
posted @ 2012-11-01 10:11 杨志威 Views(247) Comments(0) Diggs(0) Edit
1、想要查找并发请求的trace信息,需要对并发请求,启用跟踪。 2、如下脚本可以查询trace信息。(trace_id,文件路径等等) SELECT 'Request id: '||request_id ,'Trace id: '||oracle_Process_id,'Trace Flag: '||req.enable_trace,'Trace Name:'||dest.value||'/'||lower(dbnm.value)||'_ora_'||oracle_process_id||' Read More
posted @ 2012-11-01 09:43 杨志威 Views(1623) Comments(0) Diggs(0) Edit