Je travaille avec hibernate et Oracle
J'ai utilisé ce code:
if (null != sessionFactory) {
Session s = currentSession.get();
if ((null == s) || !s.isOpen()) {
s = sessionFactory.openSession();
currentSession.set(s);
} else {
try {
HibernateWork hibernateWork = new HibernateWork("SELECT 1 FROM DUAL");
s.doWork(hibernateWork);
} catch (Exception e) {
s = sessionFactory.openSession();
currentSession.set(s);
}
}
return s;
}
Je veux faire la même chose avec postgreSQL
mais PostgreSQL ne prend PAS en charge la syntaxe ‘FROM dual’
Je veux savoir l'équivalence de dual dans postgreSQL
Vous n'avez absolument pas besoin d'une clause FROM
. Juste SELECT 1
le fera.
Utilisez simplement select 1
. De documentation
Oracle utilise la "fausse" table double pour de nombreuses sélections, où dans PostgreSQL nous pouvons écrire sélectionner juste sans à partir de partie du tout. Cette table a été créée dans postgres afin de faciliter les problèmes de portage. Cela permet au code de rester quelque peu compatible avec Oracle SQL sans gêner l'analyseur Postgres.
PostgreSQL a une table DUAL implicite, écrivez simplement:
SELECT NOW ()
Output:
2019-05-17 13:56:51.120277+02
Dans le cas où votre code Oracle PL/SQL fait référence à une table DUAL, vous pouvez créer votre propre table DUAL:
CREATE TABLE moldb.public.dual (
column1 bool);
Créez-en un, si vous voulez vraiment:
CREATE TABLE dual();