【问题标题】:Replace function asking for argument in oracle query替换在 oracle 查询中请求参数的函数
【发布时间】:2015-08-11 15:26:33
【问题描述】:

我正在尝试在查询下运行

SELECT     REPLACE('SURES&npsp','&npsp', 'H')  FROM DUAL

当我运行它时,它会为上述 '&npsp' 询问两个输入。 实际上我的要求是用 'H' 替换 '&npsp'。 有没有其他方法来做这个替换。

【问题讨论】:

  • 虽然 Gary_W 确实提供了适用于您确定的场景的解决方案,但也许使用 DBMS_XMLGEN.CONVERT 函数可能是一种更强大的方法。这是这种方法的一个示例,dba.stackexchange.com/questions/89939/…
  • @PatrickBacon - &npsp 不是实体吗?还是我误解了你的意思?
  • @AlexPoole 你是对的。我把它误认为&nbsp。这可能是拼写错误吗?如果我们不替换实体,那么我的建议将不起作用……同意。
  • @PatrickBacon - 也没有分号,用 H 替换   会有点奇怪。但谁知道呢,它可能只是在发布时出现乱码......

标签: oracle oracle11g oracle10g informatica informatica-powercenter


【解决方案1】:

为避免出现额外的替换提示,只需执行

set define off;

在运行查询之前。

【讨论】:

  • 假设 OP 正在将查询作为脚本运行。 @sureshhh 如果您在 GUI 中将其作为独立语句运行(例如 Toad、SQL Developer 等),通常可以选择在工具中的某处关闭替换变量提示(例如在 Toad 中,您会正确鼠标点击编辑器窗口并选择相关选项)。
【解决方案2】:

另一种选择是从字符中拆分&

SELECT     REPLACE('SURES&'||'npsp','&'||'npsp', 'H')  FROM DUAL

解决方案并不比set define off好,但我能记住。

【讨论】:

    【解决方案3】:

    如果您正在寻找 Informatica 解决方案,您可以使用REPLACESTR(1, 'SURES&npsp','&npsp', 'H')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2021-02-12
      • 1970-01-01
      相关资源
      最近更新 更多