T1:
ID Tag Name
001 [country].[Province] Ontario
002 [Country].[City] Toronto
我想从T1中选择值并插入另一个表(T2)并根据省/市添加一些值; 样本T2:
Col1 Col2
Ontario Province
Toronto City
非常感谢!
答案 0 :(得分: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 ------------------- ---------------------- Ontario Province Toronto City