sql - 在 DB2 中更新十六进制值
问题描述
我的表“XYZ”中有额外的字符。我正在将此表的数据与其他表进行比较。现在 XYZ 有一些额外的字符,我想更新其他表中的十六进制值。如何在 DB2 中为此编写更新语句?
例如:我有十六进制值的字符:4C6F6E646F6E
,我正在尝试正则表达式将 6E 替换为 6F,如下所示:
SELECT REGEXP_REPLACE('LONDON', '\x6E','\x6F') FROM SYSIBM.SYSDUMMY1;
解决方案
尝试以下任一等效表达式:
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 |
推荐阅读
- types - 我如何让 Agda 的宇宙检查器相信我所做的事情是有根据的?
- javascript - Enter 键的行为类似于 JavaScript 中的箭头键
- amazon-web-services - 将 Elasticache 与 RDS 连接起来?
- vue.js - 如何在 vuex 中使用 InfiniteLoading(错误)
- c# - 在 linq where 子句中强制转换属性
- python - Python:Portaudio Errno -9986 内部 PortAudio 错误
- angular - 在子组件和父组件之间传递数据
- python-3.x - 如何根据子列表中的值过滤 2 级列表?
- regex - 将旧域重定向到新域的主页
- shopify - 在结帐时更新折扣代码时出现 Shopify 400 错误