`

Oracle 存储过程笔记

阅读更多

 

写Oracle存储过程习惯用PL/Sql dev,里面有一些模版,我这里也记录一些目前经常使用的一些:
--基本例子
create or replace procedure TestProc as
begin
  for c in (select fieldName from tableName)
  loop
      dbms_output.put_line(c.fieldName);
  end loop;
endTestProc  ;

--带异常处理
create or replace procedure test2 as
--局部变量
  vc varchar2(2048);
begin
  --过程体卸载这里
Raise cust_exception;
  -- 异常处理  
EXCEPTION
  when cust_exception then
       dbms_output.put_line('custom exception');
  WHEN OTHERS THEN
    --回滚
    ROLLBACK;
    dbms_output.put_line('Other Errors');
    RETURN;
    --END;
end test2;

--匿名过程,常用于临时处理数据
DECLARE
--局部变量
l_elem MDSYS.SDO_ELEM_INFO_ARRAY;
l_ord MDSYS.SDO_ORDINATE_ARRAY;
l_srid NUMBER := 262148; -- Arbritrary X-Y Meters
l_gtype NUMBER := 2002; -- 2d Line
j NUMBER;
x NUMBER;
y NUMBER;
BEGIN

l_elem := MDSYS.SDO_ELEM_INFO_ARRAY();
l_ord := MDSYS.SDO_ORDINATE_ARRAY();
l_elem.EXTEND(3);
l_elem(1) := 1;
l_elem(2) := 2; -- etype line
l_elem(3) := 1; -- interpretation straight segments
--for循环
for j in 1 .. 1500 LOOP
x := j;
y := mod(j, 2);
l_ord.EXTEND(2);
l_ord(l_ord.LAST - 1) := x;
l_ord(l_ord.LAST) := y;
END LOOP;
INSERT INTO SHAPELY (entid, coordinates)
values ('BINDVAR', MDSYS.SDO_GEOMETRY(l_gtype, l_srid, NULL,l_elem, l_ord) );
end;

--动态游标,带参数,返回值
create or replace function TestProc(v in varchar2) return varchar2 is
  strSql varchar2(4056);--SQL语句
  type rCursor is ref cursor; --游标类型
  cur rCursor;--定义游标
begin
  --拼装语句
  strSql := 'select field1 from tabName where field2 = ' || v;

  open  cur for strSql;
 
   LOOP
     dbms_output.put_line(cur.field1);
   END LOOP;
   CLOSE cur; --关闭游标
  return('OK');
end TestProc;
分享到:
评论

相关推荐

    oracle存储过程笔记

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL和PL/SQL语句,形成一个可重用的程序单元。存储过程的概念类似于高级编程语言中的模块,通过参数传递来实现数据的交互,体现了模块...

    oracle存储过程学习笔记

    1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字

    oracle存储过程学习笔记(四)

    在本篇“Oracle存储过程学习笔记(四)”中,我们将深入探讨存储过程的概念、创建、执行以及在实际应用中的优势。 1. **存储过程的概念** 存储过程是一组预先编译的SQL和PL/SQL语句,存储在数据库服务器中。当需要...

    ORACLE DBA工作笔记 运维数据迁移与性能调优

    标题中提到的“ORACLE DBA工作笔记 运维数据迁移与性能调优”揭示了这本书籍主要围绕着Oracle数据库管理员(DBA)在日常工作中经常需要进行的两项关键任务:数据迁移和性能调优。作为一名Oracle DBA,不仅要负责...

    oracle存储过程 学习笔记

    oracle存储过程 基础知识大全 oracle存储过程分享 实用指数五颗星哈

    oracle dba学习笔记

    Oracle 的 System Global Area(SGA)是 Oracle 实例的内存结构,用于存储数据库的各种信息。查看 SGA 信息可以帮助 DBA 了解数据库的当前状态,例如,查看 SGA 的大小、使用情况、共享池的大小等。 3. 查看命中率...

    韩顺平玩转oracle视频教程笔记

    Oracle数据库是世界上最流行的数据库管理系统之一,广泛应用于企业级的数据存储和管理。韩顺平的“玩转Oracle”视频教程旨在帮助学习者掌握Oracle的核心概念和技术。以下是对视频教程笔记的详细解析: 首先,Oracle...

    oracle笔记存储函数和存储过程

    oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!

    李兴华Oracle全部笔记

    其次,笔记可能会深入到Oracle的高级特性,比如PL/SQL编程,这是一种专为Oracle设计的过程化编程语言,用于创建存储过程、函数、触发器等。此外,可能还会涵盖数据库事务处理、并发控制和锁机制,这些都是保证数据...

    Oracle数据库课堂笔记

    以下是对Oracle数据库课堂笔记的详细解析,涵盖了从基础到进阶的重要知识点。 第一讲:Oracle简介 Oracle数据库是由甲骨文公司开发的,提供了一整套数据存储、管理和检索解决方案。它支持多种操作系统和硬件平台,...

    oracle_sql笔记

    PL/SQL是Oracle的存储过程语言,结合了SQL和过程式编程。它可以创建存储过程、函数、触发器等,实现复杂的业务逻辑和数据库控制。 九、事务处理 在Oracle中,事务是一组SQL语句,被视为一个工作单元。事务处理包括...

    oracle原厂培训笔记

    ### Oracle原厂培训笔记知识点概览 #### 一、Oracle认证体系介绍 - **OCA (Oracle Certified Associate)**: 入门级别的Oracle认证,适用于具备基本Oracle技能的专业人士。 - **OCP (Oracle Certified Professional)...

    【源代码】《涂抹Oracle-三思笔记之一步步学Oracle》

    《涂抹Oracle - 三思笔记之一步步学Oracle》是一本旨在深入浅出地教授Oracle数据库技术的书籍。源代码部分提供了配合书本学习的实际操作示例,帮助读者更直观地理解Oracle数据库的工作原理和操作技巧。以下是根据...

    oracle笔记(存储过程函数触发器游标流程控制等)

    这份"oracle笔记(存储过程函数触发器游标流程控制等)"涵盖了Oracle数据库管理中的关键知识点,包括但不限于以下几个方面: 1. **存储过程与函数**:存储过程是预编译的SQL语句集合,用于执行特定任务。它们可以提高...

    韩顺平oracle课堂笔记

    存储过程是Oracle数据库中预编译的SQL语句集合,可以视为可重复使用的功能模块。通过创建存储过程,我们可以提高代码复用性,减少网络通信,提升系统性能。存储过程可以包含输入、输出参数,甚至可以有返回值。在...

    ORACLE经典学习笔记

    ### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...

    2011Oracle笔记(李兴华视屏教程笔记)

    标题“2011Oracle笔记(李兴华视屏教程笔记)”揭示了文档的用途,它是作为2011年李兴华Oracle教学视频课程的学习笔记。这种笔记通常包括了课程中的重点概念、Oracle数据库基础知识、实际操作案例以及配合视频教程的...

    Oracle9i学习笔记.doc

    数据字典是Oracle数据库中的一个重要组成部分,用于存储关于数据库对象的信息。笔记中演示了查询`v$dba_users`、`user_tables`、`all_tables`和`dba_tables`等视图,这些都是获取用户、表和其他数据库对象信息的...

Global site tag (gtag.js) - Google Analytics