我有这个查询在我的表中插入4个新行。我不想要这个。我想插入一行并使用,
分隔值。我怎么能这样做?
INSERT INTO DOCUMENTATION (NAME, VALUE, QUERY, INSERTDATE)
SELECT 'Datafile paths', name, 'select name from V$DATAFILE', SYSDATE
from V$DATAFILE;
答案 0 :(得分:1)
尝试使用“||”连接所有值像:
INSERT INTO DOCUMENTATION (NAME, VALUE, QUERY, INSERTDATE)
SELECT 'Datafile paths' || name || 'select name from V$DATAFILE' || SYSDATE, 'Datafile paths' || name || 'select name from V$DATAFILE' || SYSDATE, 'Datafile paths' || name || 'select name from V$DATAFILE' || SYSDATE, 'Datafile paths' || name || 'select name from V$DATAFILE' || SYSDATE
from V$DATAFILE;
如果只需要选择一行,则需要指定where子句,如:
INSERT INTO DOCUMENTATION (NAME, VALUE, QUERY, INSERTDATE)
SELECT 'Datafile paths', name, 'select name from V$DATAFILE', SYSDATE
FROM V$DATAFILE
WHERE myfield = 'foobar';
答案 1 :(得分:1)
在Oracle中,使用LISTAGG
将多行聚合为一个逗号分隔值:
INSERT INTO DOCUMENTATION (NAME, VALUE, QUERY, INSERTDATE)
SELECT 'Datafile paths',
LISTAGG(name, ', ') WITHIN GROUP (ORDER BY name),
'select name from V$DATAFILE',
SYSDATE
FROM V$DATAFILE;
一如既往地谨防4000个字符的限制......