动态查询,动态生成cursor或者动态执行SQL的DML操作

定义PROCEDURE P1 ( P_Asset_Type IN varchar2,P_Asset_SubType IN varchar2,P_OrderIds IN varchar2)。

需要根据传入参数动态查询,动态生成cursor或者动态执行SQL的DML操作。

1.简单的查询

SELECT   ABC from TableA where ORDER_ID IN ( P_OrderIds) ;

2. 动态生成cursor

定义游标和变量:

type   v_cursor   is   ref   cursor;  
C1 v_cursor;    v_command varchar2(2000);

v_command := ''SELECT    ABC from TableA  where ORDER_ID IN ( '' ||P_OrderIds|| '' ) '';

OPEN C1 for v_command;

3.动态DML操作

 v_command2 := ''UPDATE TableA  
               SET ASSET_TYPE_CD = ''''''||P_Asset_Type||'''''',''
                ||''ASSET_SUBTYPE_CD = ''''''||P_Asset_SubType||''''''''
                ||''WHERE ORDER_ID IN ( ''||P_OrderIds||'' ) '';

execute immediate v_command2;(动态sql)

 

时间: 2024-08-24 11:20:13

动态查询,动态生成cursor或者动态执行SQL的DML操作的相关文章

不能用SQL语句-如何用JPA动态查询查询复杂数据

问题描述 如何用JPA动态查询查询复杂数据 我想问的就是怎么用JPA动态查询查询复杂数据 如SELECT IFNULL(sum(i.INVENTORY_AMOUNT)0) FROM INVENTORY i WHERE i.VEN_ID = ?1 and i.ITEM_MYID = ?2 and i.DID is null. 解决方案 http://leobluewing.iteye.com/blog/1969621 解决方案二: 数据查询(3)-复杂查询jpa动态查询杂记JPA中的动态查询与指定

用非动态SQL Server SQL语句来对动态查询进行执行

此文章主要向大家讲述的是非动态SQL ServerSQL语句执行动态查询,在实际操作中我尝试在一个存储过程中,来进行传递一系列以逗号划定界限的值,来对结果集进行限制.但是无论什么时候,我在IN子句中使用变量,都会得到错误信息. 是否存在一种不执行动态SQL语句也能完成查询的方式呢? 我尝试在一个存储过程中传递一系列以逗号划定界限的值,以限制结果集.但是无论什么时候,我在IN子句中使用变量,都会得到错误信息.是否存在一种不执行动态SQL ServerSQL语句也能完成查询的方式呢? 专家解答: 这

如何将数据库的查询结果生成只存在于内存的动态XML文件

问题描述 我将做一个系统,数据保存在SQLServer数据库里,但传输数据时是用XML文件的.为了安全性和减小系统负荷,需要将查询结果生成一个存在于内存的XML文件,而不需要经过硬盘文件系统.还有,如何访问这个在内存中的XML文件?

在Activiti中集成JPA(解决动态表单生成的大量数据)

1. 为何集成JPA 在<比较Activiti中三种不同的表单及其应用>一文中介绍了不同表单的特点以及表现形式,相信这是每个初学者都会面临表单类型的选择. 如果选择了使用动态表单那么将面临一个比较"严峻"的问题--大数据量,我们知道动态表单的内容都保存在一张表中(ACT_HI_DETAIL),我们也清楚动态表单中每一个Field都会在该表中插入一条记录,假如一个流程共有20个字段,这个数据量大家可以计算一下,每天多少个流程实例,每个月.每年多少? 日积月累的大数据会影响系统

LINQ to SQL语句(23)之动态查询

动态查询 有这样一个场景:应用程序可能会提供一个用户界面,用 户可以使用该用户界面指定一个或多个谓词来筛选数据.这种情况在编译时不知 道查询的细节,动态查询将十分有用. 在LINQ中,Lambda表达式是许多 标准查询运算符的基础,编译器创建lambda表达式以捕获基础查询方法(例如 Where.Select.Order By.Take While 以及其他方法)中定义的计算.表达式 目录树用于针对数据源的结构化查询,这些数据源实现IQueryable<T>. 例如,LINQ to SQL 提

LINQ体验(17)——LINQ to SQL语句之动态查询

高级特性 本文介绍LINQ的高级特性,其包括大家都关心的动态查询的用法 ,另外简单提下ID标识这个知识. 动态查询 有这样一个场景:应用程 序可能会提供一个用户界面,用户可以使用该用户界面指定一个或多个谓词来筛 选数据.这种情况在编译时不知道查询的细节,动态查询将十分有用. 在LINQ中,Lambda表达式是许多标准查询运算符的基础,编译器创建lambda表达 式以捕获基础查询方法(例如 Where.Select.Order By.Take While 以及其 他方法)中定义的计算.表达式目录树

如何在oracle存储过程中进行简单动态查询

在存储过程中做简单动态查询代码 ,例如: CREATE OR REPLACE procedure ZXM_SB_GZ_GET (p_table in varchar2, p_name in varchar2, p_value in varchar2, outpara out lntxdba.zxm_pag_cs_power.c_type ) as begin declare wherevalue varchar2(200): begin wherevalue:=select * from ||p

Linq To Sql进阶系列(七)动态查询续及CLR与SQL在某些细节上的差别

在上面一篇文章Linq To Sql进阶系列(六)中,我们提到了使用object的动态查询.本文在上文的 基础上,再做更加深入的引申.同时修正上文中一些不妥的地方. 1, object的动态查询续 首先要做的事情,就是将Find的函数改成扩展方法.扩展方法只能放在静态类里,而且它的第一个参 数必须带this关键字.在上文中,作者留下了一个迷题.当需要or条件时,又该如何做呢?本文也将这 个问题给出回答.但是对于动态Like的条件,笔者依然还没有找到一个较好的方法.为了增加or条件, 函数的声明也

Linq To Sql进阶系列(六)用object的动态查询与保存log篇

动态的生成sql语句,根据不同的条件构造不同的where字句,是拼接sql 字符串的好处.而Linq的推 出,是为了弥补编程中的 Data != Object 的问题.我们又该如何实现用object的动态查询呢? 1,用object的查询是什么? 我们可以简单的举这么一个例子.我们到公安局查找一个人.首先,我们会给出他的一些特征,比如 ,身高多少,年龄多少,性别,民族等.那么,我们把这个人的一些特征输入电脑.我们希望,电脑能 给我们返回这个人的信息.而实际上,有相同特征的人太多了,常常返回一个集