`
k11hao
  • 浏览: 29423 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle存储过程返回游标,查询语句通过动态SQL拼接的方式;

阅读更多

1,首先创建自定义包,其中包含游标变量的声明

CREATE OR REPLACE package POLICE.pkg_package

as

    type type_cursor is ref cursor;

end;

2存储过程的使用

CREATE OR REPLACE procedure POLICE.DangXmList(lx in varchar2,begin1 date,end1 date,num varchar2,type1 varchar2,name1 varchar2, cur_arg out pkg_package.type_cursor )

is

 mysql varchar2(1000);

begin

mysql:='select distinct * from v_p_dang_all where 1=1 ';

if lx<>'' then

  mysql:=mysql || 'and ALLKIND=''' || lx ||'''';

  end if;

if begin1<>'' then

  mysql:=mysql || 'and INSERT_TIME=''' || begin1 ||'''';

  end if;

if begin1<>'' then

  mysql:=mysql || 'and INSERT_TIME=''' || end1 ||'''' ;

end if;

if type1='xm' then

    mysql:=mysql || 'and xm=''' || name1 ||'''' ;

    else

    mysql:=mysql || 'and id_code=''' || name1 ||'''' ;

    end if;

  open cur_arg for mysql ;

end;

分享到:
评论

相关推荐

    静态、动态sql及各种游标

    动态SQL则是指利用EXECUTE IMMEDIATE语句执行的SQL语句,这种方式可以在运行时动态生成SQL语句的内容。 一、静态SQL 静态SQL是指在PL/SQL中直接运行的SQL语句,例如SELECT、INSERT、UPDATE、DELETE等语句。这种...

    .Net Oracle一次请求执行多条sql语句 Oracle批处理 使用游标一次执行多条Sql语句

    在.net 中查询Sql Server 一次请求执行多条sql语句很简单 拼接起来就好了 初次接触oracle 在网上寻找了很多方法终于被我解决了 我把问题想复杂了 例子中提供了2种解决方案 一种是用游标 还有一种就是很简单的...

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    标题中的“jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标”涉及到三个主要的Java数据库编程知识点:JDBC连接、Oracle数据库中的CLOB类型处理以及通过Java调用存储过程处理输出游标。 1. JDBC...

    oracle动态SQL

    本文将详细探讨Oracle动态SQL的多种使用方法,包括执行动态函数、执行动态过程以及返回游标参数等。 #### 二、执行动态函数 在Oracle中,动态函数可以通过`EXECUTE IMMEDIATE`语句来调用。下面是一个具体的例子: ...

    带排序的oracle分页存储过程

    - 需要注意的是,在构造SQL语句时动态拼接字符串可能存在SQL注入的风险,应确保输入参数的安全性。 - 此外,对于分页查询,Oracle提供了更高效的ROWNUM和ROWNUM伪列,可以考虑结合使用这些特性来进一步优化性能。 #...

    ORACLE存储过程性能优化技巧

    Oracle存储过程是数据库管理系统中的一种重要工具,用于封装一系列的SQL和PL/SQL语句,以执行特定的任务。性能优化是数据库管理的核心任务之一,尤其是对于处理大量数据的企业级应用,存储过程的优化能显著提升系统...

    精通sql结构化查询语句

    以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...

    Oracle PlSql存储过程

    - **本地动态SQL**:通过`EXECUTE IMMEDIATE`语句执行动态构建的SQL,适用于运行时SQL语句不确定的情况,如动态拼接表名或条件。 Oracle PL/SQL存储过程的强大之处还在于它可以与其他PL/SQL特性结合,如游标、异常...

    ORACLE存储过程分页

    该存储过程首先构建一个复合的SQL语句,通过使用`ROWNUM`函数和子查询来限制返回的结果行数,实现分页效果。具体步骤如下: 1. **初始化SQL字符串**:定义一个变量`SQL_STR`,并设置初始SQL语句为选择所有字段,...

    oracle存储过程学习经典语法+实例+调用.doc

    1. **本地动态SQL**:使用`EXECUTE IMMEDIATE`语句执行动态构建的SQL,这种方式适用于简单的SQL改变,如拼接条件等。 总的来说,Oracle存储过程是数据库管理和开发中不可或缺的工具,熟练掌握其语法和使用技巧能极...

    Oracle_PLSQL_存储过程

    在存储过程中执行动态查询可以通过以下方式实现: 1. **本地动态SQL:** - 使用字符串拼接的方式来构建SQL语句。 2. **使用DBMS_SQL包:** - 提供了一系列用于执行动态SQL的函数。 **示例:** ```sql DECLARE ...

    oracle存储过程

    总结来说,Oracle存储过程提供了一种强大的方式来组织和执行数据库操作,它们可以处理复杂的逻辑,包括动态SQL和条件判断,同时还能通过参数传递数据,实现多条件查询。理解并熟练掌握存储过程的编写和使用,对于...

    SQL存储过程(含ASP案例)

    通过存储过程,开发者可以封装复杂的查询逻辑,避免在应用程序中频繁地进行SQL拼接,提高代码的可读性和安全性。 此资源包包含7个文档,很可能是针对SQL存储过程的不同方面进行了详细的阐述和案例分析,可能涵盖...

    Oracle表字段更新存储过程效率优化思路

    在Oracle数据库管理中,存储过程是预编译的SQL语句集合,用于执行特定的数据库操作,例如数据处理、业务逻辑等。优化存储过程对于提升系统性能至关重要,尤其是在大规模数据处理场景下。本文将深入探讨Oracle表字段...

    oracle交叉表sql

    通过上述步骤,我们可以在Oracle数据库中通过存储过程实现动态构建交叉表的功能。这种方法虽然比较复杂,但在实际应用中非常灵活,可以根据不同的需求动态调整查询逻辑。此外,还可以结合其他高级功能(如条件判断、...

    oracle存储过程入门必备

    `test_xg_p6`展示了一个使用游标`cursor1`从`hotel`表中获取满足条件的所有记录,并将它们拼接成一个字符串返回的存储过程。 ```sql CREATE OR REPLACE PROCEDURE test_xg_p6(x_out OUT VARCHAR2) IS temp_result ...

    Oracle实现动态SQL的拼装要领

    Oracle数据库在处理动态SQL时,提供了灵活的方法来适应各种复杂查询需求。动态SQL的拼装是数据库编程中不可或缺的一部分,特别是在需要根据运行时条件构建SQL语句时。以下是对Oracle实现动态SQL拼装要领的详细说明:...

    在Oracle PL/SQL中游标声明中表名动态变化的方法

    在上面的例子中,使用变量 v_tablename 来存储表名,然后使用字符串拼接的方法将表名拼接到 SQL 语句中。 2. 使用 REF CURSOR REF CURSOR 是一种可以动态变化的游标类型,可以在运行时指定游标的表名。例如: ```...

    Oracle,SQl,MySql实现分页查询

    本文将基于提供的文件信息,深入探讨三种不同的分页查询方法及其在Oracle、SQL Server(这里用SQL代替)、MySQL中的实现方式,并对它们的性能进行对比分析。 #### 分页方案一:利用Not In和SELECT TOP分页 **基本...

    oracle PL/SQL测试题目和详细答案

    以上知识点涵盖了Oracle PL/SQL的基础知识,包括存储过程、函数、触发器、数据类型、动态SQL、索引类型、约束等关键概念及其应用方法。通过理解和掌握这些知识点,可以帮助开发者更好地进行数据库设计和开发工作。

Global site tag (gtag.js) - Google Analytics