如何获取DB2 9.7的游标值为for循环,其中返回值是一个字符串 [英] How to get DB2 9.7 cursor value in for loop where returned value is a string
本文介绍了如何获取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屋!
查看全文