A5:SQL Mk-2

開発のこと、日々のこと

プロシージャの戻り値について

ホーム フォーラム A5:SQL Mk-2掲示板 プロシージャの戻り値について

  • このトピックには2件の返信、2人の参加者があり、最後ににより6年、 1ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #3107 返信
    yu
    ゲスト

    お世話になります。PostgreSQL10 + Windows10で利用させて頂いております。
    プロシージャ(関数)の戻り値のことでお尋ねします。
    以下のようなプロシージャを作成したとしまして、

    create table tst(
    col1 text,
    col2 text);

    insert into ts values(‘a’,’a1′);
    insert into ts values(‘b’,’b1′);
    insert into ts values(‘c’,’c1′);

    create or replace function fn_tst()

    #3108 返信
    yu
    ゲスト

    途中で送信してしまいました。すいません。
    以下・・・
    create or replace function fn_tst() returns table (value1 text,value2 text)
    language plpgsql
    as $function$begin
    return query
    select col1,col2 from tst;
    end;
    $function$

    というようなプロシージャを、メニューの[ストアドプロシージャ(P)]-[実行 (結果セットを返すもの)(G)]で実行しても、結果セットで戻ってこずに、
    「SQL statement doesn’t return rows」とエラーになってしまいます。
    戻り値をtable型で戻す方法があれば教えて頂けないでしょうか?よろしくお願いします。

    #3153 返信
    松原正和
    キーマスター

    yu さんこんにちは。

    はい、確かにストアドプロシージャランチャからの実行ではエラーが出るようですね。ちょっとエラーの原因を調べたのですが、UniDACの内部でエラーを起こしており、早急な調査は難しそうでした。

    とりあえずは、SQLエディタから、

    select * from fn_tst()

    とすることで実行するようにしてください。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: プロシージャの戻り値についてで#3108に返信
あなたの情報:




コメントは受け付けていません。