`
king_tt
  • 浏览: 2234192 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Inlist的绑定优化(书摘备查)

 
阅读更多

-- 建立类型
CREATE OR REPLACE TYPE numtabletype AS TABLE OF NUMBER;

CREATE OR REPLACE TYPE vartabletype AS TABLE OF VARCHAR2 (1000);

-- 解析字符串
CREATE OR REPLACE FUNCTION str2numlist (p_string IN VARCHAR2)
RETURN numtabletype
AS
v_str LONG DEFAULT p_string || ',';
v_n NUMBER;
v_data numtabletype := numtabletype ();
BEGIN
LOOP
v_n := TO_NUMBER (INSTR (v_str, ','));
EXIT WHEN (NVL (v_n, 0) = 0);
v_data.EXTEND;
v_data (v_data.COUNT) := LTRIM (RTRIM (SUBSTR (v_str, 1, v_n - 1)));
v_str := SUBSTR (v_str, v_n + 1);
END LOOP;

RETURN v_data;
END;

CREATE OR REPLACE FUNCTION str2varlist (p_string IN VARCHAR2)
RETURN vartabletype
AS
v_str LONG DEFAULT p_string || ',';
v_n VARCHAR2 (2000);
v_data vartabletype := vartabletype ();
BEGIN
LOOP
v_n := INSTR (v_str, ',');
EXIT WHEN (NVL (v_n, 0) = 0);
v_data.EXTEND;
v_data (v_data.COUNT) := LTRIM (RTRIM (SUBSTR (v_str, 1, v_n - 1)));
v_str := SUBSTR (v_str, v_n + 1);
END LOOP;

RETURN v_data;
END;

-- 绑定查询
SELECT /*+ ordered use_nl(a,u) */
ID, NAME, nick
FROM TABLE (str2numlist (:bind0)) a, users u
WHERE u.ID = a.COLUMN_VALUE;

SELECT /*+ leading(a) */
ID, NAME, nick
FROM users u
WHERE ID IN (SELECT *
FROM TABLE (str2numlist (:bind0)) a);

SELECT /*+ index(u ind_users_id) */
ID, NAME, nick
FROM users u
WHERE ID IN (SELECT *
FROM THE (SELECT CAST (str2numlist (:bind0) AS numtabletype)
FROM DUAL)
WHERE ROWNUM < 1000);

分享到:
评论

相关推荐

    C# List绑定treeView

    在本篇文章中,我们将深入探讨如何使用C#中的List集合动态地绑定到TreeView控件上。这种方法在构建具有层级结构的应用程序时非常有用,尤其是在处理组织结构、文件系统或者任何类型的树状数据时。 ### 一、理解...

    分页控件和List绑定排序

    在本例中,分页控件与List对象绑定,意味着当用户在分页控件中操作时,会触发相应的请求,获取对应页的数据并填充到列表中。 1. **数据绑定**:这是将服务器端数据与前端界面元素关联的技术,使得数据的改变能实时...

    关于checkboxlist的绑定和遍历checkboxlist

    本文将深入探讨关于CheckBoxList的绑定和遍历的实现方法及其相关知识点。 一、CheckBoxList绑定 1. 数据源绑定: CheckBoxList的数据源可以是数组、列表、数据库查询结果等,通过DataSource属性设置数据源,然后...

    C#实现下拉框绑定list集合的方法

    本篇文章将详细介绍如何在C#中实现下拉框与list集合的绑定,以及相关的控件绑定技巧。 首先,我们需要创建一个表示数据的对象类。在这个例子中,我们创建了一个名为`Area`的类,用于存储区域ID(AreaId)和区域名称...

    数据绑定List学习

    在这个“数据绑定List学习”的主题中,我们将重点讨论如何在列表(List)中绑定图像(Image)并实现通过按钮来更换图片的功能。这个过程通常涉及到前端开发中的MVVM(Model-View-ViewModel)架构。 首先,我们需要...

    WPF TextBox绑定List列表.zip

    WPF使用TextBox绑定List多层绑定,说明在我的博客https://blog.csdn.net/chulijun3107/article/details/102010865。那块也有全部的代码。

    遍历CheckBoxList,获得选中项的值动态绑定CheckBoxList代码

    ### 遍历CheckBoxList,获得选中项的值动态绑定CheckBoxList #### 知识点一:CheckBoxList概述及应用场景 **CheckBoxList** 是ASP.NET Web Forms中一个非常有用的控件,它允许用户选择一个或多个选项。CheckBoxList...

    DevExpress.XtraGrid.GridControl绑定List笔记

    在本文中,我们将深入探讨如何将DevExpress的GridControl与List对象进行绑定,以及如何处理主从表显示的问题。 在传统的数据绑定中,GridControl常常与DataTable或DataSet一起使用,但考虑到性能和效率,开发人员...

    List数据绑定

    在标题"List数据绑定"中,重点在于如何将`List&lt;T&gt;`实例的数据绑定到Windows Forms中的`DataGridView`控件。`DataGridView`是一个强大的数据展示控件,它允许用户查看和编辑表格形式的数据。数据绑定是将应用程序的...

    C# datagridview 绑定数据后绑定标题

    在博客文章中,作者可能会深入讨论如何优化性能,比如通过延迟加载或分页来处理大量数据;如何处理数据绑定时的错误;或者如何使用模板列来显示自定义内容,如图像或按钮。此外,文章可能还会介绍如何在用户交互时...

    DataGridView点绑定List击列头排序

    标题“DataGridView点绑定List击列头排序”指的是在`DataGridView`中绑定`List&lt;T&gt;`类型的数据,并实现点击列头进行自动排序的功能。由于默认情况下,`DataGridView`仅在绑定到支持排序的数据源(如`DataTable`或SQL...

    combobox数据绑定问题

    - **性能优化**:在数据绑定过程中,需要注意性能问题,特别是当数据量较大时,可以通过设置`ComboBox`的`VirtualMode`属性为`true`,来实现虚拟模式,提高加载速度。 #### 五、实战案例分析 通过上面的代码示例,...

    针对C#报表的制作,数据的绑定

    在实际项目中,报表的制作往往需要考虑性能优化,如分页、缓存策略等。此外,为了提供良好的用户体验,可能还需要实现交互功能,如钻取、切片和切块等。 最后,我们来看"DesignReport"这个文件,这可能是一个报表...

    DevExpress简单的数据绑定

    8. **性能优化** 当处理大量数据时,可使用虚拟化技术提高性能。虚拟化允许只在需要时加载和显示数据,从而减少内存消耗和提高响应速度。 9. **自定义外观和行为** DevExpress GridControl提供了丰富的样式和模板...

    Visual C#中的数据绑定, 数据绑定根据不同组件可以分为二种

    例如,使用数据绑定可以将一个列表视图(ListView)或数据网格(DataGridView)与一个数据集(DataSet)或列表对象(List)绑定,显示多列数据并支持排序、过滤和分页功能。复杂数据绑定还可以利用数据模板...

    C# Datagridview绑定List方法代码

    当我们的数据存储在List对象中时,将这个List绑定到DataGridView是一种常见且高效的操作方式。本文将深入探讨如何使用C#实现Datagridview与List的绑定,并提供相关的代码实例。 首先,我们需要创建一个包含数据的类...

    WinForm中comboBox控件数据绑定实现方法

    创建一个List集合,然后绑定到comboBox控件上。例如: ```csharp IList&lt;string&gt; list = new List(); list.Add("111111"); list.Add("222222"); list.Add("333333"); list.Add("444444"); comboBox1.DataSource = ...

    flex数据绑定的原理

    6. **性能优化**:Flex数据绑定系统还包含了一些性能优化,比如变化传播的限制和缓存机制,以避免不必要的更新和提高效率。 7. **表达式绑定**:除了简单的变量绑定,Flex还支持复杂的表达式绑定,可以连接多个数据...

    TreeView .net 绑定 绑定方法为公共类

    5. **性能优化** - 如果数据源非常大,考虑使用虚拟化技术,这能显著提高`TreeView`的性能,特别是滚动时。 6. **自定义节点外观** - 通过`TreeViewItem`的样式和模板,你可以自定义每个节点的外观,包括图标、...

    包含编辑器,右击菜单,syslist绑定数据,systoolbar等等控件,

    标题提到的"包含编辑器,右击菜单,syslist绑定数据,systoolbar等等控件"涉及了几个关键的UI组件和功能,让我们逐一深入探讨。 1. **编辑器**:在软件开发中,编辑器通常指的是文本编辑器或者代码编辑器,它允许用户...

Global site tag (gtag.js) - Google Analytics