T1:
ID Tag Name
001 [country].[Province] Ontario
002 [Country].[City] Toronto
我想从 T1 中选择值并插入到另一个表(T2)并根据省/市添加一些值;样品 T2:
Col1 Col2
Ontario Province
Toronto City
非常感谢!
您可以使用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 ------------------ ---------------------- 安大略省 多伦多市