web-dev-qa-db-fra.com

équivalence de de dual dans postgreSQL

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

14
franco

Vous n'avez absolument pas besoin d'une clause FROM. Juste SELECT 1 le fera.

27
Nick Barnes

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.

10
Predrag Maric

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);
6
Amit Vujic

Créez-en un, si vous voulez vraiment:

CREATE TABLE dual();
2
Frank Heikens