如何获取DB2 9.7的游标值为for循环,其中返回值是一个字符串 [英] How to get DB2 9.7 cursor value in for loop where returned value is a string

查看:307
本文介绍了如何获取DB2 9.7的游标值为for循环,其中返回值是一个字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  DECLARE SQL VARCHAR(1024); 

FOR V AS CUR1 CURSOR FOR(SELECT'select * from My_Table'from ...)
DO
SET SQL = CUR1;
从SQL准备S1;
EXECUTE S1;
END FOR;

这似乎不起作用。我已经成功地完成了这一点,当for循环中的光标指向一些返回的行,并且我可以访问该值。像这样:

  SET SQL = CUR1.TABNAME 

但是现在返回的值是一个字符串,我不知道如何从游标中获取它。有任何想法吗?

解决方案

您只需在查询中指定列名:

  DECLARE SQL VARCHAR(1024); 

FOR V AS CUR1 CURSOR FOR(SELECT'drop table My_Table'as malicious_code from ...)
DO
SET SQL = CUR1.malicious_code;
从SQL准备S1;
EXECUTE S1;
END FOR;


I have a loop e.g.

DECLARE SQL VARCHAR(1024);

FOR V AS CUR1 CURSOR FOR (SELECT 'Select * from My_Table' from ... )
DO
    SET SQL = CUR1;
    PREPARE S1 FROM SQL;
    EXECUTE S1;
END FOR;

This does not seem to work. I have successfully done similar to this when the cursor in the for loop points to some row returned and I can access the value e.g. like this:

SET SQL = CUR1.TABNAME

But now that the returned value is a string, I have no idea how to get it from the cursor. Any ideas?

解决方案

You simply need to specify a column name in your query:

DECLARE SQL VARCHAR(1024);

FOR V AS CUR1 CURSOR FOR (SELECT 'drop table My_Table' as malicious_code from...)
DO
    SET SQL = CUR1.malicious_code;
    PREPARE S1 FROM SQL;
    EXECUTE S1;
END FOR;

这篇关于如何获取DB2 9.7的游标值为for循环,其中返回值是一个字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆