Sql 什么会导致此查询停止工作?

Sql 什么会导致此查询停止工作?,sql,oracle,jdbc,Sql,Oracle,Jdbc,我正在使用一个从Oracle中提取数据的旧Java应用程序。其中一个查询似乎不再有效: select {hier.*} from ecadmin.dept_hier_cache hier connect by prior parent_deptid = deptid start with deptid = '1234'; 当我从hier.*周围删除{}括号时,一切正常。现在,据我所知,这款应用已经有一年多没有改变了,所以这意味着对甲骨文的改变是最有可能的罪魁祸首。对可能发生的变化有什么看法?版

我正在使用一个从Oracle中提取数据的旧Java应用程序。其中一个查询似乎不再有效:

select {hier.*} from ecadmin.dept_hier_cache hier
connect by prior parent_deptid = deptid
start with deptid = '1234';

当我从hier.*周围删除{}括号时,一切正常。现在,据我所知,这款应用已经有一年多没有改变了,所以这意味着对甲骨文的改变是最有可能的罪魁祸首。对可能发生的变化有什么看法?版本升级,设置被更改,还有其他事情吗?

据我所知,这根本不起作用。它从来都不是有效的语法,我不明白为什么有人会在代码中尝试使用花括号

假设您有源代码管理,我会检查代码是否有过没有括号的版本。如果是这样的话,我会怀疑代码在源代码中被更改了,但从未升级过

该字符串在执行之前可能已被过滤/清理


你能告诉我它什么时候停止工作了吗?那一天发生了什么事?

我看到的关于Oracle和JDBC的花括号语法的唯一信息就在下面。正如Gary所说,我不希望立即执行该查询

但是,潜在的Oracle驱动程序或Oracle版本是否已更改?该表中的列是否已更改,以便
*
现在返回与以前完全不同的内容


dept\hier\u cache
是视图吗?如果是这样的话,视图或用户对该视图的权限是否已更改?

是否可能它从未工作过,但没有人按下过该按钮?不,该按钮肯定是定期按下的…;)代码显然自2006年以来没有更改过,而且{}几乎从CVS历史开始就存在了。我知道,在一系列系统发生变化(公司分裂为两个独立的公司)后,它在2010年初停止工作。我在想oracle DBs可能已经更新到了一个新的版本,或者以某种方式调整了设置……现在我仔细看了一下,可能代码以前从未实际运行过,最近的数据更改可能导致它第一次被调用。如果这从来都不是有效的语法,那么我猜这可能就是发生的事情。啊,使用别人未经测试的代码的乐趣…同意,我已经使用Oracle超过15年了,我从来没有在任何查询中看到过花括号。