MySQL数据库如何导出dbf格式数据_SQL数据库与dbf导入导出【转】
系统已经安装 vfpoledb,
单独执行:
select * from openrowset('VFPOLEDB.1','d:\';'admin';'','select 列1 from 表1')
时,可以正常。
但
insert into
openrowset('VFPOLEDB.1','d:\';'admin';'','select 列1 from 表1')
select 列1 from 表2
出错提示:
服务器: 消息 7301,级别 16,状态 2,行 1未
能从 OLE DB 提供程序 'VFPOLEDB.1' 获得所需的接口。
换成下面的:--------------------------------------------
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;DATABASE=D:\','select BM from [yh.dbf]')
select BM from yht
则出现这个错误:
未能处理对象 'select BM from [yh.dbf]'。
OLE DB 提供程序'MICROSOFT.JET.OLEDB.4.0' 指出该对象中没有任何列。
参考:
/**************导入DBF文件****************/
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=e:\VFP98\data;
SourceType=DBF',
'select * from customer where country != "USA" order by country')
go
/***************** 导出到DBF ***************/
如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句
insert into openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
select * from 表
说明:
SourceDB=c:\ 指定foxpro表所在的文件夹
aa.DBF 指定foxpro表的文件名.
--注意:驱动名中不要有多余的空格。
insert into openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=D:\','select 列1 from [表2.DBF]')
select 列1
from 表2
导入导出
http://blog.csdn.net/zjcxc/archive/2003/12/29/20085.aspx
http://dev.csdn.net/develop/article/78/78132.shtm
----------DBF 导入 SQL Server表----------
以下均以SQL2000、VFP6及以上的表为例
方法一:查询分析器中执行如下语句(先选择对应的数据库)
--如果接受导入数据的SQL表已经存在
insert into 已经存在的SQL表名 select * from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF')
--也可以对应列名进行导入,如:
insert into 已经存在的SQL表名 (列名1,列名2...) select (对应列名1,对应列名2...) from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF')
--如果接受导入数据的SQL表不存在,导入时创建
--方法一:
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')
--用前两种方法导入SQL SERVER后,源表再用VFP打开就不提示“不能存取文件”,说明语句执行后就把源表关闭了。不过也有不尽人意的地方,就是用前两种方法导入后,源表中的字符型字段导入后SQL表字段对应变成NVARCHAR了。
--第三种方法有一个缺点:把DBF表导入SQL Server中后,马上用VISUAL FOXPRO打开DBF表,会提示“不能存取文件”,即这个表还被SQL打开着呢。可是过了1分钟左右,再打开DBF表就可以了,说明经过一段时间后查询分析器才把这个表关闭。
--也可以只导几个字段
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select 字段1,字段2 from aa.DBF')
/*--说明:
SourceDB=c:\ c:\是dbf文件的存放目录
aa.DBF 是dbf文件名
--*/
路过
还不如直接用SQL的导入导出来得简单.
直接用SQL SERVER 的导入导出,在选择导出类别为DBASE5。0时,按下一步也出现错误??
MARK
----------DBF 导入 SQL Server表----------
以下均以SQL2000、VFP6及以上的表为例
方法一:查询分析器中执行如下语句(先选择对应的数据库)
--如果接受导入数据的SQL表已经存在
insert into 已经存在的SQL表名 select * from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF')
--也可以对应列名进行导入,如:
insert into 已经存在的SQL表名 (列名1,列名2...) select (对应列名1,对应列名2...) from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF')
--如果接受导入数据的SQL表不存在,导入时创建
--方式一:
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from dbf表名.DBF')
--方式二:
select * INTO TEMP1 from openrowset('VFPOLEDB.1','C:\';'admin';'' ,'select * from dbf表名.DBF')
如果没有安装VFP,需要把vfpoledb.dll拷贝到SYSTEM目录下,并注册。
--方式三:
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')
--用前两种方式导入SQL SERVER后,源表再用VFP打开就不提示“不能存取文件”,说明语句执行后就把源表关闭了。不过也有不尽人意的地方,就是用前两种方式导入后,源表中的字符型字段导入后SQL表字段对应变成NVARCHAR了。
--第三种方式有一个缺点:把DBF表导入SQL Server中后,马上用VISUAL FOXPRO打开DBF表,会提示“不能存取文件”,即这个表还被SQL打开着呢。可是过了1分钟左右,再打开DBF表就可以了,说明经过一段时间后查询分析器才把这个表关闭。
--也可以只导几个字段
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select 字段1,字段2 from aa.DBF')
/*--说明:
SourceDB=c:\ c:\是dbf文件的存放目录
aa.DBF 是dbf文件名
--*/
方法二:通过SQL Server的“导入导出数据”工具(DTS)
1、建立Visual FoxPro的数据源:
在ODBC中建立一个Visual FoxPro的数据源(ODBC-Microsoft Visual FoxPro Driver)的步骤如下:
打开ODBC配制窗口 ->
选择“用户DSN”页面或“系统DSN”页面,建议用后者 ->
点击“添加”按钮 ->
选择“Microsoft Visual FoxPro Driver”这个驱动 ->
在Data Source Name(数源源名称)处输入此数据源名称,可自定,本例如LjDbf,Database Type(数据库类型)处选择“Free Table directory”(自由表路径),然后在下面的Path(路径)处设置你要导入的DBF表所在的路径,本列如“D:\” ->
点击“OK”(确定)配制完成 ->
关闭ODBC配制窗口
2、通过SQL的导入导出数据(DTS)来把DBF表导成SQL表:
开始 ->
程序 ->
Microsoft SQL Server-导入导出数(DTS)->
下一步 ->
此步为“选择数据源”的窗口,“数据源”选“Microsoft Visual FoxPro Driver”,同时在"用户/系统DSN"处选择你刚刚配制的数据源名(本例如LjDbf,当然上面配制数据源的过程也可以通过“用户/系统DSN”后面有一个“新建”按钮来完成),然后点击“下一步” ->
此步为“选择目的”的窗口,“目的”选"用于SQL Server的Microsoft OLE DB提供程序"(此项一般为默认),同时选择你要导成的SQL表的存放数据库、服务器及服务器的验证方式,然后点击“下一步” ->
这时:
A:如果要把DBF表全部字段均导入,则选择“从源数据库复制表和视图”,点击“下一步” ->
选择要导入的DBF表,在‘目的’处可修改生成SQL表的名称,默认与DBF表名一样,点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导入即可(导入成功与否DTS会有提示)。
B:如果只导入DBF表中的几个字段或全部字段(如果导入全部字段,也可以用上面步骤A,结果是一样的,只是方法不同),则选择“用一条查询指定要输出的数据”,点击“下一步” ->
点击“查询生成器”,选择要导入的DBF表(此时可选择列),点击“下一步” ->
指定排序顺序,选一个或多个排序字段,如果不用排序,此步可略,点击“下一步” ->
此步可以指定查询条件,如果没有条件,此步可略,点击“下一步” ->
出现了对应的SQL语句(也可以再修改生成的SQL语句,但不推荐),再点击“下一步” ->
这时可修改要生成的SQL表名,默认为“结果”,再点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导入即可(导入成功与否DTS会有提示)。
方法三:
先把DBF表转成EXCEL或TXT,然后SQL SERVER的导入导出工具把EXCEL或TXT导入即可(此方法类似方法二,不再介绍)。
----------SQL Server表 导出 DBF----------
方法一:如果DBF表已经存在,在查询分析器中执行以下语句(先选择对应的数据库)
insert into openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from 表B.DBF') select * from 表a
/*--说明:
SourceDB=c:\c:\是dbf文件的存放目录
表B.DBF是已经存在dbf文件名,数据导入此表
表A.dbf是要导出的SQL表名
--*/
方法二:如果DBF表不存在,直接导出时创建,通过SQL Server的“导入导出数据”工具
1、建立Visual FoxPro的数据源:
在ODBC中建立一个Visual FoxPro的数据源(ODBC-Microsoft Visual FoxPro Driver)的步骤如下:
打开ODBC配制窗口 ->
选择“用户DSN”页面或“系统DSN”页面,建议用后者 ->
点击“添加”按钮 ->
选择“Microsoft Visual FoxPro Driver”这个驱动 ->
在Data Source Name(数源源名称)处输入此数据源名称,可自定,本例如LjDbf,Database Type(数据库类型)处选择“Free Table directory”(自由表路径),然后在下面的Path(路径)处随便设置一个路径,本列如“D:\” ->
点击“OK”(确定)配制完成 ->
关闭ODBC配制窗口
2、通过SQL的导入导出数据(DTS)来把SQL表导成DBF表:
开始 ->
程序 ->
Microsoft SQL Server-导入导出数(DTS)->
下一步 ->
此步为“选择数据源”的窗口,“数据源”选"用于SQL Server的Microsoft OLE DB提供程序"(此项一般为默认),同时选择你要导出的SQL表所在数据库、服务器及服务器的验证方式,然后点击“下一步” ->
此步为“选择目的”的窗口,“目的”选“Microsoft Visual FoxPro Driver”,同时在"用户/系统DSN"处选择你刚刚配制的数据源名(本例如LjDbf,当然上面配制数据源的过程也可以通过“用户/系统DSN”后面有一个“新建”按钮来完成),然后点击“下一步” ->
这时:
A:如果要把被导出的SQL表的全部字段均导出,则选择“从源数据库复制表和视图”,点击“下一步” ->
选择要导出的表或视图,在‘目的’处可修改生成的DBF表的名称,默认与SQL表名一样,点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导出即可(导出成功与否DTS会有提示),导出成功之后的DBF表的主文件名与SQL的表名一样。
B:如果只导出SQL表中的几个字段或全部字段(如果导出全部字段,也可以用上面步骤A,结果是一样的,只是方法不同),则选择“用一条查询指定要输出的数据”,点击“下一步” ->
点击“查询生成器”,选择要导出的SQL表(此时可选择列),点击“下一步” ->
指定排序顺序,选一个或多个排序字段,如果不用排序,此步可略,点击“下一步” ->
此步可以指定查询条件,如果没有条件,此步可略,点击“下一步” ->
出现了对应的SQL语句(也可以再修改生成的SQL语句,但不推荐),再点击“下一步” ->
这时可修改要生成的DBF表名,默认为“结果”,再点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导出即可(导出成功与否DTS会有提示)。
注:
导出成功后,DBF文件一般存于 Microsoft SQL Server\80\Tools\Binn 或 Program Files\Common Files\ODBC\Data Sources目录下,并没有存于上面所说的D:\,这个我也不知为什么,哪位如果知道,请告之。
MySQL数据库如何导出dbf格式数据_SQL数据库与dbf导入导出【转】相关推荐
- Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...
- mysql数据导入导出 CSV格式_MySQL中导入导出CSV格式数据
原标题:MySQL中导入导出CSV格式数据 预备阅读:MySQL中的主键问题和赋权限问题 今天来讲一下在MySQL中导入和导出CSV格式数据的操作. CSV格式数据 逗号分隔值(Comma-Separ ...
- mysql查询转json数据库_json格式数据,将数据库中查询的结果转换为json, 然后调用接口的方式返回json(方式一)...
调用接口,无非也就是打开链接 读取流 将结果以流的形式输出 将查询结果以json返回,无非就是将查询到的结果转换成jsonObject ================================ ...
- toad导入数据_配置toad进行导入导出数据库操作
最近需要对oracle进行导入导出操作,于是研究使用toad进行导入导出oracle数据库操作,现稍作记录. oracle的导入导出不管是否使用toad还是pl/sql工具进行操作,实际上最终都是通过 ...
- MongoDB导出csv格式数据
第一步: 在cmd中进入mongodb的安装目录下的bin文件夹 C:\Users\zzz>cd C:\Program Files\MongoDB\Server\4.0\bin 第二步: 从Mo ...
- osmosis抽取PBF矢量数据,导出xml格式数据
osmosis 用于处理OSM数据的Java命令行应用程序,包括许多插件式的组件.比如读写数据库和文件的组件.继承和修改数据源的组件.对数据排序管理的组件等,避免了实现常用功能而重复性编写代码. 目前 ...
- influxdb中将数据导出csv格式数据
influxdb中将数据导出csv格式数据 命令基本格式为:influx -database 'database_name' -execute 'SELECT * FROM table_name' - ...
- 数据库中存储Json格式数据
在数据库中存储Json格式数据 1.表字段类型 json 2.Java代码有两种方式: 方式一 :属性定义成String类型. 往数据库中存储的值 必须为JSON格式的字符串,因为数据库中会做一次校验 ...
- MCGS 无限配方数据存储及U盘导入导出-第一集
第一集https://blog.csdn.net/qq_33259323/article/details/123751336第二集https://blog.csdn.net/qq_33259323/a ...
- mysql异地双活架构,银行跨数据中心数据库双活架构设计:五大难点攻克
银行跨数据中心数据库双活架构设计:五大难点攻克 发布时间:2018-12-09 10:21, 浏览次数:327 数据库双活技术已成为企业重点关注的对象,社区最近组织了交流活动,以帮助大家更好的明确理解 ...
最新文章
- Syntax error, annotations are only available if source level is 1.5 or greater.
- 漫步线性代数十一—— 四个基本子空间
- 带你了解FPGA(5)--Verilog书写规范
- 在C#中用RX库和await来实现直观的状态机
- some formulas for bloging
- 实战 | F1060路由模式典型组网配置案例(静态路由)
- 安卓手机上虚拟linux系统教程,如何在安卓手机上安装Linux系统
- SeaWeedFS文件存储服务器搭建
- pycharm主题背景图片设置,让你的界面酷起来!
- native mysql 分区_MySQL-表分区
- 咸鱼Maya笔记—Maya 编辑多边形
- Cloud Native 演进可行性研究
- Windows中Python3.x下运行Python2.x程序解决方案
- Flask入门到实战
- C/C++黑魔法-常量字符串连接
- 深度学习(目标跟踪和目标检测)--边界框bbox坐标转换(任意格式【list,numpy,tensor】、任意维度【向量、一维矩阵、二维矩阵】)
- 单片机实验(十三)串口自发自收实现
- iOS对接Facebook:登录,分享,邀请,游戏排行榜功能
- Python+Selenium实现12306模拟登录
- html移动端最小字体大小,踩坑之移动端显示字体大小问题
热门文章
- linux中进程unit是什么意思,Unit(linux)基础命令
- android 代码设置 键盘适应_MTK6577+Android之按键(key)修改
- 手机浏览器唤起微信实现分享
- 搬运小视频为什么要修改MD5值?什么是MD5?
- 扇贝单词里有计算机英语吗,扇贝单词记录
- SONY无线PS2遥控手柄与stm32单片机通信
- 4键电子手表说明书_电子表的使用方法 电子手表使用说明书
- no input file specified 三种解决方法
- 用JAVA爬虫爬网站的图片
- HighCharts一个基于JavaScript的图表插件