网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  分享Oracle9i中建立自增字段的最新办法     
  文章作者:未知  文章来源:未知  
  查看:147次  录入:管理员--2007-08-05  
   

很多人都知道在Oracle中并没有像其他数据库中的自增字段,那么我们怎样才能实现Oracle的自增字段功能呢?下面我们通过Oracle中的Sequence和Trigger来实现此功能。

1、首先建立一个创建自增字段的存储过程

//Written by Sun Zhenfang 20040903
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');
... ...
 
 
上一篇: 用一条SQL 实现其它进制到十进制的转换    下一篇: 从Oracle的FORM中调用REPORT的实用技巧
  相关文档
如何查看"control file"中保存的内容 02-27
启动或关闭数据库的归档(archivelog)模式 08-06
解析:Oracle数据库最大可用性体系结构 09-01
在操作系统损坏时恢复Oracle10g全过程 05-27
将 Excel 数据导出到 Oracle 数据库中 01-15
哪些因素可以影响oracle数据库的性能 03-11
轻松掌握关闭oracle死锁进程的具体步骤 05-12
通过SQL定时分析表监控Unix系统性能 04-11
在不安装oracle客户端的情况下进行系统移植 07-18
讲解oracle面试过程中常见的二十个问题 04-24
初学者应该如何理解oracle的架构知识 (1) 03-04
讲解oracle数据库的sysdba权限登录问题 (1) 06-05
oracle中sqlplus的常用指令收集与技巧 (1) 08-14
oracle data的一个常见问题计算时间差 01-28
实例讲解清除oracle10g rac crs的方法 02-27
实例讲解各种数据库当前日期的标准写法 02-03
关于Oracle中并行处理技术原理深入分析 04-12
解决未找到oracle客户端和网络组件现象 04-22
详细讲解"oracle"数据库的“周数计算” 03-18
oracle数据库中的表连接方式及使用场合 04-07
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息