Orace 存储过程 参数 IN 应用

文章展示了如何使用JS生成SQL语句以及在Oracle数据库中创建一个自定义函数来分割字符串。uf_GetSqlCode函数用于拼接数据集到SQL语句,而GYSK_STRSPLIT函数是Oracle中的管道函数,用于按指定字符分割字符串。这两个功能在数据处理和查询中非常实用。
摘要由CSDN通过智能技术生成

JS代码

//拼接Sql语句 dsSub数据集,fileName 统计字段,dataType 字段类型 : 字符N,数字N
function uf_GetSqlCode(dataSet,fileName,dataType){
	var strSql = "";
	if(dataSet.recordCount == 0){
		return "";
	}else{
		try{
			for(var i = 0; i < dataSet.recordCount; i++){
				strSql += dataSet.getValueAt(i,fileName) + ",";  
			}
			return strSql;
		}catch(e){
			alert("生成Sql失败:" + e.message);
			return "";
		}
	}
}

Oracle 字符分割自定义函数

CREATE OR REPLACE TYPE GYSK_STRSPLIT_TYPE IS TABLE OF VARCHAR2 (4000);

CREATE OR REPLACE FUNCTION GYSK_STRSPLIT(
    P_VALUE VARCHAR2,              --字符串
    P_SPLIT VARCHAR2 := ','        --分割字符      
)
RETURN GYSK_STRSPLIT_TYPE
PIPELINED IS
    V_IDX INTEGER;
    V_STR VARCHAR2(1000);
    V_STRS_LAST VARCHAR2(4000) := P_VALUE;
BEGIN
    LOOP
        V_IDX := INSTR(V_STRS_LAST,P_SPLIT);
        EXIT WHEN V_IDX = 0;
        V_STR := SUBSTR(V_STRS_LAST,1,V_IDX - 1);
        V_STRS_LAST := SUBSTR(V_STRS_LAST,V_IDX + 1);
        PIPE ROW(V_STR);
    END LOOP;
    PIPE ROW(V_STRS_LAST);
    RETURN;
END GYSK_STRSPLIT;

应用

SELECT A.* 
FROM GOODSDOC A 
WHERE EXISTS(
              SELECT 1
              FROM (
                    SELECT COLUMN_VALUE AS GOODSID 
                    FROM TABLE(GYSK_STRSPLIT('SPH00009316,SPH00009354'))
                   ) M1
              WHERE A.GOODSID = M1.GOODSID
             )
;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值