avec l'analyseur de requ=EAte je voudrais cr=E9er un script=20
pour convertir des nombres hexadecimal (40bits) en=20
decimal.
Une fonction de type HEXDEC (EXCEL) est elle disponible=20
avec Transact SQL?
Par contre, personnellement, je n'arrive pas a le placer dans une fonction récupérant comme paramètre un octet (varchar(2) ), comme par exemple 'D5' ou 'FF'
Quelqu'un a t"il une idée ?
Merci d'avance,
Alexis Leroy Promotool.com
"Jorge Lavado" a écrit dans le message de news:
Bonjour. Regarde si ceci aide.
En EXCEL: HEX2DEC("FFFFFFFF5B") equals -165 HEX2DEC("3DA408B9") equals 1034160313
En SQLSERVER: 0x + nombres hexadecimal ("0x"qui viens de
Par contre, personnellement, je n'arrive pas a le placer dans une fonction
récupérant comme paramètre un octet (varchar(2) ), comme par exemple 'D5' ou
'FF'
Quelqu'un a t"il une idée ?
Merci d'avance,
Alexis Leroy
Promotool.com
"Jorge Lavado" <anonymous@discussions.microsoft.com> a écrit dans le message
de news:34E09DA7-E844-4C5B-BEE6-F2D8EE86C49D@microsoft.com...
Bonjour.
Regarde si ceci aide.
En EXCEL:
HEX2DEC("FFFFFFFF5B") equals -165
HEX2DEC("3DA408B9") equals 1034160313
En SQLSERVER: 0x + nombres hexadecimal ("0x"qui viens de
Par contre, personnellement, je n'arrive pas a le placer dans une fonction récupérant comme paramètre un octet (varchar(2) ), comme par exemple 'D5' ou 'FF'
Quelqu'un a t"il une idée ?
Merci d'avance,
Alexis Leroy Promotool.com
"Jorge Lavado" a écrit dans le message de news:
Bonjour. Regarde si ceci aide.
En EXCEL: HEX2DEC("FFFFFFFF5B") equals -165 HEX2DEC("3DA408B9") equals 1034160313
En SQLSERVER: 0x + nombres hexadecimal ("0x"qui viens de
CREATE PROCEDURE spHexToInt @HexVal varchar(50) , @Int integer OUTPUT AS
DECLARE @Power int , @HexString varchar(15)
SET @HexString = '123456789ABCDEF' SET @Power = 0 SET @Int = 0
WHILE LEN(@HexVal) <> 0 AND UPPER(RIGHT(@HexVal,1)) <> 'X' BEGIN SET @Int = @Int + (CHARINDEX(RIGHT(@HexVal, 1),@HexString) * POWER(16, @Power)) SET @Power = @Power + 1 SET @HexVal = SUBSTRING(@HexVal, 1, LEN(@HexVal)-1) END
"Laurent L." a écrit dans le message de news:e98f01c3f088$27a35560$ Bonjour,
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?
Merci
Réponse de Steve Sturgis trouvée sur Google :
CREATE PROCEDURE spHexToInt @HexVal varchar(50) , @Int integer OUTPUT
AS
DECLARE @Power int
, @HexString varchar(15)
SET @HexString = '123456789ABCDEF'
SET @Power = 0
SET @Int = 0
WHILE LEN(@HexVal) <> 0 AND UPPER(RIGHT(@HexVal,1)) <> 'X'
BEGIN
SET @Int = @Int + (CHARINDEX(RIGHT(@HexVal, 1),@HexString) * POWER(16,
@Power))
SET @Power = @Power + 1
SET @HexVal = SUBSTRING(@HexVal, 1, LEN(@HexVal)-1)
END
"Laurent L." <anonymous@discussions.microsoft.com> a écrit dans le message
de news:e98f01c3f088$27a35560$a601280a@phx.gbl...
Bonjour,
avec l'analyseur de requête je voudrais créer un script
pour convertir des nombres hexadecimal (40bits) en
decimal.
Une fonction de type HEXDEC (EXCEL) est elle disponible
avec Transact SQL?
CREATE PROCEDURE spHexToInt @HexVal varchar(50) , @Int integer OUTPUT AS
DECLARE @Power int , @HexString varchar(15)
SET @HexString = '123456789ABCDEF' SET @Power = 0 SET @Int = 0
WHILE LEN(@HexVal) <> 0 AND UPPER(RIGHT(@HexVal,1)) <> 'X' BEGIN SET @Int = @Int + (CHARINDEX(RIGHT(@HexVal, 1),@HexString) * POWER(16, @Power)) SET @Power = @Power + 1 SET @HexVal = SUBSTRING(@HexVal, 1, LEN(@HexVal)-1) END
"Laurent L." a écrit dans le message de news:e98f01c3f088$27a35560$ Bonjour,
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?
Merci
Laurent L.
J'ai essayé la procédure, mais malheureusement une donnée de type int ne peut exéder 2147483647. Il me faudrait en fait renseigner un champs de type varchar avec la valeur décimale de la donnée héxa. Exemple : 0x01017B38B3 = 4319819955 en décimal 4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL. Quelqu'un connait il une astuce?
-----Message d'origine----- Réponse de Steve Sturgis trouvée sur Google :
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?
Merci
.
J'ai essayé la procédure, mais malheureusement une donnée
de type int ne peut exéder 2147483647.
Il me faudrait en fait renseigner un champs de type
varchar avec la valeur décimale de la donnée héxa.
Exemple : 0x01017B38B3 = 4319819955 en décimal
4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL.
Quelqu'un connait il une astuce?
-----Message d'origine-----
Réponse de Steve Sturgis trouvée sur Google :
"Laurent L." <anonymous@discussions.microsoft.com> a
écrit dans le message
de news:e98f01c3f088$27a35560$a601280a@phx.gbl...
Bonjour,
avec l'analyseur de requête je voudrais créer un script
pour convertir des nombres hexadecimal (40bits) en
decimal.
Une fonction de type HEXDEC (EXCEL) est elle disponible
avec Transact SQL?
J'ai essayé la procédure, mais malheureusement une donnée de type int ne peut exéder 2147483647. Il me faudrait en fait renseigner un champs de type varchar avec la valeur décimale de la donnée héxa. Exemple : 0x01017B38B3 = 4319819955 en décimal 4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL. Quelqu'un connait il une astuce?
-----Message d'origine----- Réponse de Steve Sturgis trouvée sur Google :
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?
Merci
.
Nicolas LETULLIER
Petite conversion du type integer en bigint
CREATE PROCEDURE spHexToInt @HexVal varchar(50) , @Int bigint OUTPUT AS
DECLARE @Power bigint , @HexString varchar(15)
SET @HexString = '123456789ABCDEF' SET @Power = 0 SET @Int = 0
WHILE LEN(@HexVal) <> 0 AND UPPER(RIGHT(@HexVal,1)) <> 'X' BEGIN SET @Int = @Int + (CHARINDEX(RIGHT(@HexVal, 1),@HexString) * POWER(CONVERT(bigint,16), @Power)) SET @Power = @Power + 1 SET @HexVal = SUBSTRING(@HexVal, 1, LEN(@HexVal)-1) END
Attention, petite astuce pour le POWER, fonction qui renvoit un résultat dans le type de la première expression, donc integer par défaut -> Dépassement
Nicolas.
"Laurent L." a écrit dans le message de news:f74b01c3f180$a1b1d540$ J'ai essayé la procédure, mais malheureusement une donnée de type int ne peut exéder 2147483647. Il me faudrait en fait renseigner un champs de type varchar avec la valeur décimale de la donnée héxa. Exemple : 0x01017B38B3 = 4319819955 en décimal 4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL. Quelqu'un connait il une astuce?
-----Message d'origine----- Réponse de Steve Sturgis trouvée sur Google :
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?
Merci
.
Petite conversion du type integer en bigint
CREATE PROCEDURE spHexToInt @HexVal varchar(50) , @Int bigint OUTPUT
AS
DECLARE @Power bigint
, @HexString varchar(15)
SET @HexString = '123456789ABCDEF'
SET @Power = 0
SET @Int = 0
WHILE LEN(@HexVal) <> 0 AND UPPER(RIGHT(@HexVal,1)) <> 'X'
BEGIN
SET @Int = @Int + (CHARINDEX(RIGHT(@HexVal, 1),@HexString) *
POWER(CONVERT(bigint,16),
@Power))
SET @Power = @Power + 1
SET @HexVal = SUBSTRING(@HexVal, 1, LEN(@HexVal)-1)
END
Attention, petite astuce pour le POWER, fonction qui renvoit un résultat
dans le type de la première expression, donc integer par défaut ->
Dépassement
Nicolas.
"Laurent L." <anonymous@discussions.microsoft.com> a écrit dans le message
de news:f74b01c3f180$a1b1d540$a501280a@phx.gbl...
J'ai essayé la procédure, mais malheureusement une donnée
de type int ne peut exéder 2147483647.
Il me faudrait en fait renseigner un champs de type
varchar avec la valeur décimale de la donnée héxa.
Exemple : 0x01017B38B3 = 4319819955 en décimal
4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL.
Quelqu'un connait il une astuce?
-----Message d'origine-----
Réponse de Steve Sturgis trouvée sur Google :
"Laurent L." <anonymous@discussions.microsoft.com> a
écrit dans le message
de news:e98f01c3f088$27a35560$a601280a@phx.gbl...
Bonjour,
avec l'analyseur de requête je voudrais créer un script
pour convertir des nombres hexadecimal (40bits) en
decimal.
Une fonction de type HEXDEC (EXCEL) est elle disponible
avec Transact SQL?
CREATE PROCEDURE spHexToInt @HexVal varchar(50) , @Int bigint OUTPUT AS
DECLARE @Power bigint , @HexString varchar(15)
SET @HexString = '123456789ABCDEF' SET @Power = 0 SET @Int = 0
WHILE LEN(@HexVal) <> 0 AND UPPER(RIGHT(@HexVal,1)) <> 'X' BEGIN SET @Int = @Int + (CHARINDEX(RIGHT(@HexVal, 1),@HexString) * POWER(CONVERT(bigint,16), @Power)) SET @Power = @Power + 1 SET @HexVal = SUBSTRING(@HexVal, 1, LEN(@HexVal)-1) END
Attention, petite astuce pour le POWER, fonction qui renvoit un résultat dans le type de la première expression, donc integer par défaut -> Dépassement
Nicolas.
"Laurent L." a écrit dans le message de news:f74b01c3f180$a1b1d540$ J'ai essayé la procédure, mais malheureusement une donnée de type int ne peut exéder 2147483647. Il me faudrait en fait renseigner un champs de type varchar avec la valeur décimale de la donnée héxa. Exemple : 0x01017B38B3 = 4319819955 en décimal 4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL. Quelqu'un connait il une astuce?
-----Message d'origine----- Réponse de Steve Sturgis trouvée sur Google :
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?
Merci
.
Steve Kass
Laurent,
Une autre solution, utilisant une table auxiliaire d'entiers:
create table N100 ( N int not null primary key ) insert into N100 select top 100 OrderID-10248 from Northwind..Orders go
declare @data table ( s varchar(20) ) insert into @data values ('0x73b4210d7f') insert into @data values ('0xff') insert into @data values ('0x01017B38B3') insert into @data values ('0x100000000')
select s, sum(power(cast(16 as bigint),N - 1) * charindex(substring(reverse(s),N,1),'123456789abcdef')) from N100, @data where N < len(s) - 1 group by s go
drop table N100
SK
Laurent L. wrote:
J'ai essayé la procédure, mais malheureusement une donnée de type int ne peut exéder 2147483647. Il me faudrait en fait renseigner un champs de type varchar avec la valeur décimale de la donnée héxa. Exemple : 0x01017B38B3 = 4319819955 en décimal 4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL. Quelqu'un connait il une astuce?
-----Message d'origine----- Réponse de Steve Sturgis trouvée sur Google :
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?
Merci
.
Laurent,
Une autre solution, utilisant une table auxiliaire d'entiers:
create table N100 (
N int not null primary key
)
insert into N100
select top 100 OrderID-10248
from Northwind..Orders
go
declare @data table (
s varchar(20)
)
insert into @data values ('0x73b4210d7f')
insert into @data values ('0xff')
insert into @data values ('0x01017B38B3')
insert into @data values ('0x100000000')
select
s,
sum(power(cast(16 as bigint),N - 1)
* charindex(substring(reverse(s),N,1),'123456789abcdef'))
from N100, @data
where N < len(s) - 1
group by s
go
drop table N100
SK
Laurent L. wrote:
J'ai essayé la procédure, mais malheureusement une donnée
de type int ne peut exéder 2147483647.
Il me faudrait en fait renseigner un champs de type
varchar avec la valeur décimale de la donnée héxa.
Exemple : 0x01017B38B3 = 4319819955 en décimal
4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL.
Quelqu'un connait il une astuce?
-----Message d'origine-----
Réponse de Steve Sturgis trouvée sur Google :
"Laurent L." <anonymous@discussions.microsoft.com> a
écrit dans le message
de news:e98f01c3f088$27a35560$a601280a@phx.gbl...
Bonjour,
avec l'analyseur de requête je voudrais créer un script
pour convertir des nombres hexadecimal (40bits) en
decimal.
Une fonction de type HEXDEC (EXCEL) est elle disponible
avec Transact SQL?
Une autre solution, utilisant une table auxiliaire d'entiers:
create table N100 ( N int not null primary key ) insert into N100 select top 100 OrderID-10248 from Northwind..Orders go
declare @data table ( s varchar(20) ) insert into @data values ('0x73b4210d7f') insert into @data values ('0xff') insert into @data values ('0x01017B38B3') insert into @data values ('0x100000000')
select s, sum(power(cast(16 as bigint),N - 1) * charindex(substring(reverse(s),N,1),'123456789abcdef')) from N100, @data where N < len(s) - 1 group by s go
drop table N100
SK
Laurent L. wrote:
J'ai essayé la procédure, mais malheureusement une donnée de type int ne peut exéder 2147483647. Il me faudrait en fait renseigner un champs de type varchar avec la valeur décimale de la donnée héxa. Exemple : 0x01017B38B3 = 4319819955 en décimal 4319819955 > 2147483647
Mais là je suis un peu juste au niveau SQL. Quelqu'un connait il une astuce?
-----Message d'origine----- Réponse de Steve Sturgis trouvée sur Google :
avec l'analyseur de requête je voudrais créer un script pour convertir des nombres hexadecimal (40bits) en decimal. Une fonction de type HEXDEC (EXCEL) est elle disponible avec Transact SQL?