create or replace function F_TEST( p_type in number, p_startdate in varchar2, p_enddate in varchar2)
--type类型table_test
return table_test
pipelined is
pragma autonomous_transaction;--自动事物
--type类型row
v_row_test row_test;
type generic_cr is ref cursor;
cr_sqlcur generic_cr;--cursor类型
v_sql varchar2(4096);
--声明参数
v_orgcode varchar2(32);
v_orgname varchar2(128);
--根据不同类型,组合需要的sql
if p_type = 1 then
v_sql:='select * from table1 where
h.startdate > to_date('''||p_startdate||''',''yyyy-mm-dd'')-1
and h.enddate < to_date('''||p_enddate||''',''yyyy-mm-dd'')+1';
end if;
if p_type = 2 then
v_sql:='select * from table2 where
h.startdate > to_date('''||p_startdate||''',''yyyy-mm-dd'')-1
and h.enddate < to_date('''||p_enddate||''',''yyyy-mm-dd'')+1';
end if;
--新建一个表,两个字段,将sql插入到表中,方便查看sql
insert into test (msn) values (v_sql);
commit;
--打开循环--open loop fetch into
open cr_sqlcur for v_sql;
loop
fetch cr_sqlcur
into
v_orgcode,
v_orgname;
exit when cr_sqlcur%notfound;
--type row 整合输出的字段
v_row_test := row_test( v_orgcode,v_orgname);
-- 管道输出
pipe row(v_row_test);
end loop;--循环结束
close cr_sqlcur;
commit;
return;
end F_TEST;
--open loop fetch into
将值插入到自定义字段中--然后用管道输出
分享到:
相关推荐
二、PL-SQL函数和过程 1. **内置函数**:Oracle提供了一系列内置函数,如数学函数、字符串函数、日期时间函数等,方便进行数据处理。 2. **自定义函数**:用户可以创建自己的函数,接收参数,执行特定逻辑,并返回...
9. **控制结构**:PL-SQL具备流程控制语句,如IF...THEN...ELSIF...ELSE、CASE语句、循环(FOR、WHILE)等,使得在数据库中实现复杂逻辑成为可能。 通过阅读"PL-SQL.pdf"文档,你将深入理解这些概念,并学习如何...
10. DDL和DML操作:PL/SQL可以直接在代码中执行创建表、删除表、修改表结构等DDL(Data Definition Language)和插入、更新、删除等DML(Data Manipulation Language)操作。 在"PL-SQL案例.rar"中,可能涵盖了以上...
《PL-SQL操作手册》是一本专为数据库系统管理员和应用系统设计师编写的深度学习PL/SQL语言的著作。PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库系统支持的一种混合了SQL与过程化编程...
PL/SQL是一种过程化语言,支持条件判断、循环等结构化的编程控制流。这种特性使得开发者能够编写更加复杂和灵活的程序逻辑,提高了代码的复用性和可维护性。 ##### 1.2.4 模块化 PL/SQL支持将代码组织成块结构、...
5. **SQL嵌入**:PL/SQL可以直接在程序中嵌入SQL语句,执行数据查询、插入、更新和删除等操作。这些SQL语句可以返回结果集,供PL/SQL处理。 6. **游标**:游标是处理单行结果集的一种机制,允许PL/SQL逐行访问和...
- **定义**:PL/SQL(Procedure Language for SQL)是Oracle数据库的一种专有编程语言,它结合了SQL的强大数据处理能力和传统编程语言的过程化特性。自Oracle 6版本开始,PL/SQL作为数据库的标准组件被广泛应用于...
8. **存储过程与函数**:存储过程和函数是PL/SQL中预编译的代码单元,可以封装一系列操作并多次调用。存储过程不返回值,而函数则返回一个值。它们可以提高代码重用性和数据库性能。 9. **触发器**:触发器是一种...
PL/SQL是Oracle数据库系统中的过程化语言,它结合了SQL查询和编程的特性,使得开发者可以编写复杂的数据库应用程序。在“pl-sql.zip_vectors”这个压缩包中,重点涉及的是PL/SQL基础过程、向量操作以及触发器的使用...
综上所述,《BBSC PL-SQL 编程规范》为开发人员提供了一套全面的指南,旨在通过标准化的命名、格式化、注释以及数据类型的选择等方式,提高代码的可读性、可维护性和整体质量。这对于构建高质量、易于维护的企业级...
Oracle PL/SQL编程手册是数据库管理员和开发人员的重要...以上只是Oracle PL/SQL编程中的一部分核心概念,实际手册会详细介绍每个主题的语法、使用示例和最佳实践,帮助开发者更好地理解和利用Oracle数据库进行编程。
你可以直接在PL/SQL块中嵌入SQL,执行DML(插入、更新、删除)和DDL(创建、修改、删除)操作。例如,INSERT INTO语句用于向表中插入新记录,UPDATE用于修改已有记录,DELETE用于删除记录,而CREATE TABLE则用于创建...
PL/SQL 是 Oracle 数据库中的一种编程语言,它是 SQL 的过程化扩展,结合了结构化查询语言的功能和过程性编程语言的特点。PL/SQL 的设计目的是为了更高效、安全地操作数据库,同时提供更复杂的逻辑控制和数据处理...
包是用来组织PL/SQL对象(如过程、函数、类型等)的一种方式。包可以分为两部分:包规范(Package Specification)和包体(Package Body)。 ##### 语法: **包规范**: ```sql CREATE [OR REPLACE] PACKAGE pkg_...
这需要我们编写一个PL/SQL过程或函数,该过程会遍历graduate数据表中的每一行,比较考生的单科成绩和总分与预设的最低分数线,然后在result数据表中更新相应的状态标志。 2. **数据表设计**: - **graduate数据表*...
PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种过程化语言,专为数据库操作设计。这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册...
游标是PL/SQL中用于处理记录集的一种机制,可以实现对查询结果的逐行访问或批量处理。游标分为隐式游标和显式游标两种,其中显式游标需要显式打开、关闭并进行操作。 **4、游标FOR循环** 游标FOR循环是一种特殊的...
PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库的一种扩展,它将SQL与过程式编程语言相结合,提供了更强大的数据库操作能力。本文将深入介绍PL/SQL的基础知识,帮助初学者快速入门。 ...