游标内的游标?

cursor within a cursor?

是否可以在游标内定义游标?

我有两个带列的游标,然后我通过减号语句将它们相互减去。 但是,我还需要在 minus 语句之后有一个游标,因为我需要迭代列。应将每一列添加到创建视图脚本,以便它创建所有列。

我需要变量“all”的光标。有人有想法吗?它不适用于此代码.. 请不要看“xy”之类的内容。这些值尚未调整。这只是一个测试脚本。

这是我的脚本:

DECLARE CURSOR itemsone
FOR 
    SELECT table_name, column_name 
    FROM table1
    WHERE table_name LIKE 'xy'; 
    
DECLARE CURSOR itemstwo
FOR 
    SELECT table_name, column_name 
    FROM table2
    WHERE table_name LIKE 'xy';
    
    
DECLARE test_sql VARCHAR(500);
---
FOR item AS itemone DO
    all = SELECT column_name FROM table1 WHERE table_name = 'xy' AND column_name like 'z'
          MINUS 
          SELECT column_name FROM table2 WHERE table_name = 'xy';

    test_sql= CONCAT(CONCAT('CREATE OR REPLACE VIEW V_', 'TEST'), 'AS ( SELECT');
    
    FOR a AS all DO 
        test_sql = test_sql + CONCAT(a,', ');
    END FOR;

-- MORE TO FOLLOW

是的,可以根据需要多次嵌套游标。 下面是我嵌套 3 个游标的示例:

Declare Cursor_1 CURSOR FOR Select (...)

Open Cursor_1 
Fetch Next From Cursor_1 Into (...)
While(@@FETCH_STATUS = 0)
Begin

    Declare Cursor_2 CURSOR FOR Select (...)

    Open Cursor_2 
    Fetch Next From Cursor_2 Into (...)
    While(@@FETCH_STATUS = 0)
    Begin
        
        Declare Cursor_3 CURSOR FOR Select (...)

        Open Cursor_3 
        Fetch Next From Cursor_3 (...)
        While(@@FETCH_STATUS = 0)
        Begin

            (...)
            Fetch Next From Cursor_3 Into (...)

        End
        Close Cursor_3 
        Deallocate Cursor_3 

        Fetch Next From Cursor_2 Into (...)

    End
    Close Cursor_2 
    Deallocate Cursor_2 

    Fetch Next From Cursor_1 Into (...)

End
CLOSE Cursor_1  
DEALLOCATE Cursor_1