カーソルを使用して複数のテーブルからデータを抽出する方法
P粉141035089
P粉141035089 2023-08-16 13:12:27
0
2
598
<p>次のような複数のテーブルを返すクエリがあります。 </p> <pre class="brush:php;toolbar:false;">SELECT テーブル名、データベース名 '.' テーブル名、列名 FROM DBC.列 WHERE ColumnName = 'id'</pre> <p>特定のテーブルのみを取得するには、これらのテーブルに格納されている情報を調べてループする必要があります。 </p> <p>'LOOP' とカーソルを使用して以下のコードを試してみましたが、<code>無効なクエリ</code> (コードはここから来ています) と表示されます: </p> <pre class="brush:php;toolbar:false;">DECLARE カーソル_テーブル CURSOR FOR SELECT データベース名 || '.' || テーブル名 FROM DBC.列 WHERE 列名 ='id'; カーソルテーブルを開く; ラベル1: ループ カーソルテーブルを tbName にフェッチします。 IF (SQLSTATE ='02000') THEN ラベル 1 を残します。 終了 IF; 大文字と小文字の場合 ( 選択数(*) prd3_db_tmd.K_PTY_NK01 から WHERE id = 0 ) > 0 THEN tbName 終わり エンドループラベル1; CLOSE カーソルテーブル; END;</pre> <p>この問題はどのように解決すればよいでしょうか?追加のストアド プロシージャを使用する必要がありますか? DBMSはTeradataです。 </p>
P粉141035089
P粉141035089

全員に返信(2)
P粉221046425

これが SQL Server の場合は、次の SQL カーソル を参照してください。カーソル宣言とその中のコードを編集しました。 要件とは異なる場合がありますが、簡単に変更できると思います

リーリー
いいねを押す +0
P粉752479467

Teradata でカーソルを使用できるのはストアド プロシージャだけであるため、ストアド プロシージャが必要です。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート