PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Général » Booléens et numerics » 29/05/2009 11:17:30

Rabbit
Réponses : 1

Bonjour,

J'ai actuellement un problème lors de mises à jour de ma base de données par mon application.
Je m'explique:
J'ai des champs de type numeric dans ma base de données, or ces champs sont utilisées comme des booléens (0,1 ou NULL).
Ces champs sont mappés comme booléens sous Hibernate, donc au moment de l'update j'ai une erreur de cast.

Il serait trop long de modifier le mapping ou les types des colonnes, donc j'aimerais savoir s'il existait une autre méthode.

En cherchant sur le net, j'ai trouvé la propriété "hibernate.query.substitutions" mais cela ne fonctionne pas...
J'avais aussi penser à surcharger l'opérateur d'affectation, mais je n'ai pas réussi.

Toute aide serait la bienvenue!

#2 Re : Général » Hibernate » 28/05/2009 10:55:28

En fait l'erreur venait de l'application et pas de Hibernate... j'ai corrigé tout ça et l'appli se lance à présent.
Merci pour votre aide!

#3 Re : Général » Hibernate » 27/05/2009 14:44:27

Oui, les erreurs se produisent au démarrage.
Je pense que l'erreur qui fait planter est celle-ci:

%t ERROR:  syntax error at or near "session" at character 7
%t STATEMENT:  alter session set nls_date_format='DD/MM/YYYY'

#4 Re : Général » Hibernate » 27/05/2009 12:15:46

Bonjour,

Je n'arrive toujours pas à lancer Hibernate avec PostgreSQL.
Quand je regarde le log de PostgreSQL, j'ai une erreur qui se répète:

%t ERROR:  current transaction is aborted, commands ignored until end of transaction block
%t STATEMENT:  SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM, c.relname AS TABLE_NAME,  CASE n.nspname ~ '^pg_' OR n.nspname = 
'information_schema'  WHEN true THEN CASE  WHEN n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' THEN CASE c.relkind   WHEN 'r' THEN 'SYSTEM 
TABLE'   WHEN 'v' THEN 'SYSTEM VIEW'   WHEN 'i' THEN 'SYSTEM INDEX'   ELSE NULL   END  WHEN n.nspname = 'pg_toast' THEN CASE c.relkind   WHEN 'r' THEN 
'SYSTEM TOAST TABLE'   WHEN 'i' THEN 'SYSTEM TOAST INDEX'   ELSE NULL   END  ELSE CASE c.relkind   WHEN 'r' THEN 'TEMPORARY TABLE'   WHEN 'i' THEN 
'TEMPORARY INDEX'   ELSE NULL   END  END  WHEN false THEN CASE c.relkind  WHEN 'r' THEN 'TABLE'  WHEN 'i' THEN 'INDEX'  WHEN 'S' THEN 'SEQUENCE'  WHEN 'v' 
THEN 'VIEW'  ELSE NULL  END  ELSE NULL  END  AS TABLE_TYPE, d.description AS REMARKS  FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c  LEFT JOIN 
pg_catalog.pg_description d ON (c.oid = d.objoid AND d.objsubid = 0)  LEFT JOIN pg_catalog.pg_class dc ON (d.classoid=dc.oid AND dc.relname='pg_class')  LEFT JOIN 
pg_catalog.pg_namespace dn ON (dn.oid=dc.relnamespace AND dn.nspname='pg_catalog')  WHERE c.relnamespace = n.oid  AND c.relname LIKE 'PROBABLYNOT'  
AND (false  OR ( c.relkind = 'r' AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema' ) )  ORDER BY TABLE_TYPE,TABLE_SCHEM,TABLE_NAME

Je ne sais pas d'où elle provient...

#5 Général » Hibernate » 19/05/2009 11:25:44

Rabbit
Réponses : 7

Bonjour à tous,

J'ai actuellement un problème pour faire fonctionner mon application avec hibernate.

lorsque je lance l'appli, je trouve dans le fichier stdout l'erreur suivante:

ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: current transaction is aborted, commands ignored until end of transaction block

Je pense que ça vient de l'autocommit de Postgre mais je n'arrive pas à le désactiver. J'ai lu quelque part que c'était impossible sur les dernières versions...
J'aimerais bien pouvoir faire fonctionner tout ça sans modifier le code de mon appli qui fonctionnait sous Oracle...

Merci par avance de votre aide.

#6 Re : Migration » Migration vues Oracle » 04/05/2009 15:11:30

Merci, j'ai réussi à trouver toutes les information dans ces tables, par contre maintenant j'aimerais filtrer et récupérer seulement les colonnes indexées...

[edit] En fait j'ai trouvé la colonne indkey de pg_index qui référence les colonnes indexées, mais j'arrive pas a utiliser le type in2vector

[edit2] Finalement j'ai trouvé, ça s'utilise comme un tableau (indkey[1],indkey[2]...)

Bon du coup j'ai réussi à migrer cette vue! smile

#7 Re : Migration » Migration vues Oracle » 04/05/2009 11:56:05

J'ai besoin des noms des tables, colonnes, positions des colonnes et propriétaire de la table et de l'index.

#8 Migration » Migration vues Oracle » 04/05/2009 10:28:25

Rabbit
Réponses : 4

Bonjour à tous,

J'ai de nouveau un problème pour la migration de mes vues d'Oracle vers Postgre.
En effet, une de mes vue fait appel à la table ALL_IND_COLUMNS d'Oracle et la joint à la table ALL_SYNONYMS avec les clés TABLE_NAME et TABLE_OWNER.
Je n'ai pour l'instant trouvé aucun équivalent sous Postgre.
La table Information_schema.columns me semblait intéressante mais il n'y a pas moyen de récupérer le propriétaire...

Si vous aviez quelques pistes je vous en serais très reconnaissant!

#9 Re : Général » Migration de vues » 29/04/2009 10:47:12

Effectivement, c'est bien un problème de casse. J'ignorais l'utilité des double-quote, je me coucherai moins bête ce soir smile

#10 Re : Général » Migration de vues » 29/04/2009 10:32:13

En fait je crois avoir trouvé l'origine de mon problème.
J'avais oublié d'enlever les double-quote autour du nom de la vue, il semblerait que ça vienne de ça (je saurais pas dire pourquoi d'ailleurs... tongue)
A présent il reconnait ma vue.
Désolé pour le dérangement et merci pour cette réponse rapide!

#11 Général » Migration de vues » 29/04/2009 10:08:33

Rabbit
Réponses : 4

Bonjour à tous,

Je suis actuellement en train de faire une migration d'Oracle vers Postgre et je rencontre quelques problèmes avec mes vues.
Certaines vues utilisent d'autres vues dans des jointures et postgre n'a pas l'air d'apprécier, alors que ça fonctionne parfaitement sous Oracle...
En gros ça donne ça:

CREATE OR REPLACE VIEW ma_vue AS 
SELECT  ma_table.donnee           
FROM mon_autre_vue
LEFT OUTER JOIN ma_table ON mon_autre_vue.cle_etrangere=ma_table.cle_primaire;

Postgre me retourne cette erreur:
ERROR: relation "mon_autre_vue" does not exist
État SQL :42P01


Merci de votre aide!

Pied de page des forums

Propulsé par FluxBB