0

次のようなテーブルがあります。

with tab as(
select 'P710345,P345123 are not valid' m from dual
union all
select 'P901236,P234098,P675001 are not valid' m from dual)
select * from tab

必要なのは、で始まる文字列を抽出しP、これらの文字列を同じ行の新しい列に配置することです。

最終結果:

P710345,P345123 are not valid         | P710345 | P345123 |        |
P901236,P234098,P675001 are not valid | P901236 | P234098 |P675001 |

私は抽出しようとしましたregexp_substr

with tab as(
select 'P710345,P345123 are not valid' m from dual
union all
select 'P901236,P234098,P675001 are not valid' m from dual )
select regexp_substr (m,'P\d\w+','2') b from tab

私は現在ここで立ち往生しています。

4

1 に答える 1

0

私が見つけた最も簡単な回避策は、csv を作成してインポートするか、スピードシート プログラムで使用することでした

SELECT CONCAT(
  "'", m, "';'", 
  REPLACE(
     SUBSTR(m, 1, POSITION(' ' IN m)), 
     ',', 
     "';'"), 
  "';") 
FROM ( SELECT 'P710345,P345123 are not valid' AS m FROM DUAL UNION ALL SELECT 'P901236,P234098,P675001 are not valid' AS m FROM DUAL) AS t;
于 2013-07-30T16:13:10.630 に答える