**:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if object_id(
'sp_inputaccesstosql'
)
is
not
null
drop
proc sp_inputaccesstosql
go
create
proc sp_inputaccesstosql
@dir nvarchar(100),
--access檔案存放路徑:如d:\files
@tabname nvarchar(50)
--定義匯入到資料庫中的表名,如果存在就不需要建立
as
set
nocount
on
declare
@cmd nvarchar(1000)
create
table
#t([filename] nvarchar(1000))
if
right
(@dir,1)<>
'\'
set @dir=@dir+'
\
'
set @cmd = n'
dir
"' + @dir + '*.mdb"
/b
'
insert #t exec master..xp_cmdshell @cmd
delete #t where [filename] is null
--在sql中建立表:
declare @s nvarchar(max)
if object_id(@tabname) is null
begin
select top 1 @s='
select
top
0 *
into
'+ @tabname+'
from
openrowset(
''
microsoft.ace.oledb.12.0
''
,
''
'+@dir+[filename]+'
''
;
''
admin
''
;
''
''
,
'+@tabname+'
)
'
from #t
exec(@s)
end
--開始匯入目錄下的檔案
set @s = '
'
select @s = @s + '
insert
'+@tabname+'
select
*
from
openrowset(
''
microsoft.ace.oledb.12.0
''
,
''
'+@dir+[filename]+'
''
;
''
admin
''
;
''
''
,
'+@tabname+'
)
'
from #t
exec(@s)
set nocount off
go
--呼叫:
exec sp_inputaccesstosql '
f:\test
','
table_name'
注意:根據系統安裝access版本的不同,microsoft.ace.oledb.12.0可能替換為這個microsoft.jet.oledb.4.0 。
faq:
q1: sql server 阻止了對元件 'xp_cmdshell' 的 過程 'sys.xp_cmdshell' 的訪問...
a1: 執行以下sql語句:
1
2
3
4
5
6
sp_configure
'show advanced options'
,1
reconfigure
go
sp_configure
'xp_cmdshell'
,1
reconfigure
go
q2: sql server 阻止了對元件 'ad hoc distributed queries' 的訪問...
a2: 執行以下sql語句:
1
2
3
exec
sp_configure
'ad hoc distributed queries'
,1;
reconfigure;
go
參考:一、二、三
ps、此方法對上百兆的access檔案速度特別慢,請慎重考慮。
*** walker ***
rqslt
將excel 檔案匯入access資料表
dim conn asnew oledbconnection my.settings.connstr datawarehouse.mdb dimcomm asoledbcommand conn.createcommand comm.commandtext insert into tablename ...
sqlldr,將資料批量匯入Oracle資料庫
首先介紹一下sqlldr工具,它是由oracle提供,專本用於把文字資料匯入到oracle資料庫。它需要兩個檔案,乙個是文字資料檔案,另外乙個是ctl檔案。ctl檔案主要是配置一些引數,比如文字資料的分割符,首行或其他具體行需不需要跳過,匯入到哪張表,欄位都哪些,這些欄位都是什麼屬性等等。首先我設計...
springboot匯入access資料庫檔案
這裡坑就來了 網上各種各樣的方法去連線 但是jdk版本有的支援有的不支援我就不太明白了,連線不上各種報錯,報錯 就不貼了 具體的我也不太懂,就給看一下我是怎麼解決的,怎麼連線的.1.如下 pom中新增依賴 net.sf.ucanaccess groupid ucanaccess artifactid...