更改 DB2 LUW 10.5 上的数据类型和默认值

Altering data type and default on DB2 LUW 10.5

我正在尝试在同一个更改命令中对 DB2 中的列进行 2 次更改,它似乎不喜欢我的语法。有没有办法做到这一点?如果是,怎么做?

create table tbl(col varchar(10))

以下工作,使用 2 个 alter 语句:

alter table tbl
alter column col set data type varchar(128)

alter table tbl
alter column col set default current user

以下尝试失败:

alter table tbl
alter column col set data type varchar(128) set default current user

An unexpected token "set data type varchar(128)" was found following "TBL alter column col". Expected tokens may include: "".. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.67.28

alter table tbl
alter column col set data type varchar(128) with default current user

An unexpected token "data type varchar(128)" was found following "alter column col set". Expected tokens may include: "".. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.67.28

alter table tbl
alter column col set data type varchar(128) 
alter column col set default current user

"COL" is a duplicate name.. SQLCODE=-612, SQLSTATE=42711, DRIVER=3.67.28

您不能在同一条语句中两次更改同一列——这就是 SQLCODE -612 告诉您的。根据 http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.messages.sql.doc/doc/msql00612n.html

a column name can only be referenced in one ADD, DROP COLUMN, or ALTER COLUMN clause in a single ALTER TABLE statement.

其他尝试在语法上不正确。

alter table tbl 
alter COLUMN col set DATA TYPE VARCHAR(128)
ALTER column B SET DEFAULT current user;