2016-11-26 60 views
-3

我有Oracle 10g。 這是json的字符串:[{ "id": "1.00", "contactBy": "Rajesh Kumar"}, { "id": "2.00", "contactBy": "Rakesh Kumar"}]。 我可以同時獲得兩列和一行嗎?Oracle中的json 10 g

select regexp_replace(regexp_substr('[{"id": "1.00", "contactBy":"Rajesh Kumar"} 
            ,{"id": "2","contactBy": "Emmanuel Test"}]' 
            , '"contactBy":\s*("(\w|)")', 1, level) 
            , '"contactBy":\s"((\w|))"', '\1', 1, 1) contact 
from dual 
connect by regexp_substr('[{"id": "1","contactBy":"Rajesh Kumar"} 
         ,{"id": "2","contactBy": "Emmanuel Test"}]' 
         , '"contactBy":\s("(\w|)*")', 1, level) is not null 
+0

1)什麼* 「十進制數字符(112000)」 *? 2)你正在從'DUAL'中選擇,那麼你指的是什麼*「兩列或更多的任何列和行」*? 'DUAL'恰好有一列和一列。 – Andreas

+0

根據要求,我想進入該 –

+0

您的評論是更沒有意義的問題。進入*什麼*?而你甚至沒有回答我的第一個問題:什麼*「十進制字符數」*? – Andreas

回答

0

這就是答案:

select regexp_replace(regexp_substr('[{"id": "1.00", "contactBy":"Rajesh Kumar"},{"id": "2","contactBy": "Emmanuel Test+-"}]', 
            '"contactBy":\s*(".*?")', 1, level), 
         '"contactBy":\s*"(.*?)"', '\1', 1, 1) contact, 
     regexp_replace(regexp_substr('[{"id": "1.00", "contactBy":"Rajesh Kumar"},{"id": "2","contactBy": "Emmanuel Test+-"}]', 
            '"id":\s*(".*?")', 1, level), 
         '"id":\s*"(.*?)"', '\1', 1, 1) contact    
from dual 
connect by regexp_substr('[{"id": "1","contactBy":"Rajesh Kumar"},{"id": "2","contactBy": "Emmanuel Test+-"}]', '"contactBy":\s*(".*?")', 1, level) is not null;