Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate PostgreSQL中from-dual的等价性_Hibernate_Postgresql - Fatal编程技术网

Hibernate PostgreSQL中from-dual的等价性

Hibernate PostgreSQL中from-dual的等价性,hibernate,postgresql,Hibernate,Postgresql,我使用Hibernate和Oracle。我使用了以下代码: if (null != sessionFactory) { Session s = currentSession.get(); if ((null == s) || !s.isOpen()) { s = sessionFactory.openSession(); curren

我使用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;
            }

我想对PostgreSQL做同样的事情,但PostgreSQL不支持“FROM dual”语法。我想知道PostgreSQL中dual的等价性。

您根本不需要
FROM
子句。只需选择1即可。

只需使用
选择1即可。从

Oracle使用“假”双表进行许多选择,在PostgreSQL中,我们可以编写选择,而无需使用部分。此表是在postgres中创建的,旨在缓解移植问题。这使得代码在某种程度上与Oracle SQL保持兼容,而不会干扰Postgres解析器


如果您真的想:

CREATE TABLE dual();

PostgreSQL具有隐式双表,只需编写:

SELECT NOW  ()
Output:    
2019-05-17 13:56:51.120277+02
如果Oracle PL/SQL代码引用的是双 表您可以创建自己的双表:

CREATE TABLE moldb.public.dual (
             column1 bool);

不要忘记在“dual”表中插入一行,这样“Select1fromDual”就可以工作了

如果我一列需要多行怎么办?@Surya:如果你想要多行,你可以打电话给我