程式碼實現資料庫轉換[sql2000VSDBF格式]
一: 從dBase檔案中,匯入資料到SQL資料庫中,很簡單,直接用下面的語句:
/*===================================================================*/
--如果接受資料匯入的表已經存在
insert into 表 select * from
openrowset('MICROSOFT.JET.OLEDB.4.0'
,'dBase 5.0;DATABASE=c:','select * from [test.dbf]')
--如果匯入資料並生成表
select * into 表 from
openrowset('MICROSOFT.JET.OLEDB.4.0'
,'dBase 5.0;DATABASE=c:','select * from [test.dbf]')
/*===================================================================*/
--如果從SQL資料庫中,匯出資料到dBase,如果dBase檔案已經存在,就可以簡單的用:
insert into
openrowset('MICROSOFT.JET.OLEDB.4.0'
,'dBase 5.0;DATABASE=c:','select * from [test.dbf]')
select * from 表
/*--說明:
DATABASE=c: c:是dbf檔案的存放目錄
'select * from [test.dbf] test.dbf是指dbf檔名
--*/
二 如果dBase檔案不存在,就需要用到下面的儲存過程了.
/*--資料匯出dBase
匯出表中的資料到dBase,如果檔案不存在,將自動建立檔案
基於通用性考慮,僅支援匯出標準資料型別
--*/
/*--呼叫示例
--匯出dBase
p_exporttb @tbname='地區資料',@path='c:',@over=0
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_exporttb]
GO
create proc p_exporttb
@tbname sysname, --要匯出的表名
@path nvarchar(1000), --檔案存放目錄
@fname nvarchar(250)=', --檔名,預設為表名
@over bit=0 --是否覆蓋已經存在的檔案,如果不覆蓋,則直接追加
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)
--引數檢測
if isnull(@fname,')=' set @fname=@tbname+'.dbf'
--檢查檔案是否已經存在
if right(@path,1)<>'' set @path=@path+''
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql
if exists(select 1 from #tb where a=1)
if @over=1
begin
set @sql='del
exec master..xp_cmdshell @sql,no_output
end
else
set @over=0
else
set @over=1
--資料庫建立語句
set @sql=@path+@fname
set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="dBASE 5.0;'
+';HDR=NO;DATABASE='+@path+'"'
--連線資料庫
exec @err=sp_oacreate 'adodb.connection',@obj out
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,'open',null,@constr
if @err<>0 goto lberr
--建立表的SQL
select @sql=',@fdlist='
select @fdlist=@fdlist+','+a.name
,@sql=@sql+',['+a.name+'] '
+case when b.name in('char','nchar','varchar','nvarchar') then
'text('+cast(case when a.length>250 then 250 else a.length end as varchar)+')'
when b.name in('tynyint','int','bigint','tinyint') then 'int'
when b.name in('smalldatetime','datetime') then 'datetime'
when b.name in('money','smallmoney') then 'money'
else b.name end
FROM syscolumns a left join systypes b on a.xtype=b.xusertype
where b.name not in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')
and object_id(@tbname)=id
select @sql='create table ['+@fname
+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)
if @over=1
begin
exec @err=sp_oamethod @obj,'execute',@out out,@sql
if @err<>0 goto lberr
end
exec @err=sp_oadestroy @obj
set @sql='openrowset('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE='
* from ['+@fname+']')'
--匯入資料
exec('insert into ) select from )
return
lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 錯誤號
,@src as 錯誤源,@desc as 錯誤描述
select @sql,@constr,@fdlist
go
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-825194/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 音樂格式轉換:java程式碼實現Java
- Oracle資料庫日期格式轉換操作Oracle資料庫
- 資料庫表格轉換成XML格式方法!資料庫XML
- Hive資料格式轉換Hive
- java 實現文字格式轉換Java
- 教程:如何通過DLA實現資料檔案格式轉換
- layui tree資料格式轉換UI
- 醫學影象資料格式和格式轉換
- sqlserver資料庫日期如何格式化-日期轉換字串SQLServer資料庫字串
- js日期格式簡單轉換程式碼JS
- 資料庫轉換工具,不同資料庫之前任意轉換資料庫
- js實現的json格式資料排序程式碼例項JSON排序
- SQL Server資料庫中Date/Time 時間格式的轉換SQLServer資料庫
- WPS如何實現資料轉換
- Python通用資料格式轉換工具Python
- Java與Json資料格式轉換JavaJSON
- 用Python實現資料庫程式設計 (轉)Python資料庫程式設計
- 原始碼資料庫管理程式 (轉)原始碼資料庫
- 使用Wesky.Net.Opentools庫,一行程式碼實現實體類型別轉換為Json格式字串行程型別JSON字串
- VC中實現多格式影像的靈活轉換 (轉)
- 將任意格式轉換為JSON資料格式的工具類JSON
- 工程座標轉換方法C#程式碼實現C#
- mxnet資料格式轉換為tensorflow,pytorch資料PyTorch
- jquery實現將字串轉換為json格式物件jQuery字串JSON物件
- Matlab批量實現圖片檔案格式轉換Matlab
- Python 實現Excel XLS和XLSX格式相互轉換PythonExcel
- JavaScript和json對資料格式的轉換JavaScriptJSON
- Python模組學習:struct 資料格式轉換PythonStruct
- 基於json資料格式實現的簡單資料庫——jsonDBJSON資料庫
- 資料庫訪問抽象類實現專案資料庫靈活切換資料庫抽象
- java 程式碼格式(轉)Java
- 人大金倉資料庫轉換資料庫
- Excel資料庫轉MySQL,實現查詢Excel資料庫MySql
- 程式碼塊,資料型別的相互轉換,集合資料型別
- ADO資料與XML資料間的轉換的類(ASP實現) (轉)XML
- 多程式PHP指令碼實現海量資料轉移總結PHP指令碼
- JSON格式字串和物件之間的轉換程式碼JSON字串物件
- UTC格式時間轉換為當地時間程式碼