我有一些我正在尝试修复的代码,并且在CallableStatement
中使用了一个函数,但似乎在一个特定的实例中调用了该函数,其中数据库的Schema成为整个'可见的'功能数据库。
让我解释一下:
我的数据库(在PostgreSQL中)有多个项目(模式),例如i2b2test_project
或i2b2test_project2
。每个项目都有多个表的体系结构,例如visit_dimension
,patient_dimension
等。
现在,如果我想从visit_dimension
引用i2b2test_project
表,我需要使用i2b2test_project.visit_dimension
,正如任何逻辑SQL语法所暗示的那样。
问题是,在代码(我将在下面包含)中,CallableStatement
用于执行一个函数(普通的旧的load-table-from-temp-table函数)。此函数引用上面提到的体系结构,就好像只存在一个项目一样,作为数据库。换句话说,它不是引用i2b2test_project.visit_dimension
,而是仅引用visit_dimension
。
我还没有找到在数据库的某种“分离实例”中执行函数的方法,因此,该函数不能在DB终端内的普通SQL语句中使用,如{等{ {1}}等等。
所以我问:call语句(确实似乎引用了模式)是否允许数据库的这种“分离实例”?有没有办法用简单的SQL语句来做到这一点?
代码:
visit_dimension table does not exist