Lists: | Postg사설 토토 사이트SQL |
---|
From: | Pierre BOIZOT <pierre(dot)boizot(at)gmail(dot)com> |
---|---|
To: | PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Oracle vers postgresql : Conversion de code : questions |
Date: | 2013-08-25 16:44:58 |
Message-ID: | CANxSh5yFm3boGLhM2ug=gF_SFGs-SKxNwtOWuUOZi8fbV6njXA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
Bonjour,
ora2pg m'a permis de migrer vers pg 100 % de mes tables 99% des indexes ....
J'ai poursuivi l'analyse des erreurs lors de la création des vues .
Le gros des erreurs provient des jointure externes , 130 à traiter ....
voici deux exemples de code à convertir sur lequel je suis tombé.
*1 Cacul d'une date date d'échéance.*
DA_TRANSACTION est une date et J_ACCUSE_RECEPTION un integer ( nombre de
jour).
Sous oracle se calcul comme cela :
P.DA_TRANSACTION + P.J_ACCUSE_RECEPTION
je n'ai pas trouvé mieux que
abstime( int4(abstime(HP.DA_TRANSACTION::timestamp))+ P.J_ACCUSE_RECEPTION
*86400 )
Je ne trouve pas cela trés élégant ;-(
*2 expression dans une clause where :*
Encore une histoire de date avec les mêmes colonnes ...
Oracle
(LOCALTIMESTAMP - (HP.DA_TRANSACTION) > P.J_ACCUSE_RECEPTION
PostgreSQL
( int4(abstime(LOCALTIMESTAMP))) - (int4(abstime(HP.DA_TRANSACTION))) <
P.J_ACCUSE_RECEPTION*86400
Avez-vous autres solutions?
Changer le contenu de la colonne
A
+
Pierre.
G+ <https://plus.google.com/u/0/107377830070954284209/about>
From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
---|---|
To: | Pierre BOIZOT <pierre(dot)boizot(at)gmail(dot)com> |
Cc: | PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: Oracle vers postgresql : Conversion de code : questions |
Date: | 2013-08-25 17:37:31 |
Message-ID: | 1377452251.2443.20.camel@localhost.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
On Sun, 2013-08-25 at 18:44 +0200, Pierre BOIZOT wrote:
> Bonjour,
>
> ora2pg m'a permis de migrer vers pg 100 % de mes tables 99% des indexes ....
> J'ai poursuivi l'analyse des erreurs lors de la création des vues .
>
> Le gros des erreurs provient des jointure externes , 130 à traiter ....
>
> voici deux exemples de code à convertir sur lequel je suis tombé.
>
> *1 Cacul d'une date date d'échéance.*
>
> DA_TRANSACTION est une date et J_ACCUSE_RECEPTION un integer ( nombre de
> jour).
>
> Sous oracle se calcul comme cela :
> P.DA_TRANSACTION + P.J_ACCUSE_RECEPTION
>
> je n'ai pas trouvé mieux que
>
> abstime( int4(abstime(HP.DA_TRANSACTION::timestamp))+ P.J_ACCUSE_RECEPTION
> *86400 )
>
> Je ne trouve pas cela trés élégant ;-(
>
Parce que ça ne l'est pas :)
Ceci est plus élégant à priori :
postgres=# select '2013-01-01'::date + 132 * interval '1 day';
?column?
---------------------
2013-05-13 00:00:00
(1 row)
Ça donnerait donc :
P.DA_TRANSACTION + P.J_ACCUSE_RECEPTION * interval '1 day'
> *2 expression dans une clause where :*
> Encore une histoire de date avec les mêmes colonnes ...
>
> Oracle
> (LOCALTIMESTAMP - (HP.DA_TRANSACTION) > P.J_ACCUSE_RECEPTION
>
> PostgreSQL
> ( int4(abstime(LOCALTIMESTAMP))) - (int4(abstime(HP.DA_TRANSACTION))) <
> P.J_ACCUSE_RECEPTION*86400
>
> Avez-vous autres solutions?
>
Même réponse :
LOCALTIMESTAMP > HP.DA_TRANSACTION + P.J_ACCUSE_RECEPTION * interval '1
day'
--
Guillaume
http://blog.guillaume.lelarge.info
http://www.dalibo.com
From: | Pierre BOIZOT <pierre(dot)boizot(at)gmail(dot)com> |
---|---|
To: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
Cc: | PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: Oracle vers postgresql : Conversion de code : questions |
Date: | 2013-08-25 20:26:01 |
Message-ID: | CANxSh5xPTB0Ssv_LaPthVqNQFV2feJaPA6B+4HRo7MV_0pSFHw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg사설 토토 사이트SQL |
Merci,
J ai encore du travail :-)
Pierre
Le 25 août 2013 19:37, "Guillaume Lelarge" <guillaume(at)lelarge(dot)info> a
écrit :
> On Sun, 2013-08-25 at 18:44 +0200, Pierre BOIZOT wrote:
> > Bonjour,
> >
> > ora2pg m'a permis de migrer vers pg 100 % de mes tables 99% des indexes
> ....
> > J'ai poursuivi l'analyse des erreurs lors de la création des vues .
> >
> > Le gros des erreurs provient des jointure externes , 130 à traiter ....
> >
> > voici deux exemples de code à convertir sur lequel je suis tombé.
> >
> > *1 Cacul d'une date date d'échéance.*
> >
> > DA_TRANSACTION est une date et J_ACCUSE_RECEPTION un integer ( nombre de
> > jour).
> >
> > Sous oracle se calcul comme cela :
> > P.DA_TRANSACTION + P.J_ACCUSE_RECEPTION
> >
> > je n'ai pas trouvé mieux que
> >
> > abstime( int4(abstime(HP.DA_TRANSACTION::timestamp))+
> P.J_ACCUSE_RECEPTION
> > *86400 )
> >
> > Je ne trouve pas cela trés élégant ;-(
> >
>
> Parce que ça ne l'est pas :)
>
> Ceci est plus élégant à priori :
>
> postgres=# select '2013-01-01'::date + 132 * interval '1 day';
> ?column?
> ---------------------
> 2013-05-13 00:00:00
> (1 row)
>
> Ça donnerait donc :
>
> P.DA_TRANSACTION + P.J_ACCUSE_RECEPTION * interval '1 day'
>
> > *2 expression dans une clause where :*
> > Encore une histoire de date avec les mêmes colonnes ...
> >
> > Oracle
> > (LOCALTIMESTAMP - (HP.DA_TRANSACTION) > P.J_ACCUSE_RECEPTION
> >
> > PostgreSQL
> > ( int4(abstime(LOCALTIMESTAMP))) - (int4(abstime(HP.DA_TRANSACTION))) <
> > P.J_ACCUSE_RECEPTION*86400
> >
> > Avez-vous autres solutions?
> >
>
> Même réponse :
>
> LOCALTIMESTAMP > HP.DA_TRANSACTION + P.J_ACCUSE_RECEPTION * interval '1
> day'
>
>
> --
> Guillaume
> http://blog.guillaume.lelarge.info
> http://www.dalibo.com
>
>