为什么我的As400不能从新创建的成员别名中选择?

时间:2011-08-25 17:15:35

标签: sql database db2 alias ibm-midrange

我已根据此question中的说明设置了代码。

创建别名可以使用,也可以删除它。

对于我自己创建的成员,这是正常的,但对于现有成员,从别名中选择时会出现以下错误:

  

SQL State:42704
  供应商代码:-204
  消息:[SQL0204]找不到MyLib类型* FILE中的MyMemberName。

     

原因。 。 。 。 。 :MyMemberName in   未找到TPLWHS类型* FILE。如果成员名称为* ALL,则为表   没有分区。如果这是ALTER TABLE语句和类型   是* N,未找到约束或分区。如果这不是   ALTER TABLE语句和类型是* N,一个函数,过程,   未找到触发器或序列对象。如果找不到某个功能,   MyMemberName是包含该功能的服务程序。该   除非外部名称和用法名称,否则将找不到该功能   完全匹配。检查作业日志以获取提供更多信息的消息   正在搜索哪个函数名称的详细信息以及该名称   不匹配。

     

恢复。 。 。 :更改名称并尝试请求   再次。如果对象是节点组,请确保DB2 Multisystem   产品安装在您的系统上并使用。创建一个节点组   CRTNODGRP CL命令。如果找不到外部功能,请确保   在CREATE FUNCTION语句中表示EXTERNAL NAME的情况   完全匹配服务程序导出的名称的大小写。

非常感谢您提供的任何帮助。谢谢!

编辑:这是我的代码:

create alias MyLib.MyAlias for MyLib.MyLogicalFile(MyMember);

select * from MyLib.MyAlias;

drop alias MyLib.MyAlias;

当我直接创建物理和逻辑成员时,Lib.Alias的格式对我有用。也许逻辑文件丢失了?我会仔细检查......

1 个答案:

答案 0 :(得分:3)

此错误消息可能表示文件/逻辑文件/成员不存在。