17,086
社区成员
发帖
与我相关
我的任务
分享
-- 加一个 PK 列
with TEST2 as
(select 'COL1,COL2' as col_name, 1 id
from dual
union all
select 'col3,col4', 2
from dual
)
SELECT 'TEST2' TABLE_NAME,
REGEXP_SUBSTR(col_name, '[^,]+', 1, LEVEL) COLUMN_NAME
FROM TEST2
CONNECT BY PRIOR id = id
and LEVEL <= regexp_count(col_name,',') + 1
and PRIOR DBMS_RANDOM.VALUE IS NOT NULL
[/quote]
多列分割呢
with TEST2 as
(select 'COL1,COL2' as col_name
from dual
union all
select 'col3,col4'
from dual)
SELECT 'TEST2' TABLE_NAME,
REGEXP_SUBSTR(TEST2.col_name, '[^,]+', 1, LEVEL) COLUMN_NAME
FROM DUAL
CONNECT BY LEVEL <= LENGTH(REGEXP_REPLACE(TEST2.col_name, '[^,]+')) + 1
AND PRIOR sysdate IS NOT NULL;
报错Test2.col_name 无效定义。。。是哪里弄错了吗
-- 加一个 PK 列
with TEST2 as
(select 'COL1,COL2' as col_name, 1 id
from dual
union all
select 'col3,col4', 2
from dual
)
SELECT 'TEST2' TABLE_NAME,
REGEXP_SUBSTR(col_name, '[^,]+', 1, LEVEL) COLUMN_NAME
FROM TEST2
CONNECT BY PRIOR id = id
and LEVEL <= regexp_count(col_name,',') + 1
and PRIOR DBMS_RANDOM.VALUE IS NOT NULL
with TEST2 as
(select 'COL1,COL2' as col_name
from dual
union all
select 'col3,col4'
from dual)
SELECT distinct 'TEST2' TABLE_NAME,
REGEXP_SUBSTR(col_name, '[^,]+', 1, LEVEL) COLUMN_NAME
FROM TEST2
CONNECT BY LEVEL <= LENGTH(REGEXP_REPLACE(col_name, '[^,]+')) + 1
and PRIOR DBMS_RANDOM.VALUE IS NOT NULL;
TABLE_NAME COLUMN_NAME
1 TEST2 COL2
2 TEST2 COL1
3 TEST2 col4
4 TEST2 col3
加了一个distinct,是不是感觉有点硬凑啊。另外标红处去掉,结果也是一样的。。