IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

Cobol中的DB2代码给出错误


IBM大型机论坛 -> COBOL程式设计
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
diwa_thilak

活跃用户


已加入:2006年7月13日
帖子:205
位置:在我的桌子上

发布发表:2007年9月26日,星期三,下午4:25
引用回复

嗨,朋友们,

我有这样的DB2查询。
码:

选择DISTINCT.LOC_I
来自LOC.STGY_LOC
LOC_IN在哪里(:WS-TOT-STRING)
仅用于FETCH


总字符串是一个有效的存储变量,它将在运行时接受位置。

我收到类似WS-TOT-STRING的错误消息,未声明为指定表的一部分。

当我使用COBOL中的准备好的语句执行相同的查询时,它工作正常吗?

你能告诉我原因吗?
回到顶部
查看用户资料 发送私信
古普泰

主持人


已加入:2005年10月14日
帖子:1206
地点:印度班加罗尔

发布发表:2007年9月26日,星期三,下午4:27
引用回复

嘿Diwakar,

您能否粘贴您的后台打印消息?
回到顶部
查看用户资料 发送私信
diwa_thilak

活跃用户


已加入:2006年7月13日
帖子:205
位置:在我的桌子上

发布发表:2007年9月26日,星期三4:33 pm
引用回复

Guptae,
引用:
465 IGYDS0209-W DSNH206I DSNHANAL语句参考列“ LOC.STGY_LOC”“ WS-TO-STRING”,但未在指定的表中声明

757 IGYOP3091-W从“过程名称9980-PROGRAM-ABEND”到“退出(l(行775.01)”)的代码永远无法执行,因此
丢弃。


当我绑定表时

引用:
DSNT201I-计划A027180A的DTTA绑定不成功
DSN
结束
准备
结束


我收到上述错误消息。

让我知道如何进行!
回到顶部
查看用户资料 发送私信
阿塞韦多

活跃用户


加入:2005年5月11日
帖子:344
地点:西班牙

发布发表:2007年9月26日,星期三4:34 pm
引用回复

码:
LOC_IN在哪里(:WS-TOT-STRING)



与LOC_IN和WS-TOT-STRING相关的搜索条件是什么?我的意思是,如果它们等于(=),不等于(¬=),则IN,>, <.... icon_question.gif
回到顶部
查看用户资料 发送私信
diwa_thilak

活跃用户


已加入:2006年7月13日
帖子:205
位置:在我的桌子上

发布发表:2007年9月26日,星期三4:37 pm
引用回复

阿塞维多

它是

引用:
在LOC_I IN(:WS-TOT-STRING)


我错过了代码中的“ In”。
回到顶部
查看用户资料 发送私信
古普泰

主持人


已加入:2005年10月14日
帖子:1206
地点:印度班加罗尔

发布发表:2007年9月26日,星期三4:37 pm
引用回复

好赶上阿塞维多
回到顶部
查看用户资料 发送私信
diwa_thilak

活跃用户


已加入:2006年7月13日
帖子:205
位置:在我的桌子上

发布发表:2007年9月26日,星期三4:40 pm
引用回复

但是仍然不能正常工作。在论坛中引用代码时,我犯了一个错误。

为什么上面的代码在Prepared语句中使用时能完美地工作?
回到顶部
查看用户资料 发送私信
diwa_thilak

活跃用户


已加入:2006年7月13日
帖子:205
位置:在我的桌子上

发布发表:2007年9月26日,星期三5:54 pm
引用回复

仅此一项信息

1. WS-TOT-STRING声明为X(500),但是表中的位置值定义为数字

2.当我尝试通过静态设置一个值来执行上述代码时
在哪里LOC_I IN(1)它运行完美。如果我使用变量TOT-STRING =值1声明相同,则抛出错误,指出use =而不是IN。

是变量映射的问题吗?

如果是这样,我们如何解决这个问题。

但是当使用Prepare语句(动态)进行准备时,相同的查询可以正常工作。
回到顶部
查看用户资料 发送私信
Craq Giegerich

高级会员


加入时间:2007年5月19日
帖子:1512
地点:美国弗吉尼亚

发布发表:2007年9月26日,星期三7:10 pm
引用回复

diwa_thilak写道:
嗨,朋友们,

我有这样的DB2查询。
码:

选择DISTINCT.LOC_I
来自LOC.STGY_LOC
LOC_IN在哪里(:WS-TOT-STRING)
仅用于FETCH


总字符串是一个有效的存储变量,它将在运行时接受位置。

我收到类似WS-TOT-STRING的错误消息,未声明为指定表的一部分。

当我使用COBOL中的准备好的语句执行相同的查询时,它工作正常吗?

你能告诉我原因吗?


选择它后,LOC_I应该去哪里?您需要一个into子句。我不确定DISTINCT和LOC_I之间的这段时间。
回到顶部
查看用户资料 发送私信
diwa_thilak

活跃用户


已加入:2006年7月13日
帖子:205
位置:在我的桌子上

发布发表:2007年9月26日,星期三9:46 pm
引用回复

克拉克

你是对的。 DISTINCT和LOC_I之间的句点不存在,表名也是LOC_STGY_LOC,而不是LOC.STGY_LOC。

如果问题是INTO CLAUSE,那么如何使用COBOL中的Prepared语句执行此查询?
回到顶部
查看用户资料 发送私信
dr_te_z

新的用户


已加入:2007年6月8日
帖子:71
所在地:荷兰佐特米尔

发布发表:2007年9月28日星期五,上午2:27
引用回复

恐怕预处理器比我们希望的原始得多。我的猜测是,SQL是在定义主机变量之前进行编码的。尝试将该字段移到工作存储区的顶部。
回到顶部
查看用户资料 发送私信
马丁9

活跃用户


已加入:2006年3月1日
帖子:290
地点:瑞士巴塞尔

发布发表:2007年9月28日星期五8:09下午
引用回复

嗨diwa_thilak,

您可以写出有效的语句吗?
不论是否准备好,如果编码不正确,将无法使用,
这与预处理器无关。
手段本身并不是预处理器问题。
无论如何,您使用的变量必须匹配相同的图片(格式)
作为该列的表定义之一。

马丁9
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

发布发表:2007年9月28日星期五10:25 pm
引用回复

您的IN对象(正在工作的存储字段)需要重新定义,或者只是重新定义数据元素,以便db2知道它正在处理的项目长度类型。

01在哪里引用名称。
05 element-1 pic x(4)。
05 element-2图片x(4)。
05 element-3 pic x(4)。
05 element-4 pic x(4)。
05 element-5 pic x(4)。
回到顶部
查看用户资料 发送私信
Craq Giegerich

高级会员


加入时间:2007年5月19日
帖子:1512
地点:美国弗吉尼亚

发布发表:2007年9月28日星期五11:10 pm
引用回复

diwa_thilak写道:
如果问题是INTO CLAUSE,那么如何使用COBOL中的Prepared语句执行此查询?


因为准备选择会创建一个没有INTO子句的游标。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
没有新帖 加载D ...时二级索引错误 IMS数据库/ DC 2
没有新帖 无论先前的步骤如何,都执行步骤... JCL和VSAM 2
没有新帖 错误0C1原因代码1与分支i ... PL / I和组装商 3
该主题已锁定:您无法编辑帖子或回复。 将字段名称传递给COBOL程序 COBOL程式设计 10
没有新帖 COBOL性能调整 COBOL程式设计 6
搜索我们的论坛:

回到顶部