Oracle索引技术的应用与剖析
Oracle
索引技术的应用与剖析
最
近这段时间,总是想写一些有关性能调优的文章。但是苦于没有一个实际的案例,本人又不愿空谈理论,因为这些理论随便在网上就能找到,而且基本上千篇一律,
因为理论上的那些东西就那么多,再怎么讲也不如一个实际案例生动。还好上天不负有心人,前些天让我碰到了一个实际的案例。这个实际案例是这样,本人所在的
城市的某个政府职能部门,要推出一项新的服务,这项服务就是要向社会发放一张功能完备的
CPU
卡
片,通过这张卡片可以经办该政府部门所负责相关业务,在某种程度上为广大市民提供了很大方便。在制作这张卡片过程中,需要将用户的身份证,姓名以及个人照
片打印在卡片上,并且要在卡片的芯片内写入一些信息。因此出现了两个问题,第一、该政府职能部门的自身的业务系统数据库中,没有公民个人照片信息以及卡片
内部所需的一些信息;第二、在该政府职能部门的数据库内,存在着一些错误信息,比如:身份证号码错误、姓名错误等等。为了解决这个问题,该政府部门用户提
出了一个方案,那就是拿本系统中的个人基本信息与当地公安系统的人口信息通过身份证号码进行比对,并且将能够比对上的人员所需的并且本系统没有的个人关键
信息,从人口数据库中取得,同时将没有比对上的个人信息进行标记,以便下发由当事人到相关部门去修正。由于该政府部门的所有业务系统,都是由本人所在的公
司确切的说是由本人设计并组织开发的,因此理所当然本人有幸承接这个“神圣而伟大”的任务。
刚拿到这个需求时,觉得这个需求还是比较简单的,就是一个对照比对,然后将能够匹配的记录所需要的数据拿到。因此我将本系统中的数据到一张表中,该表设计脚本如下:
create
table
TEDA_RYXX
(
AAC002 VARCHAR2
(18),
AAC001 VARCHAR2
(14) not
null
,
AAC003 VARCHAR2
(20),
AAC004 VARCHAR2
(3),
AAC005 VARCHAR2
(3),
AAC006 DATE
,
AAC009 VARCHAR2
(3),
AAB003 VARCHAR2
(15),
AAB004 VARCHAR2
(50),
FL
相关文档:
--创建序列
create sequence innerid
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20
order;
--创建表
create table users(
userid int primary key,
username varchar2(20),
userpwd varchar2(20)
);
select * from users;
insert into users values( ......
Oracle中用Rowid查找和删除重复记录
平时工作中可能会碰到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。
下面总结一下几种查找和删除重复记录的方法(以表CZ为例):
表CZ的结构如下:
SQL> desc cz
Name Null? Type
---------- ......
sys是Oracle数据库中权限最高的帐号,具有create database的权限,而system没有这个权限,sys的角色是sysdba,system的角色是sysoper。
其余就是他们两个用户共有的权限了:
startup/shutdown/dba两个用户都是可以管理的。
平时用system来管理数据库就可以了。这个用户的权限对 ......
在做项目经常遇到分科室、人员进行汇总的问题,在ORACLE中对此类问题的处理相当方便!下面以项目中遇到的实例进行说明:
查询语句如下:
select f_sys_getsectnamebysectid(a.sectionid) as sectname,
--a.sectionid,
f_sys_employin ......
oracle imp时报:
IMP-00032: SQL statement exceeded buffer length
IMP-00008: unrecognized statement in the export file
解决办法:
将imp语句由
imp username/userpass@or ......