sql - 将表中列的数据类型从 TEXT 更改为 LVARCHAR(10000)

标签 sql database informix

我想将表 d_etl_queriesbatch_calc_query 列的数据类型 TEXT 更改/修改为 LVARCHAR(10000)。我通过执行以下命令来做到这一点:

ALTER TABLE d_etl_queries MODIFY (batch_calc_query LVARCHAR(10000));

但是,它给了我以下错误:

9633: ALTER TABLE can not modify column (batch_calc_query) type.  Need a cast from the current type

有什么办法可以避免这个错误吗?

最佳答案

运行两条语句:

CREATE TABLE blob_to_lvarchar(s SERIAL NOT NULL PRIMARY KEY, b TEXT IN TABLE);
ALTER TABLE blob_to_lvarchar MODIFY b LVARCHAR(10000);

生成所通告的错误。没有一个简单的方法可以解决这个问题 - 您必须向系统添加一个强制转换 (CREATE CAST),并使用适当的 C 函数进行备份才能进行更改。

您将需要卸载该表,删除它,使用正确的列类型重新创建它,然后重新加载该表。

关于sql - 将表中列的数据类型从 TEXT 更改为 LVARCHAR(10000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64333623/

相关文章:

java - 将java程序(以表单)输入的值添加到sql数据库:

android - Sqlite 浏览器教程

database - 如何使用 MS SQL 查找带括号的字符串的最后一部分

python - Informix 连接速度 - Informatica PowerCenter 与 Python by JDBC

php - sql 查询显示错误的总人口数

sql - 无法从命名空间读取 xml 节点

sql - MySQL性能

database - Clickhouse数据导入

sql - 在 Informix 中将 DATETIME 转换为 Unix 纪元

informix - Informix `%iY` 和 `%Y` 格式有什么区别