0

好的,我将解释环境,以便您了解我的问题。

  1. 我正在使用 IBM Data Studio 连接和编辑我的 DB2 数据库,该数据库名为[dgsmdb]

  2. 我使用用户名连接到数据库:dgsmadm& 密码:password

  3. 我创建了一个名为:[LOGICGATES]

  4. 在架构内,我有三个表,其中一个名为:[GATEDETAILS]

现在,当我使用如下所示的存储过程调用 LOGICGATES 模式中的 GATEDETAILS 表时:

DECLARE c CURSOR FOR SELECT gatename FROM LOGICGATES.GATEDETAILS;

我遇到了一个问题,它说:["LOGICGATES.GATEDETAILS" is an undefined name. SQLERROR=42704],我知道它实际上说(以我自己的理解)该表GATEDETAILS不存在于数据库中。这真的让我很烦,因为我很清楚我成功地在模式中创建了GATEDETAILS表。LOGICGATES我已经检查了几个小时,但我仍然找不到我的错误。我承认我不是那么好,并且有一些我有点忽略的错误,所以我想寻求帮助。谁能纠正我的错误,你是我最后的希望,我真的需要这个。

4

1 回答 1

1

你是如何创建你的表的?您是否将架构放在表格之前?

create table LOGICGATES.GATEDETAILS (col1 type, ...)

或者您只需创建架构,然后创建表

create schema LOGICGATES;
create table GATEDETAILS (col1 type, ...)

如果您以第二种方式创建表,由于隐式模式,您的表将被命名为 dgsmadm.GATEDETAILS。

看看目录

select tabschema, tabname from syscat.tables where tabschema not like 'SYS%'
于 2013-05-13T16:52:27.583 回答