<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="javasql" %>
<%/////连接数据库
javasqlConnection conn;
javasqlStatement stmt;
javasqlResultSet rs1;
ClassforName("sunjdbcodbcJdbcOdbcDriver");
conn=DriverManagergetConnection("jdbc:odbc:dababasename");///数据源
stmt=conncreateStatement();
%>
<%
String sqlin="insert into drawing values ;
File file = new File("c:/zjpg");
long l1=filelength();
int l2=(int)l1;
FileInputStream is = new FileInputStream(file);
InputStream fis=(InputStream)is;
PreparedStatement ps = connprepareStatement("insert into images values (,)");
pssetString(1,filegetName());
pssetBinaryStream(2,fis,filelength());
psexecuteUpdate();
psclose();
fisclose();
//将从数据库中提取,进行显示
//drawing字段为IMAGE类型
stmt = conncreateStatement();
rs1 = stmtexecuteQuery("SELECT FROM drawing WHERE drawing_code ='0-515' and version=3");
if (rs1next())
{
String dim_image = rs1getString("file_name");
byte [] blocco = rs1getBytes("drawing");
responsesetContentType("image/jpeg");
ServletOutputStream op = responsegetOutputStream();
for(int i=0;i<bloccolength;i++)
{
opwrite(blocco[i]);
}
}
rs1close();
%>
具体 *** 作步骤如下:
1、首先打开Navicat软件,连接到数据库进入需要导入的数据库:
2、然后点击表格,选择右键导入向导,进行导入 *** 作:
3、这里可以选择很多种导入方式,点击文本文件从txt中导入,选择后点击下一步:
4、点击下一步会d出对话框,选择要导入的文件,双击文件导入即可:
5、导入之后进入下一步,然后设置分隔符,这里不做改变,然后回车进行下一步:
6、然后需要拿表中的元素和txt中的元素的首行做匹配,这里需要一个一个完成:
7、完成手工匹配后点才会开始导入 *** 作,如果有错误信息会在下方显示,没有则会通过:
8、导入时间根据数据量的大小决定,等待片刻就会打入成功,最后打开数据会发现数据已经全部导入了:
大型的数据库开发中常常遇到数据源是平面文件(如文本文件)的情况,对于这样的数据源,无法使用数据库对其数据进行有效的管理,另外也无法使用SQL语句对其进行查询和 *** 作,所以当务之急就是将这些平面文件导入到数据库中,然后就可以对其进行高效的 *** 作了。
下面介绍几种常见的数据导入的方法,希望能够给大家启迪。另外,本文所涉及到的数据库均为ORACLE数据库,其实对于其他数据库而言,方法类似。
一、Sql:Loader
该方法是Oracle数据库下数据导入的最重要的方法之一,该工具由Oracle客户端提供,
其基本工作原理是:首先要针对数据源文件制作一个控制文件,控制文件是用来解释如何对源文件进行解析,其中需要包含源文件的数据格式、目标数据库的字段等信息,一个典型的控制文件为如下形式:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410txt'
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/ipaagentdetail200410txt'指明所要导入的源文件,其实源文件也可以直接通过命令行来输入获得 ,fj_ipa_agentdetail为目标表的名字,fields terminated ","是指源文件的各个字段是以逗号分隔,trailing nullcols表示遇到空字段依然写入到数据库表中,最后这5个字段是目标数据库表的字段结构。通过上面这个典型的控制文件的格式分析可知,控制文件需要与源文件的格式信息一致,否则导入数据会出现异常。
除了控制以外,sqlloader的还需要数据文件,即源文件。根据格式的不同,源文件可以分为固定字段长度和有分隔符这两大类,这里将分别说明这两种情况:
固定字段长度的文本文件
就是每个字段拥有固定的字段长度,比如:
602530005922 1012
602538023138 1012
602536920355 1012
602531777166 1012
602533626494 1012
602535700601 1012
有分隔符的文本文件
就是每个字段都有相同的分隔符分隔,比如:
1001,上海长途电信综合开发公司,南京东路34号140室
1002,上海桦奇通讯科技有限公司,武宁路19号1902室
1003,上海邦正科技发展有限公司,南京东路61号903室
对于上述两种文件格式sqlloader均可以做处理,下面就前面那个固定长度的文本来举例说明:
由于该文本只有两个字段,一个为设备号,一个是区局编号,两者的长度分别为20和5,那么可以编制控制文件如下:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagent200410txt'
TRUNCATE
INTO TABLE fj_ipa_agent
( DEVNO POSITION(1:20) CHAR,
BRANCH_NO POSITION(21:25) CHAR
)
其中,'/ora9i/fengjie/agent/data/ipaagent200410txt'为该文件的完全路径,POSITION(M:N)表示该字段是从位置M到位置N。
对于有分隔符的数据文件,前面已经有一个例子,这里就不再赘述了。总之,使用SqlLoader能够轻松将数据文件导入到数据库中,这种方法也是最常用的方法。
二、 使用专业的数据抽取工具
目前在数据仓库领域中,数据抽取与装载(ETL)是一重要的技术,这一技术对于一些大的数据文件或者文件数量较多尤其适合。这里简单介绍目前一款主流的数据抽取工具 ――Informatica。
该工具主要采用图形界面进行编程,其主要工作流程是:首先将源数据文件的结构(格式)导入为Informatica里,然后根据业务规则对该结构进行一定的转换(transformation),最终导入到目标表中。
以上过程仅仅只是做了一个从源到目标的映射,数据的实际抽取与装载需要在工作流(workflow)里进行。
使用专业的数据抽取工具,可以结合业务逻辑对多个源数据进行join,union,insect等 *** 作,适合于大型数据库和数据仓库。
三、 使用Access工具导入
可以直接在Access里选择‘打开‘文本文件,这样按照向导来导入一个文本文件到Access数据库中,然后使用编程的方法将其导入到最终的目标数据 库中。
这种方法虽然烦琐,但是其对系统的软件配置要求相对较低,所以也是有一定的使用范围方法/步骤
1
1)打开你的sql server,找到要导入数据的数据库,右键——〉任务——〉导入数据
2
2)按照图示选择要导入的excel
3
3)选择导入到哪个数据库
4
4)导入excel选择第一项即可,选择第二项是表与表直接内容的筛选复制
5
5)选择源表和源视图
6
6)编辑映射页面
7
7)继续下一步,点击完成,看到传输数据完成页面
8
8)进入数据库刷新,查看刚刚导入的表,完成!将本地数据库导入到服务器数据库的方法/步骤:
1、在本地和服务器都安装同样的数据库客户端,如oracle常用SQLPlus、MySQL常用HeiDi
sql或者navicat、mssql2005则常用SQL
Server
Management
Studio;
2、在本地通过数据库客户端导出数据库为sql文件;
3、将sql文件远程传递到服务器上;
4、在服务器上用相同的数据库客户端将sql文件执行一遍即可将本地数据库导入到服务器上。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)