Re: Inverse de to_hex ?

Lists: pgsql-fr-generale
From: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Inverse de to_hex ?
Date: 2007-09-05 12:51:52
Message-ID: 20070905125152.GA9405@nic.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Je stocke des données numériques que j'ai souvent besoin de convertir
depuis et vers l'hexadécimal.

Vers l'hexa, c'est facile avec to_hex
(http://www.postgresql.org/docs/current/static/functions-string.html)
mais en sens inverse ? Je voudrais pouvoir écrire des trucs comme :

SELECT * FROM Machins WHERE foobar = to_number???(0x07DC);


From: "Jean-Christophe Arnu" <jcarnu(at)gmail(dot)com>
To: "Stephane Bortzmeyer" <bortzmeyer(at)nic(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Inverse de to_hex ?
Date: 2007-09-05 13:05:48
Message-ID: 5b3af220709050605we133519k9d7a2919843aa169@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,
Un simple integer('0x'||ma_variable) doit suffire non?

Le 05/09/07, Stephane Bortzmeyer<bortzmeyer(at)nic(dot)fr> a écrit :
> Je stocke des données numériques que j'ai souvent besoin de convertir
> depuis et vers l'hexadécimal.
>
> Vers l'hexa, c'est facile avec to_hex
> (http://www.postgresql.org/docs/current/static/functions-string.html)
> mais en sens inverse ? Je voudrais pouvoir écrire des trucs comme :
>
> SELECT * FROM Machins WHERE foobar = to_number???(0x07DC);
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>

--
Jean-Christophe Arnu


From: Jean-Paul Argudo <jean-paul(at)argudo(dot)org>
To: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Inverse de to_hex ?
Date: 2007-09-05 13:08:13
Message-ID: 46DEAA3D.4070605@argudo.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,

> Vers l'hexa, c'est facile avec to_hex
> (http://www.postgresql.org/docs/current/static/functions-string.html)
> mais en sens inverse ? Je voudrais pouvoir écrire des trucs comme :
>
> SELECT * FROM Machins WHERE foobar = to_number???(0x07DC);

Voir le dernier article de cette page:

http://www.varlena.com/GeneralBits/104.php

Au passage, merci Elein :-)

--
Jean-Paul Argudo
www.PostgreSQLFr.org
www.dalibo.com


From: Mathieu Arnold <mat(at)mat(dot)cc>
To: Jean-Christophe Arnu <jcarnu(at)gmail(dot)com>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Inverse de to_hex ?
Date: 2007-09-05 13:10:57
Message-ID: 710581712482F44C49AEC851@andromede.in.absolight.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

+-le 05.09.2007 15:05:48 +0200, Jean-Christophe Arnu a dit :
| Bonjour,
| Un simple integer('0x'||ma_variable) doit suffire non?

=> select integer('0xABCDE');
ERROR: syntax error at or near "(" at character 15
LINE 1: select integer('0xABCDE');
=> select '0xABCDE'::integer;
ERROR: invalid input syntax for integer: "0xABCDE"

j'pense pas, non.

(Je n'ai pas de solution cela dit.)

--
Mathieu Arnold


From: "Jean-Christophe Arnu" <jcarnu(at)gmail(dot)com>
To: "Mathieu Arnold" <mat(at)mat(dot)cc>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Inverse de to_hex ?
Date: 2007-09-05 13:17:16
Message-ID: 5b3af220709050617u74ec3f7bn2713c3ac186c127c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Et moi pas de PG sous la main pour ça.... :/

Le 05/09/07, Mathieu Arnold<mat(at)mat(dot)cc> a écrit :
> +-le 05.09.2007 15:05:48 +0200, Jean-Christophe Arnu a dit :
> | Bonjour,
> | Un simple integer('0x'||ma_variable) doit suffire non?
>
> => select integer('0xABCDE');
> ERROR: syntax error at or near "(" at character 15
> LINE 1: select integer('0xABCDE');
> => select '0xABCDE'::integer;
> ERROR: invalid input syntax for integer: "0xABCDE"
>
> j'pense pas, non.
>
> (Je n'ai pas de solution cela dit.)
>
> --
> Mathieu Arnold
>

--
Jean-Christophe Arnu


From: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
To: Jean-Christophe Arnu <jcarnu(at)gmail(dot)com>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Inverse de to_hex ?
Date: 2007-09-05 13:21:18
Message-ID: 20070905132118.GA15383@nic.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

On Wed, Sep 05, 2007 at 03:05:48PM +0200,
Jean-Christophe Arnu <jcarnu(at)gmail(dot)com> wrote
a message of 22 lines which said:

> Un simple integer('0x'||ma_variable) doit suffire non?

Je ne trouve pas cette fonction "integer" dans la documentation et
PostgreSQL n'a pas l'air de la connaitre :

essais=> SELECT integer('0x' || 'DC7');
ERROR: syntax error at or near "(" at character 15
LINE 1: SELECT integer('0x' || 'DC7');
^


From: "Jean-Christophe Arnu" <jcarnu(at)gmail(dot)com>
To: "Stephane Bortzmeyer" <bortzmeyer(at)nic(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Inverse de to_hex ?
Date: 2007-09-05 13:23:04
Message-ID: 5b3af220709050623h48675beet1550ecd9ed5d4119@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Comme l'a pointé Jean-Paul c'est en fait
SELECT x'dc7'::integer;
qui gagne le pompon. :)

Le 05/09/07, Stephane Bortzmeyer<bortzmeyer(at)nic(dot)fr> a écrit :
> On Wed, Sep 05, 2007 at 03:05:48PM +0200,
> Jean-Christophe Arnu <jcarnu(at)gmail(dot)com> wrote
> a message of 22 lines which said:
>
> > Un simple integer('0x'||ma_variable) doit suffire non?
>
> Je ne trouve pas cette fonction "integer" dans la documentation et
> PostgreSQL n'a pas l'air de la connaitre :
>
> essais=> SELECT integer('0x' || 'DC7');
> ERROR: syntax error at or near "(" at character 15
> LINE 1: SELECT integer('0x' || 'DC7');
> ^
>

--
Jean-Christophe Arnu


From: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
To: Jean-Paul Argudo <jean-paul(at)argudo(dot)org>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Inverse de to_hex ?
Date: 2007-09-05 13:47:19
Message-ID: 20070905134719.GA11421@nic.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

On Wed, Sep 05, 2007 at 03:08:13PM +0200,
Jean-Paul Argudo <jean-paul(at)argudo(dot)org> wrote
a message of 18 lines which said:

> http://www.varlena.com/GeneralBits/104.php

Donc, pour résumer, deux solutions que j'ai testées et qui marchent :

1) Une où l'utilisateur doit s'embêter :

SELECT * FROM Machins WHERE foobar = x'07DC'::INTEGER;

2) Une où le programmeur et l'administrateur doivent s'embêter (celle
qui est sur la page ci-dessus et que j'ai cherché à simplifier, mais
en vain) et qui permet de taper :

SELECT * FROM Machins WHERE foobar = hex2dec('07DC');

Merci à tous pour les suggestions.