好的,我将解释环境,以便您了解我的问题。
我使用IBM Data Studio连接和编辑我的DB2数据库
名为[dgsmdb]
我使用用户名连接到数据库:dgsmadm
&密码:password
我创建了一个名为[LOGICGATES]
在架构中,我有三个表,其中一个名为:[GATEDETAILS]
现在,当我使用我的存储过程调用LOGICGATES模式中的GATEDETAILS表时,如下所示:
DECLARE c CURSOR FOR SELECT gatename FROM LOGICGATES.GATEDETAILS;
我遇到了一个问题:["LOGICGATES.GATEDETAILS" is an undefined name. SQLERROR=42704]
,其中我知道它实际上(根据我自己的理解)表示数据库中没有表GATEDETAILS
。这真的让我烦恼,因为我很清楚我成功地在GATEDETAILS
模式中创建了LOGICGATES
表。我已经查了好几个小时,但我仍然无法找到错误。我承认我没有那么好,而且有一些错误我有点忽视,所以我想请求帮助。无论谁能纠正我的错误,你都是我最后的希望,我真的需要这个。
答案 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%'