Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在DB2中删除XML列_Sql_Db2_Db2 Luw_Db2 9.7 - Fatal编程技术网

Sql 在DB2中删除XML列

Sql 在DB2中删除XML列,sql,db2,db2-luw,db2-9.7,Sql,Db2,Db2 Luw,Db2 9.7,我试图以以下方式在db2中删除一个XML列。但每次我这样做,都会导致一个错误 create table One(name int, address XML); alter table One add column age xml; alter table One drop column age; Error starting at line : 5 in command - alter table One drop column age Error report - DB2 SQL Error

我试图以以下方式在db2中删除一个XML列。但每次我这样做,都会导致一个错误

create table One(name int, address XML);
alter table One add column age xml;
alter table One drop column age;

Error starting at line : 5 in command -
alter table One drop column age
Error report -
DB2 SQL Error: SQLCODE=-1242, SQLSTATE=42997, SQLERRMC=7, DRIVER=4.11.77
DB2官方文档表明,这个问题在DB9.7中已经解决。我目前正在检查10.5和11.5版本,但仍然面临同样的问题。 /tpc/db2z_alterxml.html

DB2文档建议在重新组织后对表运行CHECK pending status,但没有可用的命令

有没有办法解决XML数据类型的这个drop列问题?或者默认情况下不允许DB2在表中删除XML列

有人能就这个问题提出建议吗


IBM建议表中的所有XML列都需要在单个alter语句中删除。在10.5及更高版本的db2中,这仍然是一个限制吗?

在DB2Linux/Unix/Windows(包括DB2V11.5)中,这仍然是一个限制

IBM声明(在SQL1242N原因代码7的帮助中)

对于包含多个数据类型为XML的列的表,请执行以下操作之一 不删除表中的任何XML列或所有XML列 使用单个ALTERTABLE语句

"

此限制仅适用于包含多个XML列的表


您可以通过多种方式解决问题,例如创建新表并将现有数据复制到表中等,或者以不同方式排列物理数据模型。

您的示例没有意义。您有两列,想删除一个不存在的列?抱歉。我没有复制代码块中的“alter table One add column age”行,因为SQL01242N有原因码,所以完整的错误消息是什么?当您在LUW上时,为什么要链接到DB2z/OS文档(第一个链接)?请update@data_henrik,是的,我不使用DB2z/OS。我使用以下数据库数据库:DB2/NT6410.5.1、DB2V11.5.0.0。因此,当我有一个包含两个或更多XML列的表时,尝试一次只删除其中一个列会导致错误。DB2SQL错误:SQLCODE=-1242,SQLSTATE=42997,SQLERRMC=7,DRIVER=4.11.77。原因代码为“7”。因此,我想知道这是否是所有db2版本中的限制。这些错误似乎只有在一次性删除所有XML列时才能得到解决。为什么不支持删除单个XML列?