【发布时间】:2016-12-13 12:33:43
【问题描述】:
我有一个包含 [FileId, FileName, FileUrl] 列的表。 我在我的 INSERT 存储过程的输入参数中将 FileName 和 FileUrl 作为逗号分隔的字符串 (v_FileName, v_FileUrl) 获取,并且 FileId 是自动递增的。 如果我使用 regexp_split_to_table 一次,则 FileName 的记录插入成功,如下所示:
INSERT INTO MYTABLE
SELECT nextval('mytable_fileid_seq'),
,regexp_split_to_table
,'testurl'
FROM regexp_split_to_table(v_FileName, E',')
这会成功地为 v_FileName 参数中的所有文件名插入行,并像上面的测试脚本一样为 fileurl 设置“testurl”。
我的问题是,是否也可以在这样的单行中使用 regexp_split_to_table 为 v_FileUrl 参数设置 FileUrl ?我试过了,但它给出了错误“regexp_split_to_table is used more than once”之类的错误。 (可能是我没有正确使用它。)
或者建议我以任何其他方式插入具有此类输入参数的记录。
提前致谢。
【问题讨论】:
-
目前还不清楚您要达到的目标。您能否提供一个输入示例,以及您期望得到什么?我不太确定你是否得到了几个文件名、几个 url,每个......?
-
好的。假设我有一个带有 2 个文本类型输入参数的函数,如前所述。参数 v_FileName 可能包含值:'file1.jpeg,file2.pdf,file3.doc'。同时 v_FileUrl 可能有:'www.abc.com/file1.jpeg,www.abc.com/file2.pdf,www.file3.doc'。使用此数据,代码应在表中插入 3 行,并在相应的列中插入相应的值。
标签: postgresql multiple-columns bulkinsert insert-into