我正在尝试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文档模拟)