You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle如何按行内花括号占位模板替换字段值生成显示名称

Oracle 按name_format占位符规则生成display_name实现方案

全版本通用写法

你的场景涉及的占位符固定为{first_name}、{last_name}、{surname}三个,直接嵌套REPLACE函数逐层替换占位符为对应字段值即可,无版本兼容问题,执行效率最高:

SELECT
  account_id,
  name_format,
  REPLACE(
    REPLACE(
      REPLACE(name_format, '{first_name}', first_name),
      '{last_name}', last_name
    ),
    '{surname}', surname
  ) AS display_name
FROM 替换为你的实际表名;

基于你提供的样例数据执行上述语句,返回结果完全匹配预期:

account_idname_formatdisplay_name
1{first_name} {last_name} {surname}John Doe john_doe
2{surname} {first_name} {last_name}jane_doe Jane Doe
3{first_name} {last_name}Baby Doe

注意事项

  • 若业务中字段值本身可能包含{字段名}格式的内容,需要提前做转义处理,避免出现误替换。
  • 固定字段场景下不推荐使用正则、动态SQL等复杂实现,嵌套REPLACE的可维护性和执行效率最优。
  • 如果后续需要支持的占位符字段较多,可在Oracle 12c及以上版本使用XMLQUERY动态匹配占位符,新增字段时无需逐层追加REPLACE逻辑,只需在PASSING子句中补充对应字段的别名映射即可。

内容的提问来源于stack exchange,提问作者khairul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 17:24:21