質問: postgresのストアドファンクションでエラーの postgresのストアドファンクションでエラーの拾い方を教えてください。 insertして重複したらアップデートに切り替えるというサンプルをよく見かけます。 declare begin insert文 return true; exception when unique_violation then update文 end; それと同じノリで、何かしらのエラーがあった時に、 『return false;』するか、もしくはエラーコードをそのまま拾って返すというようなサンプルが欲しいです。 declare begin 何かしらのsql return true; exception when すべてのエラー then return false; end; declare begin 何かしらのsql return true; exception when すべてのエラー then return エラーコード; end;
回答: こんな感じで処理出来ると思います。 exception when others then select sqlstate || ':' || sqlerrm into v_status; return v_status;