ホームページ  >  に質問  >  本文

カーソルを使用して複数のテーブルからデータを抽出する方法

<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粉141035089P粉141035089430日前535

全員に返信(2)返信します

  • P粉221046425

    P粉2210464252023-08-17 11:13:22

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

    リーリー

    返事
    0
  • P粉752479467

    P粉7524794672023-08-17 09:39:26

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

    リーリー

    返事
    0
  • キャンセル返事