`
wyf
  • 浏览: 425455 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

创建Sequence的存储过程

阅读更多
很多人都知道在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_CreateIdentityColumn4、搞定,下面我们就可以用这个存储过程建立自增自段了。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');
本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a> 原文链接:http://www.soidc.net/articles/1213781350028/20080209/1215945485218_1.html

 

分享到:
评论

相关推荐

    sqlserver实现oracle的sequence方法

    当然这点小问题是难不倒...网上常见的一个存储过程为 为当前库所有用到Sequence建一张表,譬如“AllSequence”,内含四个字段【名字,起点值,递增值,当前值】,创建Sequence的时候就创建一条记录,获取Sequence的时

    SQL语句的使用

    创建表空间: CREATE TABLESPACE (表空间名称) DATAFILE '表空间名称.... 对象权限是指用户对具体的数据库中的对象所拥有的权限,如:表、视图、序列、存储过程、存储函数。 系统自定义角色:CONNECT、RESOURCE、DBA

    sql总结.doc

    存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 (2)存储过程的基本写法...

    2数据库设计规范.doc

    3 3.1 数据库命名规则 3 3.2 数据库对象命名的一般原则 4 3.3 表空间(Tablespace)命名规则 4 3.4 表(Table)命名规则 4 3.5 字段命名规则 5 3.6 视图(View)命名规则 5 3.7 序列(Sequence)命名规则 5 3.8 存储过程...

    8数据库设计规范.doc

    3 3.1 数据库命名规则 3 3.2 数据库对象命名的一般原则 4 3.3 表空间(Tablespace)命名规则 4 3.4 表(Table)命名规则 4 3.5 字段命名规则 5 3.6 视图(View)命名规则 5 3.7 序列(Sequence)命名规则 5 3.8 存储过程...

    4数据库设计规范.doc

    3 3.1 数据库命名规则 3 3.2 数据库对象命名的一般原则 4 3.3 表空间(Tablespace)命名规则 4 3.4 表(Table)命名规则 4 3.5 字段命名规则 5 3.6 视图(View)命名规则 5 3.7 序列(Sequence)命名规则 5 3.8 存储过程...

    db2-技术经验总结

    1.1. 创建一个返回结果集的存储过程\自定义函数 12 1.2. DB2 高级应用 14 1.3. 删除表数据时候出现日志已满的解决方法 24 1.4. DB2快照函数全解析 25 1.5. DB2中的22个命令小技巧 26 1.6. DB2实现类型ORACLE的一些...

    Translate.js

    'Create expanded SubProcess': '创建扩展子过程', 'Create IntermediateThrowEvent/BoundaryEvent': '创建中间抛出事件/边界事件', 'Create Pool/Participant': '创建池/参与者', 'Parallel Multi Instance'...

    MySQL实现类似Oracle序列的方案

    Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要迁移数据库,...

    Microsoft SQL Server数据库建模工具

    Columns、Dic_Datatypes、Dic_Relation、Dic_RelationDetail、Dic_Sequence、Dic_Tables、Dic_TableTemplate以及Dic_TableType,如果您的数据库中不存在这些表,工具会自行创建。 Dic_Columns:存储字段信息,各个...

    HCIP-GaussDB-OLAP V1.0视频.zip

    2.5 存储过程 3.1 执行引擎&核心算子 3.2 分布式执行框架 3.3 执行计划 3.4 执行方式 4.1 创建和管理用户及表空间 4.10 日志管理 4.11 事务管理 4.12 事务并发管理 4.13 事务日志管理 4.2 创建和管理数据库及模式 ...

    oracle使用管理笔记(一些经验的总结)

    (1)存储过程简单版本 47 (2)存储过程升级版本 49 (3)函数 50 (4)包 50 (5)触发器 51 PL/SQL语法数据类型 57 (6)PL/SQL进阶控制结构 60 (7)PL/SQL进阶分页过程 62 (8)PL/SQL进阶例外 62 (9)视图 62 22.数据库管理+表...

    Oracle数据库、SQL

    20.2创建sequence 44 20.3缺省是nocycle(不循环) 44 20.4缺省cache 20 44 二十一、 其他注意事项 46 21.1删除表,删除列,删除列中的值 46 21.2多对多关系的实现 46 21.3一对多(两张表) 46 21.4一对一 46 21.5...

    数据库基础

    §16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3 创建函数 281 §16.4 过程和函数中的例外处理 ...

    Oracle8i_9i数据库基础

    §16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3 创建函数 281 §16.4 过程和函数中的例外处理 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    产品安装过程中将会出现以上2个界面 9. 步骤8/8:完成安装  卸载Oracle 1. 在运行services.msc打开服务,停止Oracle的所有服务。 2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\...

    Oracle数据库设计策略及规范.docx

     概述 本文档根据Oracle数据库性能特点,描述对表、视图、存储过程、对象命名等方面的设计规范。 3. 基本策略 3.1 设计策略 分类拆分数据量大的表。 对于经常使用的表(如某些参数表或代码对照表),由于其使用...

    ORACLE数据库基础知识-华为维护资料

    3.10 怎样手工跟踪函数/存储过程执行情况 42 3.11 多种业务使用同一数据库如何分配回滚段 42 3.12 怎样远程用Sql*Load倒入数据 43 3.13 怎样倒出、倒入文本数据 43 3.13.1 倒出 43 3.13.2 倒入 43 3.14 如何更新当前...

    matlab并网程序代码-KITTI-tracking-data:KITTI-tracking-data

    path/to/one/sequence/of/frames 分类 feature_extraction.py:该程序从每个组件中提取对象级和点级特征,并创建一个 28 维向量。 svm_train.py :该程序为作为输入提供的训练数据生成 SVM 模型 python svm_train.py...

    .net实现oracle数据库中获取新插入数据的id的方法

    数据表结构为test(id,name) 首先,解决数据id自增问题 创建一个序列sequence(sequence详解可从网上搜一下,这里不赘述) create sequence SEQ_test minvalue 1 maxvalue 99999999999999999999999999

Global site tag (gtag.js) - Google Analytics