Replace 以DB2简单的方式大量替换空值

Replace 以DB2简单的方式大量替换空值,replace,null,db2,Replace,Null,Db2,我们有不同的表,它们被意外地用空值填充在不同的字段中,这在试图显示它们时会造成问题 我知道如何一列一列地替换它们,但我想知道是否有一种简单的方法来替换所有列中的所有空值。我没有想出任何可能的解决办法 计算30个表,平均约80列,这将需要一段时间来创建SQL 有什么建议可以简化这项任务吗? 我们使用DB2V9,以防它有一个函数或类似的函数 提前谢谢 Xavjer您可以使用目录表从要修改的列中获取名称(如果需要,全部都可以) (未测试,但应该是这样的) 此查询将生成一组行,您将执行(复制/粘贴)或将

我们有不同的表,它们被意外地用空值填充在不同的字段中,这在试图显示它们时会造成问题

我知道如何一列一列地替换它们,但我想知道是否有一种简单的方法来替换所有列中的所有空值。我没有想出任何可能的解决办法

计算30个表,平均约80列,这将需要一段时间来创建SQL

有什么建议可以简化这项任务吗? 我们使用DB2V9,以防它有一个函数或类似的函数

提前谢谢


Xavjer

您可以使用目录表从要修改的列中获取名称(如果需要,全部都可以)

(未测试,但应该是这样的)

此查询将生成一组行,您将执行(复制/粘贴)或将其放入文件中,然后

db2 -tvf file.sql | db2 +p -tv

最后一个where条件是您自己筛选目录的条件。如果要筛选更多条件,可以使用syscat.tables视图。

我不熟悉db2 luw工具,但至少应该能够从现有表生成一个create table脚本。只需使用find和replace魔术,您就可以将create更改为包含NOTNULL With default子句的alter表

至少我认为alter table可以做到这一点。。。在移动设备上遵循语法图有点困难。这里有一个警告-在许多情况下,空值(即缺少另一个值)是正确的(即,客户选择不提供此信息的
生日
列)。您需要担心这样的事情吗?有效的空值?如果替换当前的空值,将来可能会创建新的空值。您应该使用
ALTER TABLE
重新定义列,使其不能为空。@Clockwork缪斯:不,我们有一个“不为空”的概念,所以我们没有任何空字段,我们已经为它定义了标准值。@Turophile:我知道,但我们有一个业务概念,这使得以这种方式更改表变得复杂。所有新创建的都有这个集合,但是对于大多数已经存在的集合来说,这个集合是缺失的。这应该由我们的服务来处理,以验证值是否不为null,但我们遇到了一些意外情况,不幸的是,这与我需要的非常接近,但主要问题是:我们有一些值较低但不为null的列。。。就像“条目示例”##中的##是低值(十六进制x'00'),我只想用空格替换它们,因此它变成了“条目示例”,我认为在这里:
db2 -tvf file.sql | db2 +p -tv