Teradata 防止在数据库中保存空字符串

Teradata 防止在数据库中保存空字符串,teradata,Teradata,Oracle有一个很好的本机特性,可以通过将空字符串转换为空字符串来防止将其保存到数据库中。但是,Teradata允许空字符串。最后,我不得不在应用程序中编写助手代码,将空值转换为DBNull。是否有一个设置(可能是在表级别),非DBA的人可以修改该设置以强制空字符串为空?为什么不对相关列的空字符串使用值列表压缩?此外,空值也将自动压缩 ALTER TABLE {MyDB}.{MyTable} ADD {Column1} COMPRESS (''); CREATE TABLE {MyDB}.{

Oracle有一个很好的本机特性,可以通过将空字符串转换为空字符串来防止将其保存到数据库中。但是,Teradata允许空字符串。最后,我不得不在应用程序中编写助手代码,将空值转换为DBNull。是否有一个设置(可能是在表级别),非DBA的人可以修改该设置以强制空字符串为空?

为什么不对相关列的空字符串使用值列表压缩?此外,空值也将自动压缩

ALTER TABLE {MyDB}.{MyTable} ADD {Column1} COMPRESS ('');

CREATE TABLE {MyDB}.{MyTable}, NO FALLBACK
({Column0} {DataType} {NULL|NOT NULL}, -- Can't compress PI Column(s)
 {Column1} VARCHAR(255) COMPRESS (''),
 {Column2} CHAR(4) COMPRESS (''),
 {Column3} INTEGER COMPRESS -- Compress NULL values only
)
PRIMARY INDEX({Column0});

或者另一种选择是在插入或更新之前使用触发器。事实上,此功能是Oracle固有的,所有其他DBMS都像Teradata一样执行此功能:-)空字符串和空字符串之间当然有区别。在表级别没有办法,但是您可以使用一个包含NULLIF(col“”)的视图。