TABLE

CREATE OR REPLACE FUNCTION SP_SPITSTR(P_STR IN VARCHAR2,P_DELIMITER IN VARCHAR2)RETURN TBL_SPLIT IS
J INT:=0;
I INT:=1;
LEN INT:=0;
LEN1 INT:=0;
STR VARCHAR2(4000);
STR_SPLIT TBL_SPLIT:=TBL_SPLIT();
BEGIN
 IF P_DELIMITER IS NOT NULL THEN
LEN:=LENGTH(P_STR);
LEN1:=LENGTH(P_DELIMITER);
WHILE J<LEN LOOP
J:=INSTR(P_STR,P_DELIMITER,I);
IF J=0 THEN
J:=LEN;
STR:=SUBSTR(P_STR,I);
STR_SPLIT.EXTEND;
STR_SPLIT(STR_SPLIT.COUNT):=STR;
IF I>=LEN THEN
EXIT;
END IF;
ELSE
STR:=SUBSTR(P_STR,I,J-I);
I:=J+LEN1;
STR_SPLIT:EXTEND;
STR_SPLIT(STR_SPLIT.COUNT):=STR;
END IF;
END LOOP;
ELSE
LEN:=LENGTH(P_STR);
J:=1;
WHILE(P_STR IS NOT NULL AND J<=LEN) LOOP
STR:=SUBSTRB(P_STR,J,1);
STR_SPLIT.EXTEND;
STR_SPLIT(STR_SPLIT.COUNT):=STR;
J:=J+1;
END LOOP;
END IF;
RETURN STR_SPLIT;
END;


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



SELECT * FROM TABLE A
WHERE 1=1
AND EXISTS
(SELECT 1 FROM TABLE(SP_SPITSTR(字符串,','))X WHERE A.属性=X.COLUMN_VALUE);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值