`

pl-sql中函数循环插入值方式一

    博客分类:
  • SQL
阅读更多
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(由DBA8[1].CN提供,DBA吧,DBA的出没之地) word格式

    第二章 基本的SQL SELECT语句 1 第三章 限制行和对数据...第十五章 PL/SQL简介 29  基本结构 30  声明部分 30  可执行部分 31  执行控制 31  循环语句 32 第十六章 游标和异常 34  游标 34  异常处理 36

    Oracle PL/SQL语言初级教程

    3.PL/SQL单行函数和组函数详解 29 单行字符串函数 30 单行转换函数 37 SQL中的组函数 40 嵌套函数 42 4.Oracle数据库数据对象分析(上) 42 删除表和更改表名 46 管理视图 47 5.Oracle数据库数据对象分析(中) 49 ...

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    PL/SQL Developer8.04官网程序_keygen_汉化

    在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明,比如声明一个number类型的变量v_id,那其形式应为: v_id number; 如果给上面的v_id变量赋值,不能用“=”,应该用“:=”,即形式为: v_id :=5; ...

    精通SQL--结构化查询语言详解

    15.3 sql server中的存储过程和函数 308 15.3.1 系统存储过程 308 15.3.2 使用create procedure创建存储过程 309 15.3.3 使用execute语句调用存储过程 310 15.3.4 使用create function创建函数 312 15.3.5 使用...

    SQL21日自学通

    一个简单的PL/SQL 语句块395 又一个程序398 存储过程包和触发机制403 总结406 问与答407 校练场407 练习407 第19 天TRANSACT-SQL 简介408 目标408 TRANSACT-SQL 概貌408 对ANSI SQL 的扩展408 谁需要使用TRANSACT-...

    精通Oracle.10g.PLSQL编程

    SQL函数 5.1 数字函数 5.2 字符函数 5.3 日期时间函数 5.4 转换函数 5.5 集合函数 5.6 其他单行函数 5.7 分组函数 5.8 对象函数 5.9 习题第 6章 访问Oracle 6.1 检索...

    精通SQL 结构化查询语言详解

    15.3 SQL Server中的存储过程和函数  15.3.1 系统存储过程  15.3.2 使用CREATE PROCEDURE创建存储过程 15.3.3 使用EXECUTE语句调用存储过程  15.3.4 使用CREATE FUNCTION创建函数  15.3.5 使用Enterprise ...

    精髓Oralcle讲课笔记

    -- (函数max() 求出emp表中sal字段的最大值) 46、select min(sal) from emp; -- (函数max() 求出emp表中sal字段的最小值) 47、select avg(sal) from emp; --(avg()求平均薪水); 48、select to_char(avg(sal),...

    SQL培训第一期

    存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 1.9.2 准备 create table t_user ( username varchar2(20), ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    10.2.5 将子查询因子化应用到PL/SQL中 270 10.3 递归子查询 273 10.3.1 一个CONNECT BY的例子 274 10.3.2 使用RSF的例子 275 10.3.3 RSF的限制条件 276 10.3.4 与CONNECT BY的不同点 276 10.4 复制CONNECT BY...

    PLSQLDeveloper下载

    在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明,比如声明一个number类型的变量v_id,那其形式应为: v_id number; 如果给上面的v_id变量赋值,不能用“=”,应该用“:=”,即形式为: v_id :=5; ...

    Oracle数据库存储过程技术文档.doc

    2.1.2 一个简单的PL/SQL块 10 2.1.3 PL/SQL流程控制 13 2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中FOR循环的使用 20 2.2.4 带参数游标的使用方法 20 2.3 动态SQL语句 21 2.4 例外...

    PLSQL基础教程

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/...

    PLSQL程序设计

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...

    oracle学习资料

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...

    plsql_oracle 编程

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...

    plsql_oracle 8i 编程讲义

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...

    Oracle课件.pdf

    3. PL/SQL Developer工具 4. Oracle用户和权限 4.1用户和权限 4.2角色 第2章 SQL数据操作和查询 1. SQL简介 2. 查询 2.1查询结构 2.2查询顺序 . 2.3聚合函数 . 3. 创建表和约束 3.1 Oracle常用数据类型 ...

Global site tag (gtag.js) - Google Analytics