0

我有 2 个测试 oracle 数据库,每个数据库都包含一个名为部门 (dept_no,dept_name, main_dept_no) 的表,其中每个部门条目通过 MAIN_DEPT_NO 列中的 dept_no 连接到主部门。奇怪的问题是,当我在第一个数据库上执行查询时,我得到 D.DEPT_NO is not available column (D.* all columns from department table) 但它在那里,更奇怪的是这个查询在第二个数据库上工作正常.

我必须在数据库中进行任何设置以便它可以与 connect by 子句一起使用吗?

SELECT SUBSTR(LPAD(' ', 4*(LEVEL))  || '· ' ||DEPT_NAME,1,50)  DEPT_NAME_HY, D.*
FROM PERSONEL.DEPARTMENT D
START WITH MAIN_DEPT_NO IS NULL
CONNECT BY PRIOR DEPT_NO=MAIN_DEPT_NO

谢谢你。

4

2 回答 2

0

为了解决这个问题,我做了如下,

SELECT SUBSTR(LPAD(' ', 4*(LEVEL))  || '· ' ||DEPT_NAME,1,50)  DEPT_NAME_HY, D.DEPT_NO,D.DEPT_NAME,D.MAIN_DEPT_NO  
FROM PERSONEL.DEPARTMENT D
START WITH MAIN_DEPT_NO IS NULL
CONNECT BY PRIOR DEPT_NO=MAIN_DEPT_NO

查询可能在 oracle 11g D.* 中开始工作,以这种方式与 connect by say 一起工作。

于 2012-11-01T10:38:08.833 回答
0

下面的代码解决了这个问题。11.2.0.1 版本中似乎有一个错误,解决方法是:alter session set optimizer_features_enable='11.1.0.7'; (来自 Oracle 支持)

于 2012-11-05T06:04:39.987 回答