분류 자 테이블에서 lookup_type 값을 사용하여 값을 적절한 유형으로 변환하려고합니다.plpgsql에서 변수를 필드 유형으로 사용하는 방법은 무엇입니까?
Table "public.classificator"
Column | Type | Collation | Nullable | Default
------------------+--------+-----------+----------+-------------------------------------------
classificator_id | bigint | | not null | nextval('classificator_id_seq'::regclass)
classificator | text | | not null |
lookup | text | | not null |
description | text | | |
lookup_value | text | | |
lookup_type | text | | |
내가 예를 들어 값을 사용합니다 ('SYSTEM_SETTINGS은', '부울' '진실' '시스템 여부에 대한 일광 절약 시간제를 사용하여' 'daylight_saving_enabled').
변수를 유형으로 사용하는 데 문제가 있습니다.
psql의 시험 :
내가 plpgsql에서이 작업을 수행하기 위해 노력하고있어으로select cast('1' as integer); --> OK
select cast('1' as 'integer');
ERROR: syntax error at or near "'integer'"
, 나는 두 가지 옵션이 있습니다, 방법이 문제를 해결하려면 다음
1)
EXECUTE 'SELECT CAST($1 AS ' || 'boolean' || ')'
INTO value
USING 'true';
2) 캐스팅 된 값을 반환하는 ifs가 많은 함수 만들기 예 IF type = 'boolean' THEN return 'value'::boolean
등
이 문제에 대한 좀 더 우아한 해결책이 있습니까?
을, 함수는 행할 수없는 :) – user1190411
와서 다른 사람 답변자 사람 : 아래로 이동하지 마십시오 "아마도 어쩌면 레코드를 반환하는 함수를 가질 수 있습니다."- 그런 함수의 출력을 사용할 때 어쨌든 캐스트를 지정해야한다는 것을 기억하기 전에 잠시 머뭇 거리게되었습니다. – Scoots