Wie bekommen Sie Informationen aus mehreren Tabellen mithilfe der cursor?

Ich habe eine Frage,,, gibt mehrere Tabellen, so etwas wie:

SELECT TableName, DatabaseName +'.'+ TableName, ColumnName
FROM DBC.Columns
WHERE ColumnName = 'id'

Und ich brauche, um eine Schleife durch diese Tabellen suchen, um die gespeicherten Informationen in diesen Tabellen, um nur bestimmte Tabellen.

Habe ich versucht, etwas wie code unten, mit 'LOOP' und cursor, aber es sagt, dass Query is invalid (code aus hier):

DECLARE cursor_Tables CURSOR FOR     
    SELECT DatabaseName || '.' || TableName
    FROM   DBC.Columns
    WHERE  ColumnName  ='id'; 

OPEN cursor_Tables; 
    label1: 
    LOOP    
        FETCH  cursor_Tables into tbName;
        IF (SQLSTATE ='02000') THEN
            LEAVE label1;
        END IF;

        CASE WHEN (  
            SELECT COUNT(*)
            FROM prd3_db_tmd.K_PTY_NK01
            WHERE id = 0 ) > 0
             THEN tbName
        END 
    END LOOP label1;
CLOSE cursor_Tables;
END;

Wie kann ich eigentlich mit diesem problem umzugehen? Brauche ich Verfahren zusätzlich? DBMS ist Teradata

Sie müssen wählen Sie in einem cursor in einer Gespeicherten Prozedur und dann dynamisches SQL verwenden für jede tablename zurückgegeben.
Ich habe versucht, deinen Tipp, aber angesichts einige Probleme
Antwort relevant ist, TSQL (SQL-Server), anstatt Teradata-SQL, aber kann Ihnen helfen.

InformationsquelleAutor Rocketq | 2015-02-17

Schreibe einen Kommentar