2010-04-01 3 views
1

이 항목은 무엇인가요?DBI (DBD :: Pg)가 비정형 질의에 대한 텍스트의 올바른 열 유형을 반환하지 않는 이유는 무엇입니까?

my $sth = $dbh->prepare(q~ 

    select 'hello'::text as my_text_column 

~); 
$sth->execute; 

print $$sth{TYPE}[0]; # prints -1, expected 12 

내가 select 5 및 IT (정수, 4) 올바른 형식을 반환하거나 select 5::numeric(4, 2)처럼 던져 다시 3를 얻을. 텍스트 열을 좋아하지 않는 이유는 무엇입니까?

+0

내가 '12 '를 기대하는 이유는'$ dbh-> type_info_all'을 실행 한 이유입니다. 거기에는'-1'에 해당하는 타입이 없지만'text'는'DATA_TYPE'이'12'입니다. – Kev

+0

'$ sth -> {TYPE [0]'이 더 읽기 쉽습니다. – Ether

+0

필자는 실제로'$$'표기법을 선호합니다. 나는 타이핑하고 읽는 것이 더 쉽다는 것을 안다. – Kev

답변

2

귀하의 질문에 대한 답을 모르겠지만 해결 방법으로 $sth->{TYPE}이 아닌 포스트 그레스 특정 $sth->{pg_type}을 사용할 수 있습니다.

예에서 $sth->{pg_type}->[0]은 'text'를 반환합니다.

+0

저에게 맞습니다. 고맙습니다! – Kev