0

我有一个循环,例如

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;

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

SET SQL = CUR1.TABNAME

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

4

1 回答 1

3

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

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;
于 2013-03-04T11:03:30.513 回答