要是FOXBASE/FOXPRO的庫(kù)文件
員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開(kāi)發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)公司堅(jiān)持“專(zhuān)注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩?zhuān)注所以專(zhuān)業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專(zhuān)注于為企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、電商網(wǎng)站開(kāi)發(fā),小程序開(kāi)發(fā),軟件按需定制制作等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
可以直接用EXCEL打開(kāi),然后保存為T(mén)XT文件,再用sqlldr導(dǎo)入oracle。
不過(guò)EXCEL有行數(shù)限制,大概是8W行
也可以直接把DBF文件COPY到FOXPRO環(huán)境。
然后在FOXPRO里把這個(gè)DBF(庫(kù))打印到文本即可,就可以sqlldr導(dǎo)入ORacle。
方法一:查詢分析器中執(zhí)行如下語(yǔ)句(先選擇對(duì)應(yīng)的數(shù)據(jù)庫(kù))
--如果接受導(dǎo)入數(shù)據(jù)的SQL表已經(jīng)存在
insert
into
已經(jīng)存在的SQL表名
select
*
from
openrowset('MSDASQL','Driver=Microsoft
Visual
FoxPro
Driver;SourceType=DBF;SourceDB=c:\','select
*
from
aa.DBF')
--也可以對(duì)應(yīng)列名進(jìn)行導(dǎo)入,如:
insert
into
已經(jīng)存在的SQL表名
(列名1,列名2...)
select
(對(duì)應(yīng)列名1,對(duì)應(yīng)列名2...)
from
openrowset('MSDASQL','Driver=Microsoft
Visual
FoxPro
Driver;SourceType=DBF;SourceDB=c:\','select
*
from
aa.DBF')
--如果接受導(dǎo)入數(shù)據(jù)的SQL表不存在,導(dǎo)入時(shí)創(chuàng)建
--方法一:
select
*
into
要生成的SQL表名
from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase
IV;HDR=NO;IMEX=2;DATABASE=c:\','select
*
from
dbf表名.dbf')
--方法二:
select
*
into
要生成的SQL表名
from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase
III;HDR=NO;IMEX=2;DATABASE=c:\','select
*
from
dbf表名.dbf')
--方法三:
select
*
into
要生成的SQL表名
from
openrowset('MSDASQL','Driver=Microsoft
Visual
FoxPro
Driver;SourceType=DBF;SourceDB=c:\','select
*
from
dbf表名.DBF')
--用前兩種方法導(dǎo)入SQL
SERVER后,源表再用VFP打開(kāi)就不提示“不能存取文件”,說(shuō)明語(yǔ)句執(zhí)行后就把源表關(guān)閉了。不過(guò)也有不盡人意的地方,就是用前兩種方法導(dǎo)入后,源表中的字符型字段導(dǎo)入后SQL表字段對(duì)應(yīng)變成NVARCHAR了。
--第三種方法有一個(gè)缺點(diǎn):把DBF表導(dǎo)入SQL
Server中后,馬上用VISUAL
FOXPRO打開(kāi)DBF表,會(huì)提示“不能存取文件”,即這個(gè)表還被SQL打開(kāi)著呢??墒沁^(guò)了1分鐘左右,再打開(kāi)DBF表就可以了,說(shuō)明經(jīng)過(guò)一段時(shí)間后查詢分析器才把這個(gè)表關(guān)閉。
--也可以只導(dǎo)幾個(gè)字段
select
*
into
要生成的SQL表名
from
openrowset('MSDASQL','Driver=Microsoft
Visual
FoxPro
Driver;SourceType=DBF;SourceDB=c:\','select
字段1,字段2
from
aa.DBF')
/*--說(shuō)明:
SourceDB=c:\
c:\是dbf文件的存放目錄
aa.DBF
是dbf文件名
--*/
解決方法:
--方法一:
select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DATABASE=c:/','select * from dbf表名.dbf')
--方法二:
select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=c:/','select * from dbf表名.dbf')
--方法三:
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/','select * from dbf表名.DBF')
--用前兩種方法導(dǎo)入SQL SERVER后,源表再用VFP打開(kāi)就不提示“不能存取文件”,說(shuō)明語(yǔ)句執(zhí)行后就把源表關(guān)閉了。不過(guò)也有不盡人意的地方,就是用前兩種方法導(dǎo)入后,源表中的字符型字段導(dǎo)入后SQL表字段對(duì)應(yīng)變成NVARCHAR了。
--第三種方法有一個(gè)缺點(diǎn):把DBF表導(dǎo)入SQL Server中后,馬上用VISUAL FOXPRO打開(kāi)DBF表,會(huì)提示“不能存取文件”,即這個(gè)表還被SQL打開(kāi)著呢??墒沁^(guò)了1分鐘左右,再打開(kāi)DBF表就可以了,說(shuō)明經(jīng)過(guò)一段時(shí)間后查詢分析器才把這個(gè)表關(guān)閉。
可以直接將dbf文件導(dǎo)入sqlserver數(shù)據(jù)庫(kù),也可以先將dbf文件導(dǎo)入dataset,再將dataset的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)。dbf文件導(dǎo)入dataset的具體實(shí)現(xiàn)方法如下:
需要引入system.data.Odbc包
1.代碼實(shí)現(xiàn)
對(duì)DBF數(shù)據(jù)進(jìn)行循環(huán),用SPT插入的SQL數(shù)據(jù)庫(kù)
2.利用數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入工具,一般會(huì)建立一個(gè)數(shù)據(jù)源進(jìn)行連接.
3.如果數(shù)據(jù)庫(kù)是VFP的數(shù)據(jù)庫(kù)的話,可以用如下命令:
select temp
append from tmp.dbf
1、關(guān)閉數(shù)據(jù)庫(kù)
SQL shutdown immediate
2、回到solaris狀態(tài),將要移youtablespace.dbf到目的文件目錄,切記用cp,不能mv,以防止出錯(cuò)SQL!
# cp youtablespace.dbf /u01/dev1/
3、以mount方式打開(kāi)數(shù)據(jù)庫(kù)
(Oracle系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重作日志文件的內(nèi)容,但并不打開(kāi)該文件。這種打開(kāi)方式常在數(shù)據(jù)庫(kù)維護(hù)操作中使用,如對(duì)數(shù)據(jù)文件的更名、改變重作日志以及打開(kāi)歸檔方式等。)
SQL startup mount
4、alter database命令來(lái)改變數(shù)據(jù)庫(kù)中的文件名SQL alterdatabase rename file
'/u02/dev1/youtablespace.dbf' to
'/u01/dev1/youtablespace.dbf'
5、查看列名
SQL desc dba_data_files
6、查看各數(shù)據(jù)庫(kù)文件是否正常
SQL select file_name from
dba_data_files;
7、啟動(dòng)實(shí)例.
SQL alter database open;8、確認(rèn)無(wú)錯(cuò)以后,刪除原數(shù)據(jù)文件
以下是具體實(shí)現(xiàn)步驟:(1)將MS SQL Server數(shù)據(jù)文件(*.mdf)導(dǎo)附加到本地?cái)?shù)據(jù)庫(kù),首先登錄到本地?cái)?shù)據(jù)庫(kù)服務(wù)器,接著右擊您準(zhǔn)備導(dǎo)入數(shù)據(jù)的數(shù)據(jù)庫(kù),選擇“所有任務(wù)”下的“附加到數(shù)據(jù)庫(kù)...” 然后,按照提示選擇本地?cái)?shù)據(jù)庫(kù)文件(*.mdf),即可實(shí)現(xiàn)將MS SQL Server數(shù)據(jù)文件(*.mdf)導(dǎo)附加到本地?cái)?shù)據(jù)庫(kù)。(2)將本地的MS SQL Server數(shù)據(jù)導(dǎo)入到遠(yuǎn)程服務(wù)器上。 以下演示引導(dǎo)客戶將本地的MS SQL Server數(shù)據(jù)導(dǎo)入到遠(yuǎn)程服務(wù)器上,供客戶的網(wǎng)站使用。首先登錄到遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器:1.右擊您準(zhǔn)備導(dǎo)入數(shù)據(jù)的數(shù)據(jù)庫(kù),選擇“所有任務(wù)”下的“導(dǎo)入數(shù)據(jù)”2.進(jìn)入DTS導(dǎo)入/導(dǎo)出向?qū)?,點(diǎn)擊“下一步”按鈕繼續(xù)3.選擇數(shù)據(jù)源,輸入數(shù)據(jù)源所在的數(shù)據(jù)庫(kù)服務(wù)器名稱(chēng)、用戶名、密碼和要復(fù)制數(shù)據(jù)的源數(shù)據(jù)庫(kù),點(diǎn)擊“下一步”按鈕4.選擇目的,輸入目的數(shù)據(jù)庫(kù)所在的數(shù)據(jù)庫(kù)服務(wù)器名稱(chēng)、用戶名、密碼和要復(fù)制數(shù)據(jù)的目的數(shù)據(jù)庫(kù),點(diǎn)擊“下一步”按鈕5.選擇“在SQL Server數(shù)據(jù)庫(kù)之間復(fù)制對(duì)象和數(shù)據(jù)”方式,點(diǎn)“下一步”繼續(xù)6.取消安全措施選項(xiàng)7.設(shè)定調(diào)度方式,一般選“立即運(yùn)行”就可以,然后點(diǎn)“下一步”繼續(xù)8.點(diǎn)“完成”執(zhí)行9.數(shù)據(jù)導(dǎo)入完成 至此即可將本地的MS SQL Server數(shù)據(jù)導(dǎo)入到遠(yuǎn)程服務(wù)器上。