`

oracle之存储过程

阅读更多

*、oracle之存储过程语法基础

create [or replace] procedure 存储过程名称
is|as
变量n 类型(范围);
begin
操作
exception
    when others then
         rollback;
end [存储过程名称]

 

*、oracle中的一个更新sequence的应用实例

create or replace procedure UpdateSeq is
dropCurSeqSql varchar2(300);
createCurSeqSql varchar2(300);
curSeqSql varchar2(400);
isExistSql varchar2(300);
existTableNum number;
curMaxIdSql varchar2(400);
curSeqName varchar2(100);
curSeqInCre number;
curTableName varchar2(100);
curMaxId number;
begin
     for curSeqSql in (select * from user_sequences) loop
       curSeqName := curSeqSql.Sequence_Name;
       if(instr(curSeqName,'SEQ_')>0) 
         then
           curTableName := substr(curSeqName,instr(curSeqName,'SEQ_')+4);
         else
           continue;
         end if; 
       isExistSql := 'select count(1) from user_tables where table_name= '||chr(39)||curTableName||chr(39);
       execute immediate isExistSql into existTableNum;
       if (existTableNum <= 0) 
         then
           continue;
         end if;
       if(instr(curTableName,'DC_')>0) 
         then
           curMaxIdSql := 'select nvl(max(oid),0) from '|| curTableName;
         else
           curMaxIdSql := 'select nvl(max(id),0) from '|| curTableName;
         end if;
       dropCurSeqSql := 'drop sequence '||curSeqName;
       execute immediate dropCurSeqSql;
       execute immediate curMaxIdSql into curMaxId;
	     curSeqInCre := curSeqSql.Increment_By;
       createCurSeqSql := 'create sequence '||curSeqName||' minvalue 1 maxvalue 99999999 start with '||concat((curMaxId+curSeqInCre),'')||' increment by '||concat(curSeqInCre,'')||' nocache order';
       execute immediate createCurSeqSql;
       dbms_output.put_line(createCurSeqSql);
       end loop;
       dbms_output.put_line('over!');
       exception
         when others then
           dbms_output.put_line(sqlcode||'----'||sqlerrm);
           Rollback;
end UpdateSeq;
总结:
    由于sequence和表名之间没有直接联系的表,所以在设计sequence的时候一定要先设计好某种规则
,比如在表名前加SEQ_的前缀,规范大于设计理念。
    然后根据该规则进行sequence的动态更新!

 

-----------------------------------------------------------资源列表------------------------------------------------------------------

*、零散的资源

https://www.cnblogs.com/goodbye305/archive/2008/06/23/1228073.html
http://blog.csdn.net/u011704894/article/details/44976557
https://www.cnblogs.com/oraclestudy/articles/5779189.html
http://blog.itpub.net/22678696/viewspace-1116535/
https://www.cnblogs.com/haldir/p/5533414.html

 

 

 

分享到:
评论

相关推荐

    oracle存储过程学习经典入门

    本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...

    oracle存储过程解锁

    以下是对“oracle存储过程解锁”这一主题的深入解析。 ### 标题:“oracle存储过程解锁” #### 解析: 在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL代码块,用于执行复杂的业务逻辑或数据处理...

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...

    oracle 存储过程导出excel

    oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel

    ORACLE的存储过程的异步调用

    ORACLE 存储过程的异步调用 本文讨论了 ORACLE 存储过程的异步调用方法,旨在解决客户端长时间等待存储过程执行的问题。主要思路是使用 DBMS_JOB 包将主处理存储过程作为任务提交到任务队列中,并通过 DBMS_PIPE 包...

    delphi调用Oracle的存储过程

    #### Oracle存储过程创建 首先,我们需要在Oracle数据库中创建一个存储过程。以下是一个示例存储过程`pkg_test`的创建脚本: ```sql CREATE OR REPLACE PACKAGE pkg_test AS TYPE myrctype IS REF CURSOR; ...

    oracle 事务 回滚 存储过程

    ### Oracle存储过程 存储过程是在数据库中预编译的一组SQL语句,用于执行复杂的业务逻辑或数据操作。它们可以接受输入参数,执行一系列数据库操作,并返回结果。在Oracle中,存储过程使用PL/SQL编写,可以在数据库...

    oracle分页存储过程

    oracle分页存储过程,oracle分页存储过程

    使用Spring的JdbcTemplate调用Oracle的存储过程

    使用Spring的JdbcTemplate调用Oracle的存储过程

    oracle存储过程加密破解

    oracle存储过程加密破解 0

    oracle存储过程unwrap解密工具.zip

    Oracle存储过程unwrap解密工具主要用于处理Oracle数据库中的加密存储过程。在Oracle数据库系统中,为了保护敏感代码或数据,开发人员有时会选择对存储过程进行加密。然而,当需要查看、调试或恢复这些加密的存储过程...

    oracle的存储过程如何返回结果集

    ### Oracle存储过程返回结果集详解 #### 一、概述 在Oracle数据库中,存储过程是一种重要的编程组件,它能够执行一系列SQL语句并处理复杂的业务逻辑。存储过程的一个常见应用场景是返回结果集(Record Set),这有...

    oracle通过存储过程POST方式访问接口

    总的来说,"Oracle通过存储过程POST方式访问接口"涉及到数据库编程、网络通信和安全性等多个方面,需要综合运用PL/SQL和Oracle的网络工具。通过学习和实践,你可以构建出高效、安全的接口交互方案。

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...

    hibernate query调用oracle存储过程

    以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....

    oracle存储过程-帮助文档

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL语句和PL/SQL块,形成可重复使用的代码单元。这篇博客“oracle存储过程-帮助文档”可能提供了关于如何创建、调用和管理Oracle存储过程...

    oracle 存储过程示例

    oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例oracle 存储过程示例

    帆软报表Oracle存储过程解决storeParameter1参数试用插件

    总结起来,"帆软报表Oracle存储过程解决storeParameter1参数试用插件"主要是针对在调用无参数Oracle存储过程时出现的异常问题提供的一种解决方案。通过安装并配置这个插件,用户可以顺利地在帆软报表中调用不包含...

    Delphi中调用oracle的存储过程返回数据集

    Delphi 中调用 Oracle 的存储过程返回数据集是指在 Delphi 应用程序中调用 Oracle 数据库中的存储过程,并将存储过程的返回结果集显示在 Delphi 应用程序中。这种方式可以将 Oracle 数据库中的数据实时同步到 Delphi...

Global site tag (gtag.js) - Google Analytics