免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2010 | 回复: 1
打印 上一主题 下一主题

用C开发DB2应用时使用动态语句的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-06 10:46 |只看该作者 |倒序浏览
初学DB2,只好上来求教。首先描述一下开发环境:AIX4.3,DB2 8.0

现象是:别人写的一个动态语句,原来运行得好好的,我重建数据库后,在prepare语句时就报sqlcode=-204,但是其他的静态sql语句运行正常。难道是建库有问题?
哪位帮忙分析一下这是怎么回事?

论坛徽章:
0
2 [报告]
发表于 2005-07-06 17:13 |只看该作者

用C开发DB2应用时使用动态语句的问题

SQL0204N "<名称>;" 是一个未定义的名称。

解释:

此错误由以下之一引起:

o   未在数据库中定义由 "<名称>;" 标识的对象。

o   正在使用某个数据类型。此错误可能是由于下列原因而发生的:

    -   如果 "<名称>;"
        是限定名称,则具有此名称的数据类型在数据库中不存在。

    -   如果 "<名称>;"
        是非限定名称,则用户的函数路径不包含期望的数据类型所属于的
        模式。

    -   该数据类型在创建时间戳记早于程序包绑定时间的数据库中不存在(适
        用于静态语句)。

    -   若数据类型在 CREATE TYPE 语句的 UNDER 子句中,
        则该类型名可能与正定义的类型相同,这是无效的。

o   下列其中一项中正在引用某个函数:

    -   DROP FUNCTION 语句

    -   COMMENT ON FUNCTION 语句

    -   CREATE FUNCTION 语句的 SOURCE 子句

         如果 "<名称>;" 是限定名称,则函数不存在。如果 "<名称>;"
        是非限定名称,则当前函数路径的任何模式中都不存在此名称的函
        数。注意,函数不能  以 COALESCE、 NULLIF 或 VALUE
        内置函数作为源函数。



可为任何类型的数据库对象生成此返回码。

联合系统用户:在数据库中未定义由 "<名称>;" 标识的对象,或者
"<名称>;" 不是 DROP NICKNAME 语句中的昵称。

某些数据源 不向 "<名称>;"
提供适当的值。在这些情况下,消息标记将具有以下格式:"OBJECT:<数据源
>; TABLE/VIEW",指示指定数据源的实际值未知。

不能处理该语句。

用户响应:

确保在 SQL 语句中正确指定了对象名(包括任何必需的限定符),并且它存
在。对于 SOURCE
子句中丢失的数据类型或函数,可能是该对象不存在,或该对象处于某模式
中,但该模式不在您的函数路径中。

联合系统用户:若该语句是 DROP
NICKNAME,则确保该对象实际上是一个昵称。该对象可能不存在于联合数据
库中或 数据源 上。验证联合数据库对象(若有的话)和 数据源
对象(若有的话)的存在情况。

sqlcode :  -204

sqlstate :  42704


是不是没指定schema啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP