我们无法删除别名。所以,我通过运行找到了一个别名:
SELECT
TABLE_NAME
FROM
QSYS2.SYSTABLES
WHERE
BASE_TABLE_NAME IN ('OE0711P','OE0712P')
AND TABLE_TYPE = 'A'
AND SYSTEM_TABLE_SCHEMA = 'AMPLIBX';
并选择了第一个,即OE0712PD506202270
.
所以我尝试运行DROP ALIAS AMPLIBX.OE0712PD506202270;
并出现以下错误:
SQL 状态:42704
供应商代码:-204
消息:[SQL0204] AMPLIBX 类型 *FILE 中的 OE07100001 未找到。原因 。. . . . : AMPLIBX 类型 *FILE 中的 OE07100001 未找到。如果成员名称是*ALL,则该表未分区。如果这是一个 ALTER TABLE 语句并且类型是 *N,则未找到约束或分区。如果这不是 ALTER TABLE 语句且类型为 *N,则未找到函数、过程、触发器或序列对象。如果未找到函数,则 OE07100001 是包含该函数的服务程序。除非外部名称和用法名称完全匹配,否则不会找到该函数。检查作业日志中是否有一条消息提供了有关正在搜索哪个函数名称以及不匹配的名称的更多详细信息。恢复 。. . : 更改名称并重试请求。如果对象是节点组,确保在您的系统上安装了 DB2 Multisystem 产品并使用 CRTNODGRP CL 命令创建节点组。如果未找到外部函数,请确保 CREATE FUNCTION 语句中 EXTERNAL NAME 的大小写与服务程序导出的名称的大小写完全匹配。
工作日志只说:
AMPLIBX 类型 *FILE 中的 OE07100001 未找到。
……可是怎么会找不到呢?我真的只是在元数据中找到它。
另请注意:尝试通过 IBM i Access Client Solutions 应用程序删除时也会出现奇怪的行为。
- 摘要显示了 1097 个现有别名。但是当我右键单击第一个并选择“定义”时,它的名称与我选择的名称不同。根据 QSYS2.SYSTABLES,两者都是现有的(但独立的)别名。
- 当我尝试右键单击然后从摘要中删除时,没有任何反应。没有错误信息,没有被删除。
难道我做错了什么?我怎样才能删除这些别名?
什么版本的 IBM i?
您可能想尝试使用
option(*CHECK)
.显然,其他人通过运行 IPL 和 RECSTG 设法修复了它。