sql - 如何在 DB2 数据库中查找 char 0x1A (→)
问题描述
最近,DB2 团队进行了数据库升级,2 天后又因为与 Application 的版本不兼容而再次降级。同时在少数数据库表中插入了 0x1A (→) 字符。如何在所有数据库表中找到该字符。任何想法请帮忙。
解决方案
你可以做这样的事情
CREATE TABLE FIND_VALUE (
TABSCHEMA VARCHAR(128) NOT NULL
, TABNAME VARCHAR(128) NOT NULL
, COLNAME VARCHAR(128) NOT NULL
, ROW_COUNT BIGINT
)
@
BEGIN
FOR C AS cur CURSOR WITH HOLD FOR
SELECT 'INSERT INTO FIND_VALUE SELECT '
|| '''' || TABSCHEMA || ''',''' || TABNAME || ''',''' || COLNAME || ''', COUNT(*) FROM '
|| '"' || TABSCHEMA || '"."' || TABNAME || '"'
|| ' WHERE "' || COLNAME || '" LIKE ''%' || x'1A' || '%''' AS S
FROM SYSCAT.COLUMNS C JOIN SYSCAT.TABLES T USING ( TABSCHEMA, TABNAME )
WHERE C.CODEPAGE > 0
AND TABSCHEMA NOT IN ('SYSIBM','SYSTOOLS')
AND T.TYPE IN ('T','S')
ORDER BY
TABSCHEMA, TABNAME, COLNAME
DO
EXECUTE IMMEDIATE C.S;
COMMIT;
END FOR;
END
推荐阅读
- json - 如何将模型转换为 JSON
- android - WorkManager alpha10 ListenableFuture 用法
- r - 根据条件将值替换到上面的行
- django - 如何以员工或超级用户的身份删除/编辑帖子?
- sql - 将 TABLOCK 与合并 SQL Server 一起使用
- r - Calculate Cohen's d in different groups in R
- sql-server - 查找数据的平均值,精确到小数点后两位
- reactjs - 状态更改不会推送到 React/Redux 应用程序中的子组件
- kubernetes - Kubernetes 指标服务器不启动
- r - 如何通过 ggplot 代码为绘图 y 轴上显示的值的字符设置最大限制?