Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
使用HQL向Oracle或SQL Server调用表函数_Sql_Sql Server_Oracle_Hibernate - Fatal编程技术网

使用HQL向Oracle或SQL Server调用表函数

使用HQL向Oracle或SQL Server调用表函数,sql,sql-server,oracle,hibernate,Sql,Sql Server,Oracle,Hibernate,在我的java应用程序中,我正在编写TSQL查询,以便只查询SQL服务器。 后来,项目的需求发生了变化,我需要能够查询Oracle数据库。为此,我在HQL中重新编写了TSQL查询 在这种情况下,HQL应该同时在Sql Server数据库和Oracle数据库上运行 在迁移TSQL查询时,我遇到了一个问题。为了调用在PL/SQL中返回表的函数,需要将该函数包装到表函数中 SELECT * FROM TABLE(MyFunction(1)) 另一方面,在TSQL中,您可以只调用查询中的函数 SELE

在我的java应用程序中,我正在编写TSQL查询,以便只查询SQL服务器。 后来,项目的需求发生了变化,我需要能够查询Oracle数据库。为此,我在HQL中重新编写了TSQL查询

在这种情况下,HQL应该同时在Sql Server数据库和Oracle数据库上运行

在迁移TSQL查询时,我遇到了一个问题。为了调用在PL/SQL中返回表的函数,需要将该函数包装到表函数中

SELECT * FROM TABLE(MyFunction(1))
另一方面,在TSQL中,您可以只调用查询中的函数

SELECT * FROM MyFunction(1)

如何处理HQL中的函数调用?或者,有没有办法在标准SQL中调用该函数,使其可以在两个数据库上运行?

我过去曾处理过此类问题。我写了自己的
方言
扩展类。但现在我使用QueryDSL,这会使一切变得更简单。