首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DSN8a10. name是一个未定义的名称

DSN8a10. name是一个未定义的名称
EN

Stack Overflow用户
提问于 2019-02-11 17:36:38
回答 1查看 534关注 0票数 0

我刚刚通过运行以下查询创建了一个名为TELE的表:

代码语言:javascript
运行
复制
CREATE TABLE TELE
(NAME2 VARCHAR(15) NOT NULL,
NAME1 VARCHAR(12) NOT NULL,
PHONE CHAR(4));

现在,通过运行以下查询,我试图用DSN8A10.EMP表中的数据填充它:

代码语言:javascript
运行
复制
INSERT INTO TELE
SELECT LASTNAME, FIRSTNME, PHONENO
FROM DSN8A10.EMP
WHERE WORKDEPT = 'D21';

但我得到了以下错误:

42704 "DSN8A10.EMP“是一个未定义的名称。SQLCODE=-204,SQLSTATE=42704,DRIVER=4.23.42。

我正在使用IntelliJ IDEA与com.ibm.db2.jcc.DB2Driver数据服务器驱动程序。

你能帮我找个解决办法吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 18:01:38

一些可能性:

  • 表不存在,因为您在架构名称或表名中有一个错误。
  • 该表确实存在,但位于另一个数据库中。
  • 表存在于数据库中,但是名称或模式有一个MiXed大小写,在这种情况下,您必须在模式名称和表名周围使用双引号。因此,"DSN8a10"."emp“与DSN8a10.EMP不同。

如果DB2服务器在Linux/Unix/Windows上运行,则此查询可能有助于显示混合大小写名称。表可能是视图、别名或昵称。

代码语言:javascript
运行
复制
select tabschema, tabname from syscat.tables where upper(tabschema)='DSN8A10' and upper(tabname) = 'EMP'

如果DB2-服务器在instead上运行:使用QSYS2.SYSTABLES代替。

代码语言:javascript
运行
复制
select table_schema, table_name from qsys2.systables where upper(table_schema)='DSN8A10' and table_name='EMP'

如果DB2-服务器运行在Z/OS:使用SYSIBM.SYSTABLES代替:

代码语言:javascript
运行
复制
select creator, name from sysibm.systables where upper(creator)='DSN8A10' and upper(name) = 'EMP'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54636125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档