INSERT 语句放入到列内的值无需与接收它的列具有相同的数据类型。然而,这两种数据类型必须兼容。如果数据库服务器有方法将一种数据类型强制转型为另一种,则两种数据类型是兼容的。强制转型是数据库服务器将一种数据类型转换为另一种的机制。
数据库服务器尽其所能地执行数据转换。如果数据不可转换,则 INSERT 操作失败。如果目标数据类型不可持有指定的值,则数据转换也失败。例如,您不可将整数 123456 插入到定义为 SMALLINT 数据类型的列内,因为此数据类型不能持有那么大的数。
对于数据库服务器提供的强制转型的总结,请参阅 GBase 8s SQL 参考指南。要了解关于如何创建用户定义的强制转型的信息,请参阅本文档中的 CREATE CAST 语句以及 GBase 8s 用户定义的例程和数据类型开发者指南 。
在使用非缺省语言环境的数据库中,如果 GL_DATETIME 环境变量有非缺省的设置,则在 INSERT 语句可正确地将本地化的 DATETIME 值插入到数据库表内,或视图内,或 EXTERNAL 表对象内之前,必须将 USE_DTENV 环境变量设置为 1。