【问题标题】:Updating hexadecimal values in DB2在 DB2 中更新十六进制值
【发布时间】:2019-12-28 11:52:19
【问题描述】:

我的表格“XYZ”中有多余的字符。我正在将此表的数据与其他表进行比较。现在 XYZ 有一些额外的字符,我想更新其他表中的十六进制值。如何在 DB2 中为此编写更新语句?

例如:我有十六进制值的字符:4C6F6E646F6E,我正在尝试正则表达式将 6E 替换为 6F,如下所示:

SELECT REGEXP_REPLACE('LONDON', '\x6E','\x6F') FROM SYSIBM.SYSDUMMY1;

【问题讨论】:

  • 请向我们展示您的疑问 - 您已经尝试过什么?
  • @Rubecka 为所有参与的表格提供一些数据样本和所需的结果。
  • 例如:我有十六进制值的字符:4C6F6E646F6E,我正在尝试正则表达式将 6E 替换为 6F,如下所示:SELECT REGEXP_REPLACE('LONDON', '\x6E','\x6F') FROM SYSIBM.SYSDUMMY1;
  • 请阅读How to Ask,然后阅读edit您的问题。不要用 cmets 来澄清; cmets 可能会或可能不会以任何顺序显示。 cmets 中的代码很难阅读。

标签: sql db2 hex ascii special-characters


【解决方案1】:

尝试以下任一等效表达式:

SELECT
  STR_ORIG
, STR_REPL
, HEX(STR_ORIG) HEX_ORIG
, HEX(STR_REPL) HEX_REPL
FROM
(
SELECT 
  T.STR STR_ORIG
--, REGEXP_REPLACE(T.STR, x'6E', x'6F')  STR_REPL
, REGEXP_REPLACE(T.STR, '\x6E', x'6F')  STR_REPL
FROM (VALUES 'London') T (STR)
);

|STR_ORIG|STR_REPL     |HEX_ORIG    |HEX_REPL                  |
|--------|-------------|------------|--------------------------|
|London  |Loodoo       |4C6F6E646F6E|4C6F6F646F6F              |

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2012-06-16
    • 2018-02-01
    相关资源
    最近更新 更多