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 に答える