2016-11-21 18 views
0

という名前のカラムがありますが、通常はJSONのようなものが入っています。私はその中の特定の値(例えばmetadata :: JSON -> 'register' ->> 'date')を選択したいと思いますが、JSONがひどくフォーマットされている場合やフィールドが存在しない場合はエラーが発生します。代わりにエラーが発生する場合は、その列を単にNULLの値に戻すことはできますか?PostgreSQL例外をキャッチして列の値を変更します

答えて

1

jsonにキャストしようとするストアドプロシージャを記述し、失敗のnullを返すことができます。このようなもの:

create function to_json(t text) returns json as $$ 
begin 
    return t::json; 
exception when invalid_text_representation then 
    return null; 
end; 
$$ language plpgsql; 

とし、to_json(metadata) -> 'register' ->> 'date'を使用します。

関連する問題