Existe uma maneira de expressar um int literal Postgres em hexadecimal?

votos
19

Eu tenho uma grande lista de números hexadecimais eu gostaria de inserir em uma tabela do PostgreSQL. Eu tentei algo parecido com isto:

INSERT IGNORE  INTO foo (i)
VALUES (0x1234);

... mas isso não funcionou. Isso é possível?

Publicado 05/01/2009 em 22:57
fonte usuário
Em outras línguas...                            


3 respostas

votos
7

Isso parece funcionar:

 CAST(X'3e000000' AS INT)
Respondeu 05/01/2009 em 23:18
fonte usuário

votos
22

Como você observou, você pode começar com uma constante bit-string escrito em hexadecimal, e depois conversão de tipo-lo para o tipo que você deseja. Assim,

INSERT IGNORE  INTO foo (i) VALUES (CAST(x'1234' AS int))

ou

INSERT IGNORE  INTO foo (i) VALUES (x'1234'::int) -- postgres-specific syntax
Respondeu 05/01/2009 em 23:28
fonte usuário

votos
-1

Você pode apenas usar

x'1234'::int;

Para mais informações veja meu post sobre,

Respondeu 08/04/2018 em 21:31
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more