2017-06-15 59 views
1

如果你看到下面的查詢:JSON_TABLE沒有給預期的結果,其中在Oracle 12c中第

SELECT value1, value2 
FROM json_table('["content", "duration"]', '$[*]' 
COLUMNS (value1 PATH '$' 
) 
),json_table('["check"]', '$[*]' 
COLUMNS (value2 PATH '$' 
) 
) 

它將返回2行的結果:

Value1 Value2 

content check 

duration check 

當我把一個WHERE子句和篩選「內容」,如下:

SELECT value1, value2 
FROM json_table('["content", "duration"]', '$[*]' 
COLUMNS (value1 PATH '$' 
) 
),json_table('["check"]', '$[*]' 
COLUMNS (value2 PATH '$' 
) 
) 
where value1 = 'content' 

它給一個行作爲結果:

Value1 Value2 

content check 

但是,如果我使用持續時間過濾它不返回任何行。我期待一行被退回。任何想法這裏有什麼錯誤?

SELECT value1, value2 
FROM json_table('["content", "duration"]', '$[*]' 
COLUMNS (value1 PATH '$' 
) 
),json_table('["check"]', '$[*]' 
COLUMNS (value2 PATH '$' 
) 
) 
where value1 = 'duration' 
+0

看起來像一個錯誤。您應該可以向Oracle提出服務請求。 –

回答

0

這是12.1.0.2中的一個錯誤。 固定在12.2.0.1。 它可能被固定在補丁集中。你有沒有安裝最新的Bundle Patch Set?