如何在VB中格式化字符串?移除单引号后传入PLSQL参数
处理后的无单引号字符串
移除所有单引号后,得到的逗号分隔字符串如下:
BKGSSS220005823,BKGSSS220005824,BKGSSS220005786,BKGSSS220005756,BKGSSS220005858,BKGSSS220005843,BKGSSS220005845,BKGSSS220005862,BKGSSS220005777,BKGSSS220005861,BKGSSS220005867,BKGSSS220005825,BKGSSS220005863,BKGSSS220005859,BKGSSS220005878,BKGSSS220005755,BKGSSS220005877,BKGSSS220005827,BKGSSS220005879,BKGSSS220005852,BKGSSS220005831
传入PLSQL参数的两种实用方式
1. 直接作为单个字符串参数传入
如果你的PLSQL存储过程/函数接受逗号分隔的字符串参数,直接赋值调用即可:
DECLARE v_input VARCHAR2(1000) := 'BKGSSS220005823,BKGSSS220005824,BKGSSS220005786,BKGSSS220005756,BKGSSS220005858,BKGSSS220005843,BKGSSS220005845,BKGSSS220005862,BKGSSS220005777,BKGSSS220005861,BKGSSS220005867,BKGSSS220005825,BKGSSS220005863,BKGSSS220005859,BKGSSS220005878,BKGSSS220005755,BKGSSS220005877,BKGSSS220005827,BKGSSS220005879,BKGSSS220005852,BKGSSS220005831'; BEGIN -- 替换成你的实际程序名 your_plsql_program(p_input => v_input); END; /
2. 拆分成集合类型参数传入
如果需要把每个编号作为独立元素处理(比如用于IN子查询),可以先将字符串拆分为PLSQL集合:
先定义集合类型(如果没有现成的)
CREATE OR REPLACE TYPE varchar2_list IS TABLE OF VARCHAR2(50); /
拆分字符串并赋值给集合参数
DECLARE v_input VARCHAR2(1000) := 'BKGSSS220005823,BKGSSS220005824,BKGSSS220005786,BKGSSS220005756,BKGSSS220005858,BKGSSS220005843,BKGSSS220005845,BKGSSS220005862,BKGSSS220005777,BKGSSS220005861,BKGSSS220005867,BKGSSS220005825,BKGSSS220005863,BKGSSS220005859,BKGSSS220005878,BKGSSS220005755,BKGSSS220005877,BKGSSS220005827,BKGSSS220005879,BKGSSS220005852,BKGSSS220005831'; v_id_list varchar2_list; BEGIN -- 用正则拆分字符串并批量收集到集合中 SELECT TRIM(REGEXP_SUBSTR(v_input, '[^,]+', 1, LEVEL)) BULK COLLECT INTO v_id_list FROM DUAL CONNECT BY REGEXP_SUBSTR(v_input, '[^,]+', 1, LEVEL) IS NOT NULL; -- 调用接受集合参数的程序 your_plsql_program(p_id_list => v_id_list); END; /
内容的提问来源于stack exchange,提问作者Manav Srivastava
相关产品推荐
相关产品推荐

