Cara menggunakan kursor untuk mengekstrak data daripada berbilang jadual
P粉141035089
2023-08-16 13:12:27
<p>Saya mempunyai pertanyaan yang mengembalikan berbilang jadual, seperti ini: </p>
<pre class="brush:php;toolbar:false;">SELECT TableName, DatabaseName +'.'+ TableName, ColumnName
DARIPADA DBC.Columns
WHERE ColumnName = 'id'</pre>
<p>Saya perlu mengulangi jadual ini dengan melihat maklumat yang disimpan di dalamnya untuk mendapatkan jadual tertentu sahaja. </p>
<p>Saya mencuba kod di bawah, menggunakan 'LOOP' dan kursor, tetapi tertera <kod>Pertanyaan tidak sah</code>
<pre class="brush:php;toolbar:false;">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;</pre>
<p>Bagaimanakah saya harus menyelesaikan masalah ini? Adakah saya perlu menggunakan prosedur tersimpan tambahan? DBMS ialah Teradata. </p>
Jika ini SQL Server, anda boleh melihat yang berikut SQL 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.