oracle中PLSQL存储过程中如何使用逗号分隔的集合(逗号分隔字符串转换为一个集合)

原文:

https://blogs.oracle.com/aramamoo/entry/how_to_split_comma_separated_string_and_pass_to_in_clause_of_select_statement

‘SMITH,ALLEN,WARD,JONES‘  为4个值的集合,在存储过程中需要怎么处理才能实现 in (值1,值2,值3,值4 ) 的效果;

下面的方法值得借鉴:下面的方式将一个逗号表达式变成一列的4行的集合来实现。

select regexp_substr(‘SMITH,ALLEN,WARD,JONES‘,‘[^,]+‘, 1, level) from dual
connect by regexp_substr(‘SMITH,ALLEN,WARD,JONES‘, ‘[^,]+‘, 1, level) is not null

原文地址:https://www.cnblogs.com/telwanggs/p/8995230.html

时间: 2024-11-06 17:39:51

oracle中PLSQL存储过程中如何使用逗号分隔的集合(逗号分隔字符串转换为一个集合)的相关文章

Sql server中根据存储过程中的部分信息查找存储过程名称的方法【视图和Function】

1.查询的语句: select a.id,b.name,a.*,b.* from syscomments a join sysobjects b on a.id=b.id where b.xtype='P' and a.text like '%usp_cm%' b.xtype='P'指定在什么类型的范围进行搜索 '%usp_cm%'就是你能记得的存储过程中的内容. 2.查找类型: select distinct xtype from sysobjects 找到数据库中所有的对象类型 P是存储过程

Sql Server 中将由逗号“,”分割的一个字符串转换为一个表集,并应用到 in 条件中

Sql Server 中将由逗号","分割的一个字符串,转换为一个表,并应用与 in 条件 select * from tablenmae where id in(1,2,3) 这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql语句 string aa="1,2,3"; string sqltxt="select * from tablename where id in ("+aa+")

NHibernate之旅(16):探索NHibernate中使用存储过程(中)

本节内容 引入 实例分析 2.创建对象 3.更新对象 结语 引入 上一篇,怎么使用MyGeneration提供的模板创建存储过程和删除对象存储过程的使用,这篇接下来介绍在NHibernate中如何使用存储过程创建对象.更新对象整个详细过程,这些全是在实际运用中积累的经验,涉及使用的错误信息,如何修改存储过程,并且比较没有使用存储过程的不同点,并非官方比较权威的资料,所以敬请参考,这篇继续,如果你还没有来及看上一篇,那赶紧去看看吧. 实例分析 2.创建对象 Step1:为了比较,我们先执行Crea

SQLServer 中的存储过程中判断临时表是否存在,存在则删除临时表

IF OBJECT_ID('TEMPDB..#BCROSSREFERENCE ') IS NOT NULL DROP TABLE #BCROSSREFERENCE IF OBJECT_ID('TEMPDB..#SCVTMP_BCUSTOMER') IS NOT NULL DROP TABLE #SCVTMP_BCUSTOMER IF OBJECT_ID('TEMPDB..#PDS_CREATE_SCV_TEMP') IS NOT NULL DROP TABLE #PDS_CREATE_SCV_T

JS中获取数据库中的值

在本次项目中,遇到很多问题,经过努力,都逐步得到解决.静下心来,做一个记录,以供以后学习. 在项目中遇到一个问题,需要在JS中读取数据库中的值,然后再把值返回到页面中,解决方案如下:使用Ajax方法来实现,需要用到ajax.dll(一个ajax技术开发的帮助类库). 实施过程如下: 1.引用Ajax.dll 2.在App_Code写具体的方法,最好单独建立一个类文件,然后写具体方法. public class AjaxMethod www.2cto.com { public AjaxMethod

oracle中plsql的使用

1.plsql: //数据库中使用的编程语言 PL/SQL(Procedure Language/SQL)是 Oracle 对 sql 语言的过程化扩展, 指在 SQL 命令语言中增加了过程处理语句(如分支.循环等),使 SQL 语言具有过程处理能力. 语法格式: [declare --声明变量 ] begin --代码逻辑 [exception --异常处理 ] end; 2.变量: 变量的声明: 变量名 类型(长度); 也可采用下面两种方式定义变量属性 1)引用型 //引用某表某列的字段类型

用sql语句导出oracle中的存储过程和函数

用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' replace SELECT CASE WHEN LINE = 1 THEN 'CREATE OR REPLACE ' || TEXT WHEN LINE = MAX_LINE THEN TEXT || CHR(10 ) || '/' ELSE TEXT END FROM USER_SOURCE A LEF

在oracle存储过程中创建临时表

在oracle的存储过程中,不能直接使用DDL语句,比如create.alter.drop.truncate等. 那如果我们想在存储过程中建立一张临时表就只能使用动态sql语句了: create or replace procedure pro as str_sql varchar2(100); begin -- 创建临时表 str_sql := 'create global temporary table temp_table ( col1 varchar2(10), col2 number

Oracle 中PLSQL的ftp应用

CREATE OR REPLACE PACKAGE BODY ftp AS -- -------------------------------------------------------------------------- -- Name : http://www.oracle-base.com/dba/miscellaneous/ftp.pkb -- Author : Tim Hall -- Description : Basic FTP API. For usage notes se