2016-04-21 60 views
0

我有输入用1个可变输入PL/SQL在db中插入多行?

var1,var2,var3

,我需要插入或更新到3行的表与分裂“”我怎么做,谢谢

+1

你应该去这里:[在Oracle中将字符串拆分成多行](http://stackoverflow.com/questions/14328621/splitting-string-into-multiple-rows-in-oracle)。请在提问前进行搜索。 –

回答

2

如果我理解你的问题正确地,您希望从一个输入文本行中创建三行,这些行由一些分隔符分隔。你可以用Regex_substr

做到这一点
CREATE TABLE TEST AS ( 
SELECT REGEXP_SUBSTR ('var1,var2,var3','[^,]+',1 ,LEVEL) values 
FROM DUAL 
CONNECT BY REGEXP_SUBSTR ('var1,var2,var3','[^,]+' ,1 ,LEVEL) IS NOT NULL) 

,只是插入的跟进:

INSERT INTO TEST (
SELECT REGEXP_SUBSTR ('var1,var2,var3', '[^,]+',1,LEVEL) VALUES 
FROM DUAL 
CONNECT BY REGEXP_SUBSTR ('var1,var2,var3','[^,]+' ,1 ,LEVEL) IS NOT NULL) 

对于你需要的操作有什么更具体的更新(前 - 后>)应完成