2

外部選択行変数をオラクルの内部選択に渡す方法は次のとおりです。サンプル クエリを次に示します (他の外部結合は削除されています。このクエリは、アプリケーションの有効期間中に 1 回読み込まれます)。このクエリは機能します

select  l5.HIERARCHY_ID,
    (select wm_concat(isbn) isbns from (
        select  op.isbn from oproduct op
        LEFT JOIN  assignment ha on  op.r.reference = ha.reference
        where ha.hierarchy_id =  '100589'))isbns 
from level l5 where l5.gid = '1007500000078694'

しかし、内部選択のwhere句を変更すると

where ha.hierarchy_id =  '100589'))isbns 
to
where ha.hierarchy_id =  l5.HIERARCHY_ID))isbns  

次のエラー ORA-00904 が表示されます: "L5"."HIERARCHY_ID": 無効な識別子

4

3 に答える 3

5

2nd level の値を渡すことはできませんSELECT

例えば ​​-

SELECT value1  -- 1st level select
FROM (
      SELECT value2  -- 2nd level select
      FROM ( 
            SELECT value3  -- 3rd level select.

第 1 レベルの値をSELECT第 2 レベルでのみ使用できますSELECT。同様に、第 2 レベルの値は第SELECT1 レベルでのみ使用でき、SELECT第 3 レベルSELECTはそれ以上では使用できません。

于 2012-06-06T21:24:07.353 に答える
1

私は問題を解決するためにこのようなことをしました。不要な選択が 1 つありました

select  
  l5.HIERARCHY_ID,
  (
    select  
      wm_concat(op.isbn) 
    from 
      oproduct op
      LEFT JOIN assignment ha on op.r.reference = ha.reference
    where ha.hierarchy_id =  l5.HIERARCHY_ID
  ) ISBNS
from 
  level l5 
where 
  l5.gid = '1007500000078694'
于 2012-06-12T19:04:17.427 に答える