欢迎您访问我爱IT技术网,今天小编为你分享的是oracle数据库教程:【分享Oracle9i中建立自增字段的最新办法_Oracle_领测软件测试网】,通过学习这些教程,你能够更深层次的掌握Oracle数据库!
分享Oracle9i中建立自增字段的最新办法_Oracle_领测软件测试网
关键字: Oracle 9i很多人都知道在Oracle中并没有像其他 数据库 中的自增字段,那么我们怎样才能实现Oracle的自增字段功能呢?下面我们通过Oracle中的Sequence和Trigger来实现此功能。 1、首先建立一个创建自增字段的存储过程 //Written by Sun Zhenfang 2004
关键字:Oracle9i很多人都知道在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');
关于分享Oracle9i中建立自增字段的最新办法_Oracle_领测软件测试网的用户使用互动如下:
相关问题:oracle 添加字段
答:alter table bm_methods add sysdatestr varchar(40); insert into tbl_user(id,name,sysdatestr) values(idstr,namestr ,to_char(current_date,'yyyy-mm-dd hh24:mi:ss'));这是个例子,你稍微改动一下就可以了 >>详细
相关问题:oracle数据库,主键设置为ID,插入语句时,如何自...
答:CREATE SEQUENCE SEQ_ID INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE ORDER; INSERT INTO TABLE_NAME(ID) VALUES(SEQ_ID.NEXTVAL); COMMIT; >>详细
相关问题:oracle 的sequence是干什么用的?跟表有什么关系?
答:很简单的可以这么理解,在oracle中没有自增字段,用sequence可以实现序列的自增长,在你插入id的值的时候将那个字段的插入值这样写 sequence_name.nextval 或者建立一个触发器来进行关联。 >>详细
- 软件测试开发技术之Oracle数据库维护的前瞻性_Ora
- 数据库中Oracle索引的优化设计_Oracle_领测软件测
- oracle性能Statspack使用之命中率调整_Oracle_领
- Oracle数据库和JSP连接要注意的一些问题[1]_Oracl
- 巧用Oracle备份集在测试机上做不完全恢复[2]_Orac
- 软件测试开发技术Oracle数据块损坏及其恢复的总结
- 使用oracle sql loader批量导入数据_Oracle_领测
- Oracle数据库集中复制方法浅议_Oracle_领测软件测
- Oracle11g Direct NFS 测试_Oracle_领测软件测试
- ORACLE数据库的统计数据及其生成方式_Oracle_领测
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
