`
izuoyan
  • 浏览: 9205782 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用with解决传入入参可变的问题

阅读更多
使用with解决传入入参可变的问题
多入参问题在选择入参时,入参数量可变,一般是通过动态SQL拼写where语句实现,这种方式即不安全,可读性又差,我们可以借助Oracle 的with语句和table函数来实现可变入参的功能。
-- Created on 2008-03-19 by ADMINISTRATOR
declare
-- Local variables here
i integer;
v_tab insu_table;
begin
select
'31' bulk collect into v_tab from dual;
p1(v_tab);

end;
create or replace type insu_table is table of varchar2(3);
CREATE OR REPLACE PROCEDURE p1(p_tab insu_table) IS
v_a VARCHAR2(
20);
BEGIN
WITH data AS(
SELECT *
FROM TABLE(p_tab))

SELECT aab001
INTO v_a
FROM ab15
WHERE aae140 IN (SELECT * FROM data)
AND rownum =
1;

END;
通过with语句,将险种虚拟为数据集,在select中作为表访问即可。
分享到:
评论

相关推荐

    Functional Programming with JavaScript_javascript_

    5. **不可变数据**:在JavaScript中,使用`Object.freeze()`和Immutable.js库可以帮助实现数据的不可变性,防止意外修改数据,提高代码可预测性和可测试性。 6. **惰性求值(Lazy Evaluation)**:仅在需要时才计算...

    《你必须知道的495个C语言问题》

    《你必须知道的495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...

    iphone开发实例 04-Variadic Arguments

    在iOS开发中,Variadic Arguments(可变参数)是一种允许函数接受不同数量参数的技术。它在C、C++和Objective-C等语言中被广泛使用,包括iPhone应用开发。本实例将深入探讨如何在Objective-C中使用Variadic ...

    Python 学习笔记(下) - 草莓君的妙妙屋1

    - 可变长度参数:允许传入任意数量的参数,如`*args`接收元组,`**kwargs`接收字典。 3. 默认值参数注意事项: - 默认值参数必须位于形参列表的最右侧。 - 如果默认值是可变对象(如列表、字典),那么默认值在...

    你必须知道的495个C语言问题

    这样看来,所有的问题都解决了,是吗? 1.4 新的64位机上的64位类型是什么样的? 指针声明 1.5 这样的声明有什么问题?char*p1,p2;我在使用p2的时候报错了。 1.6 我想声明一个指针,并为它分配一些空间,但却...

    findbugs报告问题含义

    30. **EI_EXPOSE_STATIC_REP2**:将可变对象保存在静态字段中可能暴露内部静态状态,增加安全性风险。尽量避免在静态字段中存储可变对象。 31. **DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY**:对匿名数组执行 `...

    python bug清除手册-代码书写规范与基本使用.pdf

    tup.remove(2) # 元组不可变,没有remove方法 ``` 解决方法:确保使用正确的方法调用来操作数据结构。 **3.10 SystemExit** `SystemExit`异常通常发生在程序主动请求退出时,例如通过调用`sys.exit()`函数。例如...

    ICP with PCL

    国际标准组织(International Commission on Illumination,简称ICP)提出的一种算法就是为了解决这个问题,而PCL(Point Cloud Library)则是一个强大的开源库,提供了实现ICP算法和其他点云处理功能的工具。...

    Java 基础(3-8) - 图谱 & Q-A.pdf

    不可变对象意味着一旦创建,其状态不能改变,创建不可变对象通常使用私有构造函数和final字段。包含可变对象的不可变对象需要谨慎处理,因为可变内部对象可能破坏不可变性。 `equals()`和`hashCode()`通常一起重写...

    Secrets of the JavaScript Ninja (Manning MEAP 2009).pdf 电子书

    - **匿名函数与递归**:探讨了匿名函数的应用场景,以及如何使用递归来解决问题。 - **函数作为对象**:介绍了函数可以作为变量存储和传递的特性。 - **存储函数**:讨论了如何将函数保存为变量或对象属性的方法。 -...

    hacking with React

    ### React入门精要 #### 欢迎学习React! 本书旨在为初学者提供一个全面而深入的React入门指南。...随着实践的深入,你将能够更加熟练地运用这些技术来解决实际问题,并创建出既美观又实用的Web应用。

    向python脚本传递参数(例子)

    1. **sys.argv[] 的使用**:`sys.argv`是一个包含命令行参数的列表,其中`sys.argv[0]`是脚本名,之后的元素是传入的参数。例如,如果我们有以下命令行: ``` python script.py arg1 arg2 arg3 ``` 那么`sys....

    VB创建多线程应用程序[收集].pdf

    在VB中创建线程需要使用CreateThread函数,该函数需要传入多个参数,如线程属性、堆栈大小、函数入口地址、参数等。该函数将返回一个线程句柄,可以用于控制线程的运行。 API函数 以下是VB创建多线程应用程序中...

    delphi通用函数单元一

    {* 返回将指定字符s1用字符串s2替换后的字符串,可支持大小写敏感由CaseSensitive操作} {example: replace('We know what we want','we','I',false) = 'I Know what I want'} function Replicate(pcChar:Char; ...

    ProgrammingWithObjectiveC

    ### 关于Objective-C ...使用弱引用可以帮助解决这一问题。 #### Use Strong and Weak Declarations to Manage 使用强引用和弱引用来管理对象之间的关系。这有助于避免内存泄漏并确保对象的生命周期得到适当处理。

    Python 中的*args 和**kwargs

    首先,`*args` 代表一个可变数量的位置参数列表,它会把传入的所有非关键字参数收集到一个元组(tuple)中。这意味着你可以传入任意数量的非关键字参数给函数,这些参数将按顺序被收集到 `args` 元组里。例如: ```...

    D3D编程技巧

    为了诊断和解决问题,开发者应该仔细检查错误代码,并尝试重现问题。有时候,通过调整资源管理和优化代码逻辑可以解决这些问题。 #### 启用Direct3D调试信息 (Enabling Direct3D Debug Information) 启用Direct3D...

    JS中实现replaceAll的方法(实例代码)

    这就是为什么在replace()方法中加入全局标志“g”变得非常重要,如示例所示,使用正则表达式/\-/g可以替换掉所有的"-"字符。这个“g”标志告诉替换方法,要查找所有匹配项并替换之,而不是仅替换第一个找到的匹配项...

    JavaPD-Ch07mao字符串及其应用1

    7. **`StringBuffer`类**:`StringBuffer`是可变的字符串容器,适合在多线程环境中进行字符串拼接,避免了频繁创建新字符串导致的性能问题。 8. **`StringTokenizer`类**:用于将字符串按照指定分隔符拆分成多个...

Global site tag (gtag.js) - Google Analytics