2012-01-12 5 views
1

으로 변환하면 PostgreSQL 8.4에서 다중 정수 (int4) 값을 bytea 값으로 연결할 수 있습니까? 예를 들어바이너리 문자열로 concat 정수를 bytea

:

5::int4 || 1::int4 

는 리틀 엔디안의 시스템을 가정 (0x05 0x00 0x00 0x00 0x01 0x00 0x00 0x00)와 BYTEA 값을 초래할 것이다.

답변

2

음, int4send은 int4를 bytea로 변환하지만 이름에서 항상 네트워크 주문을 사용합니다.

입니다 :는 AMD64 시스템에

[email protected]@[local] =# select int4send(3); 
    int4send 
------------ 
\x00000003 

이벤트.

1

select byteain(bit_out(5::bit(32) || 1::bit(32))) 또는 select int4send(5)||int4send(1)으로 간접적으로 변환하면 0000000000000000000000000000010100000000000000000000000000000001이됩니다.

binary string functions을 사용하여 원하는 인코딩으로 변환 할 수도 있습니다. 비슷한 문제에 대한 해결책은 pgsql-general 목록의 Maarten Foqué's answer을 참조하십시오. 당신은 그의 함수 나 비슷한 함수에서 결과로 나온 bytea 값을 간단히 연결할 수 있어야합니다. (그러나 휘발성 대신 안정한 것으로 표시하십시오.)

관련 문제