sql >> データベース >  >> RDS >> PostgreSQL

Postgresqlで動的に生成されたCURSOR

    明示カーソルが本当に必要ですか?動的SQLを反復処理する必要がある場合は、FOR IN EXECUTEを使用できます。 。動的SQLの暗黙的な(内部)カーソルのループです

    FOR db_rec IN EXECUTE v_sql_dynamic
    LOOP
      ..
    END LOOP
    

    もう少し複雑なソリューションについては、ドキュメント で説明されています。 -OPEN FOR EXECUTE

    do $$
    declare r refcursor; rec record;
    begin 
      open r for execute 'select * from pg_class'; 
      fetch next from r into rec;
      while found 
      loop
        raise notice '%', rec; 
        fetch next from r into rec; 
      end loop;
      close r; 
    end $$;
    

    この種のカーソルでは、FOR INを使用することはできません。




    1. 不足している日付を埋めるMysql

    2. PDOデバッグ-バインド後にクエリを表示しますか?

    3. 時間の部分を無視して、T-SQLで日付を比較します

    4. SQLは、メッセージの送信を受信したユーザーを取得します(UPDATE)