经过个把小时的折腾,写了一个简单的存储过程。一直都是改别人的存储过程,没有自己
写过,这样很不好。写了一个简单功能的:
有判断选择,循环遍历游标。
存储过程注意点:
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;
凡事由简入难~~~~基础很重要,要不停的补充。
分享到:
相关推荐
6. 安全性增强:Oracle 11G在安全性方面做了大量改进,包括增强了身份验证机制、加密功能以及审计策略,oci.dll在其中起到了关键作用,确保了数据在传输和存储过程中的安全性。 总结来说,oci.dll是Oracle数据库与...
在Oracle中,编写高效且优化的存储过程是提升系统性能的关键步骤。 首先,存储过程的编写应当遵循良好的编程实践,确保SQL语句的质量。在设计存储过程时,目标是减少服务器资源的消耗,如CPU使用、IO次数和排序数量...
3. 安装的Oracle数据库实例,例如Oracle 10g Express Edition,它是免费的轻量级数据库版本。 4. 基本的SQL知识,包括增删改查等操作。 5. SQL*Plus的使用技巧,如运行脚本和管理会话。 6. Oracle PL/SQL编程语言的...
Oracle 10g OCP(Oracle Certified Professional)是Oracle公司为数据库管理员提供的专业认证,它证明了持证者在管理Oracle 10g数据库系统方面具备高级技能和知识。这个题库是准备Oracle 10g OCP考试的重要资源,...
- **PL/SQL**:一种过程化语言,用于编写复杂的数据库存储过程和函数,提高应用程序的性能和安全性。 - **Oracle Application Express (APEX)**:一个低代码平台,用于快速构建和部署Web应用程序,简化了开发流程,...
7. **PL/SQL**:Oracle的Procedural Language/Structured Query Language,允许用户编写存储过程、函数和触发器,这些在客户端也可以调用执行。 8. **JDBC驱动**:对于Java开发者,Oracle 10g客户端可能包含JDBC...
2. SQL支持:Oracle 10g全面支持SQL标准,包括SQL DDL(数据定义语言)用于创建和修改数据库对象,DML(数据操纵语言)用于插入、更新和删除数据,以及SQL PL/SQL编程语言,用于编写存储过程和触发器。 3. 性能优化...
Oracle 10g 是Oracle公司推出的数据库管理系统的一个版本,它在数据库领域有着广泛的应用,尤其在企业级数据存储和管理中占据重要地位。本套快速入门学习资源旨在帮助初学者迅速掌握Oracle 10g的基本操作和核心概念...
PL/SQL是Oracle的编程语言,用于编写存储过程、函数、包等数据库对象。掌握PL/SQL有助于提高数据库应用程序的效率和可维护性。 六、数据库管理 Oracle 10g提供了一系列工具进行数据库的日常管理,如数据导入导出、...
Oracle 10G是Oracle数据库的第十个主要版本,它引入了许多创新特性,如自动存储管理(Automatic Storage Management, ASM)、实时应用集群(Real Application Clusters, RAC)、数据分区、以及改进的数据安全性。...
6. PL/SQL:Oracle的内置过程式语言,用于编写存储过程、函数、触发器等,增强了数据库的业务逻辑处理能力。 7. 索引:Oracle 10g支持B树索引、位图索引、函数索引等多种类型,通过索引可以显著提高查询速度。同时...
PL/SQL是Oracle的编程语言,用于编写存储过程、函数、触发器等,这部分会介绍其语法和用法。 4. **安全性**:讨论了Oracle 10g的权限管理、角色、审计、加密和网络安全设置,确保数据库的安全运行。 5. **性能优化...
1. **数据库体系结构**:Oracle 10g采用的关系型数据库模型,包括物理存储结构(如数据文件、控制文件、重做日志文件等)和逻辑存储结构(如表空间、段、区和块)。理解这些组件如何相互作用对于有效管理和优化...
Oracle 10g手册是Oracle公司为用户提供的官方文档,主要涵盖了Oracle数据库10g版本的各项功能和技术细节。这份手册对于学习和理解Oracle数据库系统至关重要,无论是初学者还是经验丰富的DBA,都能从中获取到宝贵的...
学习如何创建表、索引、视图,进行数据查询、更新和删除,以及编写存储过程和函数,是数据库管理员的基本技能。 3. **安全性**:Oracle 10g提供了用户管理、权限和角色的概念,用于确保数据安全。了解如何创建和...
Oracle 存储过程是数据库管理中的一个重要组成部分,它允许开发者编写复杂的SQL和PL/SQL代码,然后在数据库中以函数或程序的形式存储和调用。在处理大量数据时,分页查询是必不可少的,它可以有效地减少网络传输的...
PL/SQL编程,用于编写存储过程、触发器等;还有数据库对象的管理,如表、索引、视图的创建和管理;以及数据库性能调优,如分析SQL执行计划、调整数据库参数、优化索引策略等。 总的来说,《Oracle 10G学习完全图解...
Oracle 10g性能优化是一个复杂而系统的过程,涉及数据库架构设计、SQL语句调优、物理存储管理、内存配置、并发控制等多个层面。通过综合运用上述策略和技术,可以有效提升Oracle 10g数据库的整体性能,满足高并发、...
3. **Java Stored Procedures**: Oracle 10g 支持在数据库中存储和执行Java代码,这称为Java Stored Procedures。这种特性使得开发者可以直接在数据库中编写和调用Java方法,减少了数据在网络中的传输,提升了性能。...
- PL/SQL是Oracle的编程语言,扩展了SQL的功能,允许编写存储过程、函数、触发器等。 - 它结合了过程化编程元素,如控制流语句(IF-THEN-ELSIF, CASE, FOR循环),变量和异常处理。 - PL/SQL块结构包括声明部分、...