如何在 db2 sql 中设置列​​数据类型

Posted

技术标签:

【中文标题】如何在 db2 sql 中设置列​​数据类型【英文标题】:how to set column data type in db2 sql 【发布时间】:2015-03-02 01:26:58 【问题描述】:

我想将 sql 表 TB_TRANSACTION 中的 EN_NO 长度从 21 更改为 16。以下是我当前的 sql 列字段。

sql 命令 -

describe table tb_transaction

column | type schema  | type name | length | scale | nulls
EN_NO|   SYSIBM    | VARCHAR   |   21  |  0   | Yes

我尝试使用此命令但失败了。

alter table tb_transaction alter column EN_NO set data type varchar(16)<br/>

Error message:
SQL0190N  ALTER TABLE "EASC.TB_TRANSACTION" specified attributes for column
"EN_NO" that are not compatible with the existing column.  SQLSTATE=42837

任何帮助将不胜感激。

【问题讨论】:

该列中最长值的长度是多少? 当前该列只有1条数据,POLICY100210长度 你能做 4 部分过程吗?添加新列,从旧更新新列,删除旧列,重命名新列? 尝试“从 tb_transaction 中选择 cast(EN_NO as varchar(16))”。会发生什么? 什么平台和版本的 DB2?它适用于我的 DB2 for i 7.1。我确实收到一条消息,“更改字段 EN_NO 可能会导致数据丢失。”。但我可以忽略这一点并更改表格。 【参考方案1】:

我们可以增加列的大小,但不能减小列的大小,因为会发生数据丢失,这就是系统不允许减小大小的原因。

如果您仍想减小大小,则需要删除该列并重新添加。

【讨论】:

以上是关于如何在 db2 sql 中设置列​​数据类型的主要内容,如果未能解决你的问题,请参考以下文章

可以在实体框架中设置列排序

如何在 tableLayoutPanel 中设置列​​跨度

如何在 NavigationView 中设置列​​表的背景颜色

分组在聚合参数和 NULL 替换中设置列

如何在 Spring Boot 中为 DB2 连接在数据源中设置模式

如何在 JTable/JXTable 中设置列​​宽?