我需要从逗号分隔的字符串中提取前两个值,并使用regexp_substr
函数存储在数组变量中。
字符串看起来像'aaa,bbb,ccc,ddd,eee'
。
我需要'aaa'和'bbb'存储到数组中(嵌套表)。
请帮助解决如何实现这一目标。
答案 0 :(得分:2)
这样的事,也许?
DECLARE
TYPE dtype IS TABLE OF VARCHAR2(10);
x dtype := dtype();
s VARCHAR2(100) := 'aaa,bbb,ccc,ddd,eee';
BEGIN
x.extend(2);
x(1) := REGEXP_SUBSTR(s,'[^,]+', 1,1) ;
x(2) := REGEXP_SUBSTR(s,'[^,]+', 1,2) ;
DBMS_OUTPUT.PUT_LINE(x(1));
DBMS_OUTPUT.PUT_LINE(x(2));
END;
/
aaa
bbb
答案 1 :(得分:1)
CREATE TABLE Table1
(name varchar(23))
;
INSERT INTO Table1
(name)
VALUES
('aaa,bbb,ccc,ddd,eee')
;
SELECT SUBSTR(name, 1, Instr(name, ',', 1, 1) -1) AS part1,
SUBSTR(name, Instr(name, ',') + 1,
Instr(name, ',', 1, 2) - Instr(name, ',') - 1) AS part_2
FROM Table1
<强>输出强>
PART1 PART_2
aaa bbb
现场演示