postgreSQL中from的等价性

fra*_*nco 14 postgresql hibernate

我使用hibernate和oracle

我用过这段代码:

 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;
        }
Run Code Online (Sandbox Code Playgroud)

我想用postgreSQL做同样的事情

但PostgreSQL不支持'FROM dual'语法

我想知道postgreSQL中对偶的等价性

Nic*_*nes 21

你根本不需要一个FROM条款.只是SELECT 1会这样做.

  • 如果我需要一列多行怎么办? (3认同)
  • @Luna你可以`从generate_series(1,5) s(n)中选择n` (2认同)

Pre*_*ric 10

只是用select 1.从文档

Oracle使用"假"双重表许多选择,在PostgreSQL中,我们可以写选择只是没有根本组成部分.此表是在postgres中创建的,以便于移植问题.这允许代码在不破坏Postgres解析器的情况下与Oracle SQL保持一定的兼容性.


Ami*_*jic 8

PostgreSQL 有隐含的 DUAL 表,只需写:

SELECT NOW  ()
Output:    
2019-05-17 13:56:51.120277+02
Run Code Online (Sandbox Code Playgroud)

如果您的 Oracle PL/SQL 代码引用 DUAL 表,您可以创建自己的 DUAL 表:

CREATE TABLE moldb.public.dual (
             column1 bool);
Run Code Online (Sandbox Code Playgroud)


小智 5

不要忘记在“双”表中插入一行,这样才能使“SELECT 1 FROM DUAL”起作用!