Saya mempunyai pertanyaan yang mengembalikan berbilang jadual, seperti ini:
SELECT TableName, DatabaseName +'.'+ TableName, ColumnName DARIPADA DBC.Columns WHERE ColumnName = 'id'
Saya perlu mengulangi jadual ini dengan melihat maklumat yang disimpan di dalamnya untuk mendapatkan jadual tertentu sahaja.
Saya mencuba kod di bawah, menggunakan 'LOOP' dan kursor, tetapi tertera Bagaimanakah saya harus menyelesaikan masalah ini? Adakah saya perlu menggunakan prosedur tersimpan tambahan? DBMS ialah Teradata. ISYTIHKAN kursor_Jadual KURSOR UNTUK PILIH Nama Pangkalan Data || DARIPADA DBC.Columns WHERE ColumnName ='id'; BUKA kursor_Jadual; label1: LOOP FETCH kursor_Jadual ke dalam tbName; JIKA (SQLSTATE ='02000') MAKA TINGGALKAN label1; TAMAT JIKA; KES BILA ( PILIH COUNT(*) DARIPADA prd3_db_tmd.K_PTY_NK01 WHERE id = 0 ) > MAKA tbName TAMAT Label LOOP TAMAT1; TUTUP kursor_Jadual; TAMAT;
Jika ini SQL Server, anda boleh melihat yang berikutSQL Cursor, saya telah mengedit pengisytiharan kursor dan kod di dalamnya Walaupun ia mungkin berbeza daripada keperluan anda, saya rasa anda boleh mengubah suainya dengan mudah
Anda memerlukan prosedur tersimpan kerana ini adalah satu-satunya tempat di mana kursor boleh digunakan dalam Teradata.