ORACLE9I中建立自增字段的方法

原创 2006年05月30日 23:51:00

    我们知道在Oracle中并没有象其他数据库中的自增字段,那么我们怎么来实现Oracle的自增字段功能呢?通常我们都是通过Oracle中的Sequence和Trigger来
下面的方法是我在工作中总结并且多次使用的,较为方便,放于此处与大家分享。
1、首先建立一个创建自增字段的存储过程

create or replace procedure pr_CreateIdentityColumn
(tablename varchar2,columnname varchar2)
as
strsql varchar2(1000);
begin
       strsql := 'create sequence seq_'||tablename||' minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 nocache';
       execute immediate strsql;
       strsql := 'create or replace trigger trg_'||tablename||' before insert on '||tablename||' for each row begin select seq_'||tablename||'.nextval into :new.'||columnname||' from dual; end;';
       execute immediate strsql;
end;

2、Oracle中执行动态SQL时要显示授权(即使该用户拥有该相关权限)
GRANT CREATE ANY SEQUENCE TO "UserName";
GRANT CREATE ANY TRIGGER TO "UserName";
(注意:数据库用户名区分大小写)
3、重新Compile存储过程pr_CreateIdentityColumn
4、搞定,下面我们就可以用这个存储过程建立自增自段了。
5、调用存储过程建立自增字段(Note: 第一个参数是表名,第二个参数为自增字段的名字)
exec pr_createidentitycolumn('sdspdept','deptid');
exec pr_createidentitycolumn('sdspuser','userid');
exec pr_createidentitycolumn('sdspsysrole','sysroleid');
exec pr_createidentitycolumn('sdspfp','sysfpid');
exec pr_createidentitycolumn('sdspphasemodel','phasemodelid');
exec pr_createidentitycolumn('sdspphase','phaseid');
... ...

 

相关文章推荐

[转]Oracle9i的常见登陆问题的解决方法

第一.Oracle的系统服务是否开启;第二.登录时用的用户名和口令是否正确。那么先针对第一点谈谈Oracle的系统服务。在完全安装的情况下,Oracle的系统服务共有11项:1.Oracle OLAP...

Oracle9i的常见登陆问题的解决方法

近来,浏览BBS时,常看到“急急急!如何启动OMS?”的字眼,就针对以上这类问题,我有些经验想和大家共同分享。 能否正常启动OEM或OMS关键有以下两点: 第一.Oracle的系统服务是否开启; ...
  • ergouge
  • ergouge
  • 2012年05月11日 17:02
  • 827

SQL2000将数据导入Oracle9i的方法

  • 2010年04月03日 10:30
  • 820KB
  • 下载

oracle9i 安装和卸载方法

  • 2008年12月10日 22:24
  • 1.17MB
  • 下载

oracle9i与10g与11g的区别

Oracle 10g比9i多的新特性?         1. 10g支持网格计算,即多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个                网格中衡(Load...

Oracle使用序列创建自增字段

  • 2012年08月15日 16:43
  • 2KB
  • 下载

oracle9i/10g/11g下载地址大全

把下面的地址复制到讯雷里就可以下载 ---------------------------------------------------------------------------------...

在AIX5.3系统上安装oracle9i和weblogic

第一章 AIX系统上安装oracle数据库一、AIX系统下的环境准备1、首先建立orajdls用户在命令行窗口输入:#smit user 执行后弹出用户管理的图形界面,选择第一项:ADD a User...
  • jin6868
  • jin6868
  • 2011年02月11日 15:38
  • 646

Oracle9i的优化调整

一、SGA 1、Shared pool tunning Shared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE9I中建立自增字段的方法
举报原因:
原因补充:

(最多只允许输入30个字)