首页 > 解决方案 > 在 PL/SQL 中从 T-SQL 复制 STUFF() 函数的最佳方法是什么?

问题描述

我正在尝试STUFF()从 Oracle 中的 Transact SQL 复制函数的行为。我假设CONCATSUBSTR函数都会涉及到,但是如果不编写太多代码,我想不出一个聪明的方法来做到这一点。

有谁知道实现这一目标的好方法?

标签: sqloracletsqlplsqlstuff

解决方案


正如您所说,由于没有这样的内置函数 - 您必须使用连接和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文档模拟)


推荐阅读