`
xiebh
  • 浏览: 620925 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

ORACLE9I中建立自增字段的方法

阅读更多
我们知道在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中建立自增字段的最新办法

    通过以上步骤,我们就成功地在Oracle9i中模拟出了自增字段的功能。这个方法虽然比其他数据库系统的内置特性稍微复杂一些,但它提供了灵活性和控制力,可以满足各种自增需求。需要注意的是,Sequence和Trigger的使用...

    Oracle 9i开发教程(PDG)

    6. 序列与游标:序列用于生成唯一的数字序列,常作为自增字段的值。游标是处理查询结果集的一种方式,允许逐行处理数据,对数据进行迭代操作。 7. 权限与角色管理:Oracle提供了用户、权限和角色的概念,通过GRANT...

    大型数据库系统概论课件 实验4 Oracle9i数据库对象的管理(综合一).ppt

    【实验目的】本实验旨在帮助学生深入理解Oracle 9i数据库中的对象管理,具体目标如下: 1. **表的管理**:掌握如何创建、修改和删除表,理解表的基本结构,包括字段定义、约束条件和默认值等。 2. **索引的管理**...

    oracle

    Oracle9i中没有直接支持自增列的功能,但可以通过序列和触发器的方式实现类似的效果。 1. **创建表格** 创建一个表格,指定`TID`为主键。 ```sql CREATE TABLE scott.test_table ( TID NUMBER(9,0) PRIMARY ...

    第5章 其他数据库对象1

    5. **SEQUENCE**:序列生成器用于自动产生唯一的数字序列,常用于自增字段,避免手动设置主键值。 6. **SYNONYM**:同义词是为数据库对象(如表、视图等)创建的别名,方便用户记忆和使用,可以隐藏真实对象的名称...

    SSH考试题目面试题目借鉴.pdf

    - 数据库使用**Oracle 9i**,但要求将OlympicGames数据库附加到**SQL Server 2000**,确保系统能与不同数据库平台兼容。 3. **系统功能**: - **门票管理**: - 查看门票销售情况:展示所有门票信息,体育场馆以...

Global site tag (gtag.js) - Google Analytics