TICA..VBPA select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\InitialData\db_data.xlsx;HDR=YES', 'SELECT * FROM [VBPA$]')
--(适用于office2007及以上版本,2003用Jet - "Microsoft.Jet.OLEDB.4.0")其它需要注意的不过就是保证excel内的数据格式是统一的文本格式,这里只简单给出事例图,不做详细说明。
对于txt格式文件,本人所用格式如下。
vcr9vt21xMXk1sPOxLz+U2NoZW1hLmluaaOhyOe5+7W8yOuyu7PJuaa78tXfs/a07aOstPO2vMrH1eLSu7K91ui07cHLPGJyPgqjqHBzo7q0y8Xk1sPOxLz+0qq6zbW8yOvUtLfF1NrNrNK7uPbOxLz+vNDPwqOswe3N4qOszsS8/rzQxL/CvNfuusOx8Myrs6S78tXfsPy6rNPQv9UmIzI2Njg0O9auwOC1xKOs1eLQqdfUvLrXotLio6GjqTxicj4KxuTW0FNjaGVtYS5pbmnA77nmt7YmIzI2Njg0O8q9yOfPwqGjPHByZSBjbGFzcz0="brush:sql;">[SAP_TVSTZ.txt] FORMAT=Delimited(|) ColNameHeader=True MaxScanRows=0 CharacterSet=Unicode TextDelimiter=` Col1=SKIP1 TEXT Col2=SKIP2 TEXT COL3=VSBED TEXT COL4=LADGR char(100) COL5=WERKS TEXT COL6=LGORT TEXT COL7=VSTEL TEXT
这里需要标明的是:域值内,第一行表示数据源文件名;第二行至第六行是必要的设置和说明,每个人按需修改;第七行以下必须按照Col从1索引开始递增,右边是显示的列名及格式。具体有兴趣的同学可以自己试着操作下,看下差异。
四,执行及检查
执行代码如下
USE WOOX_CQM
EXECUTE sp_ActivateDistributedQueries
----------------------------- SAP Tables -----------------------------
DECLARE @LoadPath varchar(2000)
SET @LoadPath = 'C:\InitialData\SAPdata'
--import Excel--
EXECUTE sp_ReadXLSSource
@LoadPath,
'SAP_TCURF', 'SAP_TCURF.xls', '[Sheet1$]',
'[KURST],[FCURR],[TCURR],[GDATU], [FFACT],[TFACT],[FromDate],[ToDate]'
--import txt--
EXECUTE sp_ReadSource
@LoadPath,
'SAP_TVSTZ',
'[VSBED],[LADGR],[WERKS],[LGORT],[VSTEL]'
可用以下代码先行测试导入数据是否有差距,同学们记得更改本人所用的hardcored。
select *
FROM OpenDataSource ('Microsoft.ACE.OLEDB.12.0',
'Data Source="C:\InitialData\SAPdata";Extended properties=Text')...SAP_TW06S#txtok,大概代码就是这样,如果有什么不懂或者有不同意见的,可用留言讨论!