`
king520
  • 浏览: 166919 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
文章分类
社区版块
存档分类
最新评论

Oracle10g下简单存储过程编写

 
阅读更多

经过个把小时的折腾,写了一个简单的存储过程。一直都是改别人的存储过程,没有自己
写过,这样很不好。写了一个简单功能的:
有判断选择,循环遍历游标。

存储过程注意点:
1.注意其基本的语法。
2.关注游标,在10g中定义游标一般都使用sys_refcursor
而cursor只是用来在申明部分进行初始化,而sys_refcursor可以直接
使用。
3.%found %notfound %isopen等游标属性


/**
*@date:2009-06-16
*
*/
CREATE OR REPLACE PROCEDURE SP_TEST(STRFLAG IN STRING,
CUR_FCONSIGN out sys_refcursor ,
CUR_FEE out sys_refcursor ,
INTCOUNT OUT INTEGER) AS

fcsgConsignId varchar2(200); --委托表ID
fcsgConsignNo varchar2(200); --委托表NO
i integer;

--定义中间游标
cursor CUR_TEMP is
SELECT fc.fcsg_consign_id, fc.fcsg_consign_no
FROM FCONSIGN fc
where rownum <= 5;

BEGIN

--如果传的标志为1,则返回CUR_FCONSIGN
IF STRFLAG = 0 THEN
SELECT COUNT(*) INTO INTCOUNT FROM FCONSIGN;
DBMS_OUTPUT.PUT_LINE(INTCOUNT);
--返回fconsign表的所有数据
open CUR_FCONSIGN for
select fc.fcsg_consign_id, fc.fcsg_consign_no
from fconsign fc
where rownum <= 100;

ELSIF STRFLAG = 1 then
select count(*) into INTCOUNT from fexpense;
dbms_output.put_line(INTCOUNT);
--返回费用的数据fexpenses
open CUR_FEE for
select fe.fexp_expense_id, fe.fexp_bill_no
from fexpense fe
where rownum <= 5;
END IF;


--打开游标
open CUR_TEMP;
--把游标的某行值赋值给变量
fetch CUR_TEMP
into fcsgConsignId, fcsgConsignNo;
dbms_output.put_line('first' || fcsgConsignId || fcsgConsignNo);
dbms_output.put_line('------------------------');

--打印委托表中的前一百条数据
--遍历游标
i := 1;
while CUR_TEMP%found loop
fetch CUR_TEMP
into fcsgConsignId, fcsgConsignNo;
dbms_output.put_line(i);
dbms_output.put_line(fcsgConsignId || fcsgConsignNo);
i := i + 1;
end loop;

--关闭游标
if CUR_TEMP%isopen then
close CUR_TEMP;
end if;


END SP_TEST;

凡事由简入难~~~~基础很重要,要不停的补充。

分享到:
评论

相关推荐

    Oracle 9i、10g、11g通用的Range分区自动扩展存储过程

    分享一个自己编写的Oracle 9i、10g、11g通用的Range分区自动扩展存储过程,可以在输入相应参数后自动实现RANGE表分区的扩展,推荐在数据仓库、经营分析等OLAP数据库中使用。

    Oracle11g从入门到精通2

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用...

    Oracle 10g 网格数据库研讨会33个PPT下载

    Oracle数据库10g:.NET和Windows环境下的最佳数据库 Oracle数据库10g:独立软件供应商和客户的应用系统性能 Oracle数据库10g安全性概述 Oracle数据库10g-对自我管理数据库进行管理1 Oracle数据库10g-对自我管理...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    第10章-存储过程,提高程序执行的效率 什么是存储过程 在SQL*Plus中创建存储过程 使用PL/SQL工具创建存储过程 修改删除存储过程 第11章-触发器,保证数据的正确性 什么是触发器 SQL*PLUS操作触发器 使用PL/SQL...

    成功之路:Oracle11g学习笔记.pdf

    在介绍Oracle系统管理的知识以后,将介绍与开发相关的内容(如PL/SQL基础知识、存储过程、函数、包等),并介绍数据库性能调整,《成功之路:Oracle 11g学习笔记》重点介绍SQL语句调优。SQL语句调优是《成功之路:Oracle...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part2.rar

    1.1.2 软件代码的编写对数据库性能的影响 2 1.2 数据库的设计 8 1.2.1 oltp数据库 9 1.2.2 olap数据库 10 1.3 数据库的硬件设计 14 1.3.1 存储容量 15 1.3.2 存储的物理设计 16 1.3.3 数据的安全 17 1.4 小结 19 第2...

    成功之路 Oracle 11g 中文学习笔记

    成功之路 Oracle 11g ...在介绍Oracle系统管理的知识以后,讲介绍与开发相关的内容(如PL/SQL基础知识、存储过程、函数、包等),并介绍数据库性能调整,本书重点介绍了SQL语言调优。SQL语句调优是本书的另一个大特色!

    Oracle11g从入门到精通

    在《Oracle11g从入门到精通》中将对Oracle的众多概念进行介绍,并介绍其在实际应用中的使用,例如段、盘区、数据块、表空间、系统全局区(SGA)和程序全局区(PGA)、分区、回退段、重做日志,联机日志、归档日志、...

    Oracle Database 11g初学者指南--详细书签版

    5.7 如何创建存储过程以及创建存储过程的原因 146 5.8 函数的创建和使用 149 5.9 调用PL/SQL程序 151 5.10 本章测验 152 第6章 数据库管理员 153 6.1 了解DBA的工作 154 6.2 执行日常操作 154 6.2.1 体系结构...

    OCP:Oracle 10g管理II學習指南:1Z0-043 part 1

    043)的必读书,着重介绍了Oracle Database 10g的新功能特点,如配置恢复管理器、闪回数据库、从用户错误恢复、使用全球化支持、利用调度器自动操作任务、监控和管理存储、保护监听器的安全等方面的内容。本书的作者...

    OCP:Oracle 10g管理II學習指南:1Z0-043 part 2

    043)的必读书,着重介绍了Oracle Database 10g的新功能特点,如配置恢复管理器、闪回数据库、从用户错误恢复、使用全球化支持、利用调度器自动操作任务、监控和管理存储、保护监听器的安全等方面的内容。本书的作者...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part1.rar

    1.1.2 软件代码的编写对数据库性能的影响 2 1.2 数据库的设计 8 1.2.1 oltp数据库 9 1.2.2 olap数据库 10 1.3 数据库的硬件设计 14 1.3.1 存储容量 15 1.3.2 存储的物理设计 16 1.3.3 数据的安全 17 1.4 小结 19 第2...

    Oracle 10g 开发与管理

    本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 目录 第一讲 Oacle关系数据库 ...

    Oracle.11g.从入门到精通 (2/2)

    1.4 Oracle 11g的新特性 1.4.1 数据库管理部分 1.4.2 PL/SQL部分 1.4.3 其他部分 第2章 Oracle在Windows平台上的安装与配置 2.1 Oracle通用安装器 2.2 Oracle数据库软件的安装 2.3 Oracle数据库软件的卸载 2.3.1 ...

    Oracle.11g.从入门到精通 (1/2)

    1.4 Oracle 11g的新特性 1.4.1 数据库管理部分 1.4.2 PL/SQL部分 1.4.3 其他部分 第2章 Oracle在Windows平台上的安装与配置 2.1 Oracle通用安装器 2.2 Oracle数据库软件的安装 2.3 Oracle数据库软件的卸载 2.3.1 ...

    Oracle_Database_11g完全参考手册.part2/3

    《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有的新增功能和工具,如何执行功能强大的SOL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象,...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    《Oracle Database 11g初学者指南》能使读者快捷地掌握Oracle Database 11g的基础知识。通过自我评估教程,介绍了核心数据库技术、管理员职责、高可用性以及大型数据库特性。《Oracle Database 11g初学者指南》带领...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

    Oracle_Database_11g完全参考手册.part3/3

    《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有的新增功能和工具,如何执行功能强大的SOL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象,...

Global site tag (gtag.js) - Google Analytics