0

T1:

ID      Tag                     Name 
001     [country].[Province]    Ontario
002     [Country].[City]        Toronto

T1 から値を選択して別のテーブル (T2) に挿入し、州/都市に基づいていくつかの値を追加したいと考えています。サンプル T2:

Col1       Col2      
Ontario    Province 
Toronto    City

どうもありがとう!

4

1 に答える 1

1

regexp_substrの一部を取得するために使用できます。TAG

CREATE TABLE t1 (
  id VARCHAR2(3),
  tag VARCHAR2(40),
  name VARCHAR2(40)
);

INSERT INTO t1 VALUES ('001', '[country].[Province]', 'Ontario');
INSERT INTO t1 VALUES ('002', '[country].[City]', 'Toronto');

COMMIT;

CREATE TABLE t2 (
  col1 VARCHAR2(40),
  col2 VARCHAR2(40)
);

Oracle 10g を使用している場合:

INSERT INTO t2
  SELECT name,
         rtrim(
           ltrim(
             regexp_substr(tag, '[[][a-zA-Z]*[]]', 1, 2),
             '['),
           ']') FROM t1;

Oracle 11g を使用している場合:

INSERT INTO t2
  SELECT name, regexp_substr(tag, '[[]([a-zA-Z]*)[]]', 1, 2, NULL, 1) FROM t1;

テスト:

SELECT * FROM t2;

出力:

COL1 COL2                 
------------------- ----------------------
オンタリオ州               
トロント市
于 2013-11-13T21:00:25.987 に答える