oracle参数文件pfile,spfile
1、 每一个数据库中,都有一个操作系统文件,叫初始化参数文件,在10g版本中位于“C:oracleproduct10.1.0db_1database”目录下,它决定了数据库的物理结构、内存、数据库的极限值及大量的默认值。是进行数据库设计和优化的重要文件。2、 可以分为文本参数文件(pfile text parameter file)和服务器参数文本文件(spfile server parameter file) 两种。9i以后才有此spfile。3、 Oracle在起动时,必须要一个参数文件。在使用startup时,它先找spfile,如果没有,再找pfile。 数据库启动时spfile和pfile的加载顺序 初始化参数是
Oracle中rownum与rowid使用上的问题
问题描述:使用rownum反回一条记录时,返回结果发生变化,与一个月前不同了。这其间数据库未恢复过。[@more@]如:select rownum, a.* from sometab a where rownum=1上面的查询结果,一般来说返回的值应当是固定的。原因是rowid值是固定的。rowid是记录表中存储的记录在数据文件中的存储位置。它的结构如下:8以上版本的ROWID组成 OOOOOOFFFBBBBBBRRR 8以下ROWID组成(也叫受限Rowid) BBBBBBBB.RRRR.FFFF 其中,O是对象ID,F是文件ID,B是块ID,R是行ID 如果我们查询一个表的ROWID,根据其中块的信息,可以知道该表确切占用了多少个块,进
导出oracle表记录为insert脚本
格式:Select 'Insert into 表名 (column1, [column2,..columnX]) ' || ' Values(' || column1 || ',' || column2 || ',' [|| column3,..columnX] || ');'from 表名[@more@]SELECT 'Insert into dct_optype (OPTYPENUM,OPPARTNUM,OPTYPENAME,REALOPTYPE) ' || 'Values(' || optypenum || ',' || oppartnum || ',''' || optypename || '''' || ',' || realoptype || ')' FROM dct_optype
从oracle表中随机取记录,产生随机数和随机字符串
1、从表中随机取记录 select * from (select * from staff order by dbms_random.random) 表示从STAFF表中随机取3条记录 where rownum < 4 [@more@] 2、产生随机数 SELECT DBMS_RANDOM.RANDOM FROM DUAL; 产生一个任意大小的随机数 SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL; 产生一个100以内的随机数 SELECT TRUNC(100+900*dbms_random.value) FROM dual; 产生一个100~1000之间的随机数 SELECT dbms_random.value FROM dual; 产生一个
丢失Oracle中数据文件Ora时的解决办法
Oracle 9i在丢失数据文件.Ora后不能正常打开,只能装载数据库,而不能正常访问数据库中的对象,如:例程、方案、安全性、存储等。一个实例的Ora文件丢失造成数据库不能正常打开,出现这种情况时,数据库中其它实例也会因数据库不能正常打开而不能访问。[@more@]处理的方法是将丢失的数据文件从数据库中脱机删除掉,这样数据库就可以正常打开,访问上面的数据库对象了。具体步骤:1)用户sys以sysdba身份登录到Oracle2)假设丢失的数据文件DB.Ora文件丢失前存放在"D:OraDataDB.Ora"两种方法中任选一种:1.alter database datafile
查找并删除Oracle中等待的锁
找到等待的锁:1.正在等待别人的用户:SELECT a.SID, a.serial#, a.machine, a.last_call_et, a.username, b.id1 FROM (SELECT a.username, a.SID, a.serial#, a.lockwait, a.machine, a.status, a.last_call_et, a.sql_hash_value, a.program FROM v$session a WHERE NVL (a.username, 'NULL') < > 'NULL') a, (SELECT id1, kaddr, SID, request, TYPE FROM v$lock) b WHERE a.lockwait = b.kaddr2.被等待的用户[@more@]SELECT a.SID, a.serial#, a.machine, a.last_call_et, a.user
怎样快速查出Oracle 数据库中的锁等待
摘自《计算机世界日报》(文/赵华良) ---- 在大型数据库系统中,为了保证数据的一致性,在对数据库中的数据进行操作时,系统会进行对数据相应的锁定。 ---- 这些锁定中有"只读锁"、"排它锁","共享排它锁"等多种类型,而且每种类型又有"行级锁"(一次锁住一条记录),"页级锁"(一次锁住一页,即数据库中存储记录的最小可分配单元),"表级锁"(锁住整个表)。 ---- 若为"行级排它锁",则除被锁住的该行外,该表中其它行均可被其
Oracle中的锁
ORACLE锁具体分为以下几类: 1.按用户与系统划分,可以分为自动锁与显示锁 自动锁:当进行一项数据库操作时,缺省情况下,系统自动为此数据库操作获得所有有必要的锁。 显示锁:某些情况下,需要用户显示的锁定数据库操作要用到的数据,才能使数据库操作执行得更好,显示锁是用户为数据库对象设定的。 2.按锁级别划分,可分为共享锁与排它锁 共享锁:共享锁使一个事务对特定数据库资源进行共享访问——另一事务也可对此资源进行访问或获得相同共享锁。共享锁为事务提供高并发性,但如拙劣的事务设计+共享锁容易造成死锁或数
Oracle中数组使用方法
在这里介绍的是Oracle中常量数组的使用方法,首先定义一个数组类型,它的语法结构:Type 数组类型名 Is VArray(数组长库) Of 数组成员类型;之后声明一个常量数组,它的语法结构:常量数组名 数组类型名 := 数组类型名(常量数组值1,常量数组值2,..常量数组值N);[@more@]举例如下:CREATE OR REPLACE PROCEDURE up_checkUserQueryPower ISssql VarChar2(4096);iUserNum Integer;n Integer;i Integer;sPower VarChar2(5);tmpRC PK_VAR.RC;TYPE T_UserPower IS VARRAY(13) OF VarChar2(5); -- 定义数组类型T_UserPower V_VAR T_UserPower := T
Oracle中“HINT”的使用方法
1. /*+ALL_ROWS*/ 表示对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化。 2. /*+FIRST_ROWS*/ 表示对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化。[@more@]3. /*+CHOOSE*/ 表示如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量。 表示如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法。4. /*+RULE*/ 表示对语句块选择基于规则的优化方法。5. /*+FULL(TABLE)*/ 表示对表选择全局扫描的方法。6. /*+ROWID(TABLE)*/ 提示明确表明对指定表
在Oracle中将小写人民币转换成大写
CREATE OR REPLACE FUNCTION uf_getbig (nsmallmoney NUMBER)RETURN VARCHAR2/*NAME: UF_GETBIGPURPOSE:Author: ICreateDate: 2007-12-23 描述: 用于返回大写的人民币,目前只支持到百万*/ISsbigmoney VARCHAR2(50);rcmoney pk_var.rc;[@more@]BEGINOPEN rcmoney FORSELECT TRANSLATE( CASEWHEN MOD (FLOOR (nsmallmoney / 1000000), 10) > 0THEN MOD (FLOOR (nsmallmoney / 1000000), 10) || 'c'END|| CASEWHEN MOD (FLOOR (nsmallmoney / 100000), 10) > 0THEN MOD (FLOOR (nsmallmoney / 100000), 10) || 'd'END|| CASEWHEN MOD (
数据库范式
构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。下面我们举例介绍第一范式(1NF)、第二范式(2NF)和第三
数据库设计
数据库建模工具:PD、ERWin等。库表设计原则:1.库表名称:首先应将库表分类,如:基础数据表、数据字典表等,即,以‘库表前缀’+ ‘有意义的逻辑名称’组合的形式命名库表。命名法一般选择匈牙利命名法。2.字段长度:可变数据类型的字段,如:VARCHAR2,最大边界应为2的整数次幂,如:32、64、128等。3.主键:通常情况应将主键设置成自增型。不可以使用与业务相关的数据作为主键。4.命名:名称应以词组缩写命名,不应过长,在5到10之间为宜。5.字段数量:单个库表中的字段数量应控制在100以下。[@more@]
关于数据库间链接问题汇总---Oracle
通过一台数据库访问其它数据库,在Oracle中可以通过DBLink实现。dBLink的创建:Create Database Link YourDBLinkName Connect to UserName Identified by PasswordUsing '链接字符串';说明:YourDBLinkName:是创建的DBLink名称,UserName是你要登录的数据库用户名,Password是密码。'链接字符串':它可以是你在Oracle中配置好的数据库实例名,也可以是链接字符串,这里推荐使用链接字符串,因为它不受数据库发启链接方的数据实例名称限制。DBLink创建好后,可以通过@标识符访问远程的数据库了,如:Select * From SomeTable@ YourDBLinkN