需求:
当我们需要把Excel中的数据(成百上千、成千上万条…)全部导入到数据库中,一条条写sql语句明显不理智,于是我们可以使用excel函数拼接sql语句,然后往下拉的方式自动拼接所有sql,批量复制到oracle编辑器;
解决步骤:
1、像下面这种简单的需求,不需要转化的,可以直接拼接insert语句;
1.1 直接在相应的空栏下面写sql,然后拖出“十字形”往下拉,让他自动赋值;
1.2:最后把得到的这一列sql全部粘贴到sql编辑器;
2、像有些复杂些的sql,就需要用到=CONCATENATE()函数,把需要做替换的列值拼接在sql里,依次往下拉,最后得到结果;
注意:这里要强调下,上图的L3和M3列需要用字符串的形式,连接的时候有上下引号的,需要用英文“,”开头,标注该列为字符串形式,否则会一直报错(或者拼接出来的sql里面会不出现引号);
3、最后把该列拼接好的sql复制到对应的sql编辑器;
4、这里以Dbeaver为例,需要全选sql,然后右击出“执行sql脚本”才能全部执行sql语句,否则会只执行最头上的语句;
实例代码:
="INSERT INTO T_DRILL_GOODS_GET(IID,DEPT,AREA,STATION,DEPT_CODE,AREA_CODE,STATION_CODE,SUBMIT_MAN,GOODS_CODE,GOODS_NAME,VERSION,NUM,UNITS,STORE_POSITION1,OUT_DATE,REC_STATUS) VALUES('"&B2&"','"&C3&"','"&D2&"','"&E2&"','"&F2&"','"&G2&"','"&H2&"','"&I2&"','"&J2&"','"&K2&"','"&L2&"','"&M2&"','"&N2&"','"&O2&"','"&P2&"',"0");"
注意:当我们需要把表格中的上万条数据进行下拉递增拼接的时候,传统做法是拉出十字架然后不停的往下拉,但是数据量过大的话(好几万条),一直往下拉也不理想,这里我们可以选中目标框后双击让其往下递增;