db2 - 已创建的表仍然是未定义的名称

时间:2013-05-13 12:53:42

标签: sql database stored-procedures db2 ibm-data-studio

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

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

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

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

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

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

    DECLARE c CURSOR FOR SELECT gatename FROM LOGICGATES.GATEDETAILS;
    

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

1 个答案:

答案 0 :(得分: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%'