numero - Convertir una cadena a HEX en SQL
replace sql (4)
Si es posible hacer esto en el cliente de la base de datos en código, podría ser más fácil.
De lo contrario, es probable que el error signifique que la función incorporada hexadecimal no puede funcionar con sus valores como espera. Verificaría que el valor de entrada esté recortado y en el formato primero, podría ser así de simple. Luego consultaría la documentación de la base de datos que describe la función hexadecimal y vería cuál sería su entrada esperada y compararía eso con algunos de sus valores y descubriría cuál es la diferencia y cómo cambiar sus valores para que coincidan con los de la entrada esperada.
Una simple búsqueda en google de "función hexadecimal informix" hizo aparecer la primera página de resultados con la oración: "Debe ser un entero literal o alguna otra expresión que devuelva un número entero". Si su tipo de datos es una cadena, primero convierta la cadena en un entero. Parece que a primera vista haces algo con la función de reparto (no estoy seguro de esto).
select hex(cast SomeStringColumn as int)) from SomeTable
Estoy buscando una forma de transformar una cadena genuina en su valor hexadecimal en SQL. Estoy buscando algo que sea apto para Informix, pero obviamente preferiría algo neutro en la base de datos
Aquí está el seleccionado que estoy usando ahora:
SELECT SomeStringColumn from SomeTable
Aquí está la selección que me gustaría usar: SELECCIONAR hex (SomeStringColumn) de SomeTable
Desafortunadamente, nada es tan simple ... Informix me da ese mensaje: Carácter de error de conversión numérica
¿Alguna idea?
qué pasa:
declare @hexstring varchar(max);
set @hexstring = ''E0F0C0'';
select cast('''' as xml).value(''xs:hexBinary( substring(sql:variable("@hexstring"), sql:column("t.pos")) )'', ''varbinary(max)'')
from (select case substring(@hexstring, 1, 2) when ''0x'' then 3 else 0 end) as t(pos)
Vi esto aquí: http://blogs.msdn.com/b/sqltips/archive/2008/07/02/converting-from-hex-string-to-varbinary-and-vice-versa.aspx
Sorrry, eso funciona solo en> MS SQL 2005
ANTIGUO mensaje, pero en mi caso también tuve que eliminar la parte 0x del hexágono, así que usé el siguiente código. (Estoy usando MS SQL)
convert(varchar, convert(Varbinary(MAX), YOURSTRING),2)
¿Puedes usar Cast y fn_varbintohexstr?
SELECT master.dbo.fn_varbintohexstr(CAST(SomeStringColumn AS varbinary))
FROM SomeTable
No estoy seguro si tienes esa función en tu sistema de base de datos, está en MS-SQL.
Acabo de probarlo en mi servidor SQL MMC en una de mis tablas:
SELECT master.dbo.fn_varbintohexstr(CAST(Addr1 AS VARBINARY)) AS Expr1
FROM Customer
Esto funcionó como se esperaba. posiblemente lo que conozco como master.dbo.fn_varbintohexstr en MS-SQL, podría ser similar a la función informix hex (), así que posiblemente intente:
SELECT hex(CAST(Addr1 AS VARBINARY)) AS Expr1
FROM Customer