この列の1つに、JSONデータがテキスト形式で格納されています。私はこの列がキーtimeout_dataための複数の日付を持っているwhomeの行を見つけるためにSQLクエリを記述する必要がOracleデータベース(11g)の列データ内に複数の文字列が存在する正規表現
{
"dummy_time": "2016-04-27T18:44:55+00:00",
"timeout_data": "2016-04-29T16:22:35+00:00,2016-04-30T16:22:35+00:00,2016-05-29T16:22:35+00:00",
"time_id": "T101",
"time_desc": "bla bla bla"
}
:のようなサンプルデータが見えます。私はREGEXでそれほど良いものではありません。
SELECT *
FROM table1 f
WHERE REGEXP_LIKE(f.data, '.+\"timeout_data\": \".+,.+\",\"time_id\".*')
AND ROWNUM<6;
そして、このクエリは年齢以来実行されている:私は、キーtimeout_dataで日付の2つの出現箇所を見つけるために、単純なクエリを書きました。テーブルには約35,000,000行があります。 キーtimeout_dataに複数の日付がどのように見つかるかわかりません。詳細が必要な場合はお知らせください。
Oracleのどのバージョンですか? 12cはJSONクエリをネイティブにサポートしています。 – jva
バージョンは11gです。 – user613114
あなたの正規表現では、2つの異なる文字列、* timeout_data *と* time_id *をチェックしますが、あなたのテキストでは*複数のtimeout_data *について話しますか?正しいものは何ですか? – dnoeth