sql - 在 PL/SQL 中从 T-SQL 复制 STUFF() 函数的最佳方法是什么?
问题描述
我正在尝试STUFF()
从 Oracle 中的 Transact SQL 复制函数的行为。我假设CONCAT
和SUBSTR
函数都会涉及到,但是如果不编写太多代码,我想不出一个聪明的方法来做到这一点。
有谁知道实现这一目标的好方法?
解决方案
正如您所说,由于没有这样的内置函数 - 您必须使用连接和substr
函数为自己编写一个。像这样的东西:
SQL> create or replace function stuff
2 (par_str in varchar2,
3 par_start in number,
4 par_length in number,
5 par_replace_with in varchar2
6 )
7 return varchar2
8 is
9 begin
10 return substr(par_str, 1, par_start - 1) ||
11 par_replace_with ||
12 substr(par_str, par_start + par_length);
13 end stuff;
14 /
Function created.
SQL> select stuff('abcdef', 2, 3, 'ijklmn') result from dual;
RESULT
--------------------------------------------------------------------------------
aijklmnef
SQL>
(使用STUFF T-SQL文档模拟)
推荐阅读
- r - 如何更改 plot_model 方面
- mongodb - 使用带有字段值的 mongodb $nin 和 $in 运算符
- python - 如何在kivy中画一个聊天气球?
- javascript - ReactTooltip.show 在功能组件中不起作用
- lua - vararg 运算符可以做什么但 arg table 不能?
- reactjs - 为什么 MateriaUI 日期选择器不会“淡化”导出?
- javascript - 下载完成后删除本地文件
- spring - 如果授权标头中缺少承载令牌,请勿将 API 请求重定向到登录页面
- jquery - Jquery toggleClass 不改变类
- python - pyenv 没有使用正确的 python 版本