2017-03-01 1 views
0

유효한 JSON을 포함하지 않는 텍스트 값을 JSON으로 캐스팅하면 문을 폭격 할 수 있습니다. 나는 어떤 행이나 가치가 있는지 전혀 모른다. 어떻게해야합니까?PostgreSQL - 유효하지 않은 텍스트 값 찾기 JSON

손가락이 교차하여 UDF를 포함하지 않는다 ... 나는 우리의 스택에 이것을 주입하고 싶지 않습니다. (우리는 데이터베이스 마이그레이션을위한 루비 레일 액티브를 사용하고, 나는 거의 확실 UDF의이 schema.rb에 기록되지 것입니다.)

+0

함수 **는 ** 최고의 솔루션입니다. 난독 화 레이어에서 사용할 수없는 경우 다른 것을 찾아야합니다. –

+0

'to_json'을 사용해 보셨습니까? –

답변

0

당신에게 예외를 가지는 체크 값, 행을 찾을 예 :

t=# do 
$$ 
declare _r record; 
begin 
    for _r in (with j as (select * from (values ('3'),('{"valid":true}'),('notValid')) as son) select column1 v from j) loop 
    begin 
     perform _r.v::json; 
     exception when others then raise info '%',concat(_r.v,' ',SQLSTATE); 
    end; 
    end loop; 
end; 
$$ 
; 
INFO: notValid 22P02 
DO 
t=# \e 
INFO: test3 22P02 
INFO: notValid 22P02 
DO 
관련 문제