ETL实用函数和存储过程(一)

本文介绍了两个SQL实用函数,包括将逗号分隔的字符串转换为带单引号的字符串,适合于在查询时处理用户输入,以及将字符串转为数组,解决IN查询性能问题。通过示例展示了函数的具体应用和代码实现。
摘要由CSDN通过智能技术生成

致力做一个首先想的是怎么帮助别人的人
点赞再看,谢谢支持

前言

想要提高编程效率,就必须学会造轮子,造好的轮子随时使用,随时开车。

今天分享一些实用的函数和存储过程(轮子),希望你能够用上。

一、(‘0a,0b,0c’)–>(‘0a’,‘0b’,‘0c’)
  • 传入参数:逗号分隔的字符串

  • 输出结果:逗号分隔的带单引号的字符串

  • 使用场景:当老师想要在文本框中输入多个学生名称(逗号分隔)查询学生信息时
    老师输入:张三,王五,李四

  • 系统接收:‘张三,王五,李四’
    如果直接使用接收到的字符串进行查询,结果为空
    select * from students where student_name in (‘张三,王五,李四’);

  • 系统先要对接收到的字符串进行处理,
    处理之后:‘张三’,‘王五’,‘李四’
    select * from students where student_name in (‘张三’,‘王五’,‘李四’);

  • 函数代码如下:

create or replace function f_change_str_to_str(a_str in varchar2)
  return varchar2 is
  /*
  --模块功能:字符串转换_例('0a,0b,0c')-->('0a','0b','0c')
  --a_str: 传入字符串
  --demo: select f_change_str_to_str('0a,0b,0c') from dual;
  */
  
  oldstr     varchar2(4000) := a_str;
  newstr     varchar2(4000) := null; --返回加单引号之后的值
  v_commapos number(4); --逗号位置
  v_curitem  varchar2(4000) :=<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值