如何在Excel中将多列单元格值拼接为Oracle导入格式?
解决Excel生成Oracle导入格式字符串的问题
方法1:用TEXTJOIN函数(Excel 2019/365及以上版本推荐)
直接用TEXTJOIN可以更简洁地实现需求,公式如下(假设从第2行开始处理数据行):
=TEXTJOIN("','", TRUE, "'"&SUBSTITUTE(A2,"'","''")&"'", "'"&SUBSTITUTE(B2,"'","''")&"'", "'"&SUBSTITUTE(C2,"'","''")&"'", "'"&SUBSTITUTE(D2,"'","''")&"'", "'"&SUBSTITUTE(E2,"'","''")&"'", "'"&SUBSTITUTE(F2,"'","''")&"'", "'"&SUBSTITUTE(G2,"'","''")&"'", "'"&SUBSTITUTE(H2,"'","''")&"'", "'"&SUBSTITUTE(I2,"'","''")&"'", "'"&SUBSTITUTE(J2,"'","''")&"'", "'"&SUBSTITUTE(K2,"'","''")&"'")
- 细节说明:
TEXTJOIN("','", TRUE, ...):用','作为列值的分隔符,TRUE参数会自动忽略空单元格SUBSTITUTE(单元格,"'","''"):把单元格里的单个单引号替换成双引号——Oracle要求用两个单引号转义单个单引号,避免导入时出现语法错误- 每个单元格前后拼接单引号,最终生成符合Oracle导入要求的格式
方法2:用CONCAT函数(适配旧版Excel)
如果你的Excel版本不支持TEXTJOIN,用CONCAT逐个拼接内容即可,公式如下:
=CONCAT("'",SUBSTITUTE(A2,"'","''"),"','",SUBSTITUTE(B2,"'","''"),"','",SUBSTITUTE(C2,"'","''"),"','",SUBSTITUTE(D2,"'","''"),"','",SUBSTITUTE(E2,"'","''"),"','",SUBSTITUTE(F2,"'","''"),"','",SUBSTITUTE(G2,"'","''"),"','",SUBSTITUTE(H2,"'","''"),"','",SUBSTITUTE(I2,"'","''"),"','",SUBSTITUTE(J2,"'","''"),"','",SUBSTITUTE(K2,"'","''"),"'")
- 之前你用CONCAT失败的原因是直接写了
'A'这类固定字符,正确的做法是引用实际数据单元格(比如A2),同时处理单引号转义和分隔符拼接。
后续操作
公式输入完成后,下拉填充到所有数据行,复制生成的整列内容,就可以直接用于Oracle的INSERT语句,或者保存为文本文件进行批量导入。
内容的提问来源于stack exchange,提问作者svk
相关产品推荐
相关产品推荐

