文本导入数据库
1. 如何将文本文档批量数据导入到数据库中
只要文件能够用记事本打开并格式正确,就可以把他认为是文本文件进行处理.
象这种格式的数据没有什么太好的办法,只有从文本文件中逐行读取解析,当读到完整的记录时执行SQL语句插入到数据库中.
2. 怎样将txt格式的文件导入到数据库中
先要将oracle跟sas连接,这个操作,也不好解释的,在管理工具—>数据源(odbc)—>添加,然后自己设置
在sas中新建逻辑库ccs,跟oracle先连接好,然后写入以下代码:
libname
ccs
oracle
user='esp'
//ccs为逻辑库名
password='esp'
path='sdbnccs'
//user与password为oracle用户名和密码,sdbnccs是数据库名
libname
source
'e:\sas';
//source
为本地要上传的文件路径
data
ccs.table_name;
//要导入oracle中的表名
set
source.file1
source.file2
...;
//要导入的本地sas7bdat文件
run;
我导入了很多个大表,挺方便,主要是之前的,配置连接可能有点困难,不懂可以问我!
3. 怎么将.txt文件导入到sql数据库中啊!
使用sql的数据导入导出工具。
在sql中,在需要导入的数据库上点右键选择“任务”回-“导入数据答”,“下一步”,在数据源下下拉列表中选择“平面文件源”,点击文件名后面的“浏览”按钮,选择需要导入到txt文件,进行配置后“下一步”,在目的数据源中选择sql数据源,选择需要导入到表,进行字段对应关系即可进行导入了。或者先用excel打开txt文件,存成xls格式,在第一步选择时将“平面文件源”改成“Microsoft excel“也可。如果还有问题可以hi我。
4. txt文本导入数据库
在企业管理器里,选择数据库,然后右键->所有任务->导入数据.点下一步,在数据源选择文本文件方式导入,照提示进行就好了
5. 文本文件导入到数据库中的几种方法
大型的数据库开发中常常遇到数据源是平面文件(如文本文件)的情况,对于这样的数据源,无法使用数据库对其数据进行有效的管理,另外也无法使用SQL语句对其进行查询和操作,所以当务之急就是将这些平面文件导
入到数据库中,然后就可以对其进行高效的操作了。
下面介绍几种常见的数据导入的方法,希望能够给大家启迪。另外,本文所涉及到的数据库均为ORACLE数据库,其实对于其他数据库而言,方法类似。
一、Sql*:Loader
该方法是Oracle数据库下数据导入的最重要的方法之一,该工具由Oracle客户端提供,
其基本工作原理是:首先要针对数据源文件制作一个控制文件,控制文件是用来解释如何对源文件进行解析,其中需要包含源文件的数据格式、目标数据库的字段等信息,一个典型的控制文件为如下形式:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'
TRUNCATE (也可以用append替换TRUNCATE)
INTO TABLE fj_ipa_agentdetail
fields terminated ","
trailing nullcols
( AGENT_NO char,
AGENT_NAME char,
AGENT_ADDRESS char,
AGENT_LINKNUM char,
AGENT_LINKMAN char
)
其中,INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'指明所要导入的源文件,其实源文件也可以直接通过命令行来输入获得 ,fj_ipa_agentdetail为目标表的名字,fields terminated ","是指源文件的各个字段是以逗号分隔,trailing nullcols表示遇到空字段依然写入到数据库表中,最后这5个字段是目标数据库表的字段结构。通过上面这个典型的控制文件的格式分析可知,控制文件需要与源文件的格式信息一致,否则导入数据会出现异常。
除了控制以外,sql*loader的还需要数据文件,即源文件。根据格式的不同,源文件可以分为固定字段长度和有分隔符这两大类,这里将分别说明这两种情况:
固定字段长度的文本文件
就是每个字段拥有固定的字段长度,比如:
602530005922 1012
602538023138 1012
602536920355 1012
602531777166 1012
602533626494 1012
602535700601 1012
有分隔符的文本文件
就是每个字段都有相同的分隔符分隔,比如:
1001,上海长途电信综合开发公司,南京东路34号140室
1002,上海桦奇通讯科技有限公司,武宁路19号1902室
1003,上海邦正科技发展有限公司,南京东路61号903室
对于上述两种文件格式sql*loader均可以做处理,下面就前面那个固定长度的文本来举例说明:
由于该文本只有两个字段,一个为设备号,一个是区局编号,两者的长度分别为20和5,那么可以编制控制文件如下:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagent200410.txt'
TRUNCATE
INTO TABLE fj_ipa_agent
( DEVNO POSITION(1:20) CHAR,
BRANCH_NO POSITION(21:25) CHAR
)
其中,'/ora9i/fengjie/agent/data/ipaagent200410.txt'为该文件的完全路径,POSITION(M:N)表示该字段是从位置M到位置N。
对于有分隔符的数据文件,前面已经有一个例子,这里就不再赘述了。总之,使用Sql*Loader能够轻松将数据文件导入到数据库中,这种方法也是最常用的方法。
二、 使用专业的数据抽取工具
目前在数据仓库领域中,数据抽取与装载(ETL)是一重要的技术,这一技术对于一些大的数据文件或者文件数量较多尤其适合。这里简单介绍目前一款主流的数据抽取工具 ――Informatica。
该工具主要采用图形界面进行编程,其主要工作流程是:首先将源数据文件的结构(格式)导入为Informatica里,然后根据业务规则对该结构进行一定的转换(transformation),最终导入到目标表中。
以上过程仅仅只是做了一个从源到目标的映射,数据的实际抽取与装载需要在工作流(workflow)里进行。
使用专业的数据抽取工具,可以结合业务逻辑对多个源数据进行join,union,insect等操作,适合于大型数据库和数据仓库。
三、 使用Access工具导入
可以直接在Access里选择‘打开‘文本文件,这样按照向导来导入一个文本文件到Access数据库中,然后使用编程的方法将其导入到最终的目标数据 库中。
这种方法虽然烦琐,但是其对系统的软件配置要求相对较低,所以也是有一定的使用范围
6. 怎么将一个txt文件中的数据导进sql数据库
本地可直接使用BULK命令,导入到远程服务器可先将文本文档上传至服务器指定目录,再使用BULK导入数据库
BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中。语法BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' } [ WITH ( [ BATCHSIZE [ = batch_size ] ] [ [ , ] CHECK_CONSTRAINTS ] [ [ , ] CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ] [ [ , ] DATAFILETYPE [ = { 'char' | 'native'| 'widechar' | 'widenative' } ] ] [ [ , ] FIELDTERMINATOR [ = 'field_terminator' ] ] [ [ , ] FIRSTROW [ = first_row ] ] [ [ , ] FIRE_TRIGGERS ] [ [ , ] FORMATFILE = 'format_file_path' ] [ [ , ] KEEPIDENTITY ] [ [ , ] KEEPNULLS ] [ [ , ] KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ] [ [ , ] LASTROW [ = last_row ] ] [ [ , ] MAXERRORS [ = max_errors ] ] [ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] [ [ , ] ROWS_PER_BATCH [ = rows_per_batch ] ] [ [ , ] ROWTERMINATOR [ = 'row_terminator' ] ] [ , [ TABLOCK ] ] ) ] 参数'database_name'是包含指定表或视图的数据库的名称。如果未指定,则系统默认为当前数据库。'owner'是表或视图所有者的名称。当执行大容量复制操作的用户拥有指定的表或视图时,owner 是可选项。如果没有指定 owner 并且执行大容量复制操作的用户不拥有指定的表或视图,则 Microsoft® SQL Server? 将返回错误信息并取消大容量复制操作。'table_name'是大容量复制数据于其中的表或视图的名称。只能使用那些所有的列引用相同基表所在的视图。有关向视图中复制数据的限制的更多信息,请参见 INSERT。 'data_file'是数据文件的完整路径,该数据文件包含要复制到指定表或视图的数据。BULK INSERT 从磁盘复制数据(包括网络、软盘、硬盘等)。 data_file 必须从运行 SQL Server 的服务器指定有效路径。如果 data_file 是远程文件,则请指定通用命名规则 (UNC) 名称。BATCHSIZE [ = batch_size ]指定批处理中的行数。每个批处理作为一个事务复制至服务器。SQL Server提交或回滚(在失败时)每个批处理的事务。默认情况下,指定数据文件中的所有数据是一个批处理。CHECK_CONSTRAINTS指定在大容量复制操作中检查 table_name 的任何约束。默认情况下,将会忽略约束。CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ]指定该数据文件中数据的代码页。仅当数据含有字符值大于 127 或小于 32 的 char、varchar 或 text 列时,CODEPAGE 才是适用的。CODEPAGE 值 描述 ACP char、varchar 或 text 数据类型的列从 ANSI/Microsoft Windows® 代码页 ISO 1252 转换为 SQL Server 代码页。 OEM(默认值) char、varchar 或 text 数据类型的列被从系统 OEM 代码页转换为 SQL Server 代码页。 RAW 并不进行从一个代码页到另一个代码页的转换;这是最快的选项。 code_page 特定的代码页号码,例如 850。 DATAFILETYPE [ = {'char' | 'native' | 'widechar' | 'widenative' } ]指定 BULK INSERT 使用指定的默认值执行复制操作。DATAFILETYPE 值 描述 char(默认值) 从含有字符数据的数据文件执行大容量复制操作。 native 使用 native(数据库)数据类型执行大容量复制操作。要装载的数据文件由大容量复制数据创建,该复制是用 bcp 实用工具从 SQL Server 进行的。 widechar 从含有 Unicode 字符的数据文件中执行大容量复制操作。 widenative 执行与 native 相同的大容量复制操作,不同之处是 char、varchar 和 text 列在数据文件中存储为 Unicode。要装载的数据文件由大容量复制数据创建,该复制是用 bcp 实用工具从 SQL Server 进行的。该选项是对 widechar 选项的一个更高性能的替代,并且它用于使用数据文件从一个运行 SQL Server 的计算机向另一个计算机传送数据。当传送含有 ANSI 扩展字符的数据时,使用该选项以便利用 native 模式的性能。 FIELDTERMINATOR [ = 'field_terminator' ]指定用于 char 和 widechar 数据文件的字段终止符。默认的字段终止符是 \t(制表符)。FIRSTROW [ = first_row ]指定要复制的第一行的行号。默认值是 1,表示在指定数据文件的第一行。FIRE_TRIGGERS指定目的表中定义的任何插入触发器将在大容量复制操作过程中执行。如果没有指定 FIRE_TRIGGERS,将不执行任何插入触发器。FORMATFILE [ = 'format_file_path' ]指定一个格式文件的完整路径。格式文件描述了含有存储响应的数据文件,这些存储响应是使用 bcp 实用工具在相同的表或视图中创建的。格式文件应该用于以下情况: 数据文件含有比表或视图更多或更少的列。列使用不同的顺序。列分割符发生变化。数据格式有其它的改变。通常,格式文件通过 bcp 实用工具创建并且根据需要用文本编辑器修改。有关更多信息,请参见 bcp 实用工具。 KEEPIDENTITY指定标识列的值存在于导入文件中。如果没有指定 KEEPIDENTITY,在导入的数据文件中此列的标识值将被忽略,并且 SQL Server 将根据表创建时指定的种子值和增量值自动赋给一个唯一的值。假如数据文件不含该表或视图中的标识列,使用一个格式文件来指定在导入数据时,表或视图中的标识列应被忽略;SQL Server 自动为此列赋予唯一的值。有关详细信息,请参见 DBCC CHECKIDENT。 KEEPNULLS指定在大容量复制操作中空列应保留一个空值,而不是对插入的列赋予默认值。KILOBYTES_PER_BATCH [ = kilobytes_per_batch ]指定每个批处理中数据的近似千字节数(KB)。默认情况下,KILOBYTES_PER_BATCH 未知。LASTROW [ = last_row ]指定要复制的最后一行的行号。默认值是 0,表示指定数据文件中的最后一行。MAXERRORS [ = max_errors ]指定在大容量复制操作取消之前可能产生的错误的最大数目。不能被大容量复制操作导入的每一行将被忽略并且被计为一次错误。如果没有指定 max_errors,默认值为 0。ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) 指定数据文件中的数据如何排序。如果装载的数据根据表中的聚集索引进行排序,则可以提高大容量复制操作的性能。如果数据文件基于不同的顺序排序,或表中没有聚集索引,ORDER 子句将被忽略。给出的列名必须是目的表中有效的列。默认情况下,大容量插入操作假设数据文件未排序。n是表示可以指定多列的占位符。ROWS_PER_BATCH [ = rows_per_batch ]指定每一批处理数据的行数(即 rows_per_bacth)。当没有指定 BATCHSIZE 时使用,导致整个数据文件作为单个事务发送给服务器。服务器根据 rows_per_batch 优化大容量装载。默认情况下,ROWS_PER_BATCH 未知。ROWTERMINATOR [ = 'row_terminator' ]指定对于 char 和 widechar 数据文件要使用的行终止符。默认值是 \n(换行符)。TABLOCK指定对于大容量复制操作期间获取一个表级锁。如果表没有索引并且指定了 TABLOCK,则该表可以同时由多个客户端装载。默认情况下,锁定行为是由表选项 table lock on bulk load 决定的。只在大容量复制操作期间控制锁会减少表上的锁争夺,极大地提高性能。注释BULK INSERT 语句能在用户定义事务中执行。对于一个用 BULK INSERT 语句和 BATCHSIZE 子句将数据装载到使用多个批处理的表或视图中的用户定义事务来说,回滚它将回滚所有发送给 SQL Server 的批处理。权限只有 sysadmin 和 bulkadmin 固定服务器角色成员才能执行 BULK INSERT。示例本例从指定的数据文件中导入订单详细信息,该文件使用竖杠 (|) 字符作为字段终止符,使用 |\n 作为行终止符。BULK INSERT Northwind.dbo.[Order Details] FROM 'f:\orders\lineitem.tbl' WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = '|\n' )本例指定 FIRE_TRIGGERS 参数。BULK INSERT Northwind.dbo.[Order Details] FROM 'f:\orders\lineitem.tbl' WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = ':\n', FIRE_TRIGGERS ) =============================================================BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE = batch_size ] --BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量
[ [ , ] CHECK_CONSTRAINTS ] --指定在大容量导入操作期间,必须检查所有对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项,则所有 CHECK 和 FOREIGN KEY 约束都将被忽略,并且在此操作之后表的约束将标记为不可信。
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] --指定该数据文件中数据的代码页
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] --指定 BULK INSERT 使用指定的数据文件类型值执行导入操作。
[ [ , ] FIELDTERMINATOR = 'field_terminator' ] --标识分隔内容的符号
[ [ , ] FIRSTROW = first_row ] --指定要加载的第一行的行号。默认值是指定数据文件中的第一行
[ [ , ] FIRE_TRIGGERS ] --是否启动触发器
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ] --指定导入数据文件中的标识值用于标识列
[ [ , ] KEEPNULLS ] --指定在大容量导入操作期间空列应保留一个空值,而不插入用于列的任何默认值
[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
[ [ , ] LASTROW = last_row ] --指定要加载的最后一行的行号
[ [ , ] MAXERRORS = max_errors ] --指定允许在数据中出现的最多语法错误数,超过该数量后将取消大容量导入操作。
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] --指定数据文件中的数据如何排序
[ [ , ] ROWS_PER_BATCH = rows_per_batch ]
[ [ , ] ROWTERMINATOR = 'row_terminator' ] --标识分隔行的符号
[ [ , ] TABLOCK ] --指定为大容量导入操作持续时间获取一个表级锁
[ [ , ] ERRORFILE = 'file_name' ] --指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。
)]
下面写个个简单的应用例子bulk insert xsxt.dbo.tabletest from 'c:\data.txt'
with(
FIELDTERMINATOR=',',
ROWTERMINATOR='\n'
)
7. 如何把TXT文件数据导入MySQL数据库
具体操作步骤如下:
1、首先打开Navicat软件,连接到数据库进入需要导入的数据库:
8. 如何把文本文档导入MYSQL数据库
方法如下,举例说明:
1、创建测试表,即为要被导入的表:
createtableperson(
idintnotnullauto_increment,
namevarchar(40)notnull,
cityvarchar(20),
salaryint,
primarykey(id)
)engine=innodbcharset=gb2312;
其中local表示本地。执行后,可以看到NULL数据也被正确地导入。
9. 如何将文本文件导入到Oracle数据库中
将文本文件导入Oracle中需要用sqlloader的方式。
1、在数据库中创建相应的表。
如,文本文件内容为:
10. 如何将文本文件中数据导入到SQL表中
1、创建复 load.ctl 文件:
在任意文件夹下制创建load.ctl 文件,用编辑器打开 load.ctl 文件,并写入以下代码:
load data
CHARACTERSET UTF8
infile "D:importdatadatafiledata.txt"
append
into table table_name
fields terminated by '|'
trailing nullcols
(
id,
mobile
)
2、运行 load.ctl 文件:打开 cmd ,切换到 load.ctl 文件目录下,运行以下命令:
sqlldr suncrs/suncrs@ubuat control=load.ctl log=log.log
suncrs为用户名和密码,ubuat为数据库名
(10)文本导入数据库扩展阅读:
load.ctl代码解析:
第二行指定编码(文本文件编码)。
第三行指定要导入的文件data.txt的路径。
第五行指定导入的表(以上l例子表名为:table_name)。
第六行表示字段分隔符。
最后括号内填写字段(注意顺序),字段名写目标表的字段名。