ASP(Active Server Pages)是微软公司为开发互联网应用程序所提出的工具之一 ASP与数据库的联接一般通过ADO(Activex Data Object)来实现的 就象《计算机世界》 年 月 日的《用ASP对SQL Server数据库 *** 作》文章介绍的一样 ADO可以完全支持Microsoft SQL Server 但对应用更加广泛 机制更加复杂的ORACLE 数据库服务就有一些困难 如果想作一些简单的查询功能 ADO是足够的 如要想更好地发挥ORACLE数据库特有的功能 如STORED PROCEDURE STORED FUNCTION等就要采取利用ASP存取ORACLE 数据库服务的另一个强有力工具——Oracle Object for OLE中的ORACLE对象服务器(The Oracle Object Server) 本文从一个实例说明如何在ASP中使用ORACLE对象服务器提供的控件来实现对ORACLE数据库的存取 并就如何维护网络数据库的完整性约束问题进行一些讨论 Oracle Object for OLE是ORACLE公司为了客户端存取数据库所发展的一个很需要的产品 它以Windows / /NT 为基础供所有的与OLE 兼容的应用程序与程序语言存取ORACLE数据库 如ASP Visual Basic excess 等 Oracle Object for OLE包含了ORACLE对象服务器(The Oracle Object Server) ORCLE 数据控制项(The Oracle Data Control)与ORACLE 对象类程序库(The Oracle Objects for OLE C++ Class Library)等三项产品 与ADO相比 ORACLE对象服务器是专用于ORACLE数据库应用程序开发的产品 它有以下优点 ( ) 与数据库服务器的连接的运行效率好 因为ADO是通过ODBC来连接数据库服务器的 而ORACLE对象服务器是通过ORACLE的SQL*NET来连接数据库服务器的 ( ) 能更好地发挥ORACLE数据库的特有功能 如STORED PROCEDURE STORED FUNCTION PACKAGE或Multiple Cursor 本例是一个通讯录的查询 录入的小程序 用户可以通过浏览器对通讯录表进行查询 也可把自己的信息输入 供别人查询 通讯录表的结构如下
Name Null? Type NAME NOT NULL CHAR( )ADDRESS CHAR( )PHONE CHAR( )EMAIL VARCHAR ( )
首先 进行环境配置 在WEB服务器上安装以下软件并进行配置 ( )基本的WEB 服务器(WEB SERVER)与ASP等软件 ( )Oracle Object for OLE x ( )SQL*Net Client 或 Oracle Net Client 安装之后 用Sql*Net Easy Configuration建立数据库别名(Database Alias) 为ASP连接到数据库所用的别名 二.功能实现 ( )查询 用ASP 取数据库通讯录表(TSB )的数据 将数据显示在屏幕上 查询的关键在于确定与数据库的连接成功与否 ORACLE对象服务器本身有错误控制机制可以报出数据库连接方面的错误 具体的程序如下
<HTML > <tile > 查询程序 </title ><BODY ><%on error resume next 连接数据库set orasession=createobject( OracleInprocServer XOraSession )set oradatabase=orasession dbopendatabase( axp scott/tiger ) 出错处理if err number >thenresponse write <h >asp 错误控制 </h >response write asp 错误来源: &err source &<br >response write asp 错误代码: &err number&<br >response write asp 错误说明: &err description&<br >err clearresponse write <h >ORACLE OLE 错误控制</h >response write ORACLE 错误代码: &OraSession LastServerErr&<br >response write ORACLE 错误说明: &OraSession LastServerErrText&<br >else 查询sql= select * from t *** set oradynaset=oradatabase dbcreatedynaset(sql )response write <h >result</h >response write <table border= ><tr >for i= to ount response write <td >response write oradynaset fields(i) name &response write </td >nextresponse write </tr >do until oradynaset eofresponse write <tr >for i= to ount response write <td >response write oradynaset fields(i) value response write </td >next response write </tr >oradynaset dbmovenextloopresponse write </table >关闭数据库oradatabase closeset orasession=nothingend if% ></body ></ >下面是程序的查询结果图面 通讯录 NAME ADDRESS PHONE EMAIL 张玲 马鞍山市湖北路 号 zh cn 林向 马鞍山市湖南路 号 l cn 邓国虹 采矿路子 幢 号 李城 青岛海洋大学 幢 王国在 采矿小区 幢 号 cn 丁刚 红旗南路 幢 号 d cn 全在保 江西路子 幢 号 ( )插入自己的信息 用ASP将用户在浏览器上提供的数据插入到数据库通讯录表(TSB )中 由ORACLE数据库有一套完整性约束机制 所以插入过程不光是简单地把数据插入到表中 还要做完整性约束的检查 不合要求的数据拒绝插入 如果在程序中不考虑处理 运行时 就会因数据库服务器报错而中断程序 而ASP中的ERR对象可以报出错误来源 错误代码 错误说明等 并能把程序引向错误处理 以下是程序 一个是 是一个输入界面 供用户输入自己的信息 一个是insert asp 负责将用户输入信息插入数据库 并进行错误检查
lishixinzhi/Article/program/Oracle/201311/17490
我们在插入数据到数据库中的时候,常用的语句如下:INSERT INTO table1(id, name, address) VALUES(1, ygl, 'beijing')——适用于T-sql和PL/SQL;SELECT id, name, address INTO table2 FROM table1——自动创建table2,T-sql用法;INSERT INTO table2(id, name, address) SELECT id, name, address FROM table1这里简单说一下第三句,由于可以指定插入到talbe2中的列,以及可以通过相对较复杂的查询语句进行数据源获取,可能使用起来会更加的灵活一些,但我们也必须注意,我们在指定目标表的列时,一定要将所有非空列都填上,否则将无法进行数据插入,还有一点比较容易出错的地方就是,当我们写成如下简写格式:INSERT INTO table2 SELECT id, name, address FROM table1此时,我们如果略掉了目标表的列的话,则默认会对目标表的全部列进行数据插入,且SELECT后面的列的顺序 必须和目标表中的列的定义顺序完全一致 才能完成正确的数据插入,这是一个很容易被忽略的地方,值得注意。sql教程收集整理
本文章来自sql.21shipin.com sql教程网 原文链接: http://sql.21shipin.com/sqlsjc/44.html
导出的话,在查询结果中选中查询结果右单击就有 COPY TO EXCEL这个选择的,导入是有点麻烦的,如果你数据少的话建议参考下边的F方法。=========================================================
将excel数据导入oracle中 A、有一个比较麻烦但保证成功的方法。
1、在本地创建一个Access数据库,将Excel数据先导入到Access。可直接导入点击鼠标右键,选择导入,文件类型选择要导入的Excel文件,也可通过创建宏用TransferSpreadsheet函数实现。
2、在本地创建ODBC,链接oracle数据库。将oracle中需要导入数据的表以链接表的方式在本地Access中创建(千万不要使用导入表)。
3、在Access数据库中创建插入查询将导入好的Excel数据导入到oracle中。
此方法保证成功。
B、也可以导入sql server 用它的导出工具导入oracle 但对一些image字段支持不好,你如果
没这种字段就行。
用MS_sqlserver 提供的数据导出导入功能可以方便的把excel方便的导入oracle数据库
C、一种方法:
先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl
用sqlldr进行导入!
insert.ctl内容如下:
load data--1、控制文件标识
infile 'test.csv'--2、要输入的数据文件名为test.csv
append into table table_name --3、向表table_name中追加记录
fields terminated by ',' --4、字段终止于',',是一个逗号
(field1,
field2,
field3,
...
fieldn)-----定义列对应顺序
注意括号中field排列顺序要与csv文件中相对应
然后就可以执行如下命令:
sqlldr user/password control=insert.ctl
有关SQLLDR的问题
控制文件:input.ctl,内容如下:
load data --1、控制文件标识
infile 'test.txt' --2、要输入的数据文件名为test.txt
append into table test--3、向表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符(TAB)
(id,username,password,sj) -----定义列对应顺序
其中append为数据装载方式,还有其他选项:
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
问题:SQLLDR能不能保留表中原有的数据,如果发现KEY重复时,再UPDATE对应的记录?
D、先?EXCEL文件??成TXT文件
再使用SQLLOADER
E、将EXCEL文件保存成*.csv格式. 然后用sqlload来导入表中.
sqlload是Oracle自带的数据倒入工具,应该是没有可视化工具的(至少我一直用命令行)。
直接在命令行下敲入sqlldr即可得到帮助。
F、如果你的单个文件不大的情况下(少于100000行), 可以全选COPY ,然后用PL/SQL.:
select * from table for update. 然后打开锁, 再按一下加号. 鼠标点到第一个空格然后粘贴. COMMIT即可.(小窍门, ORACLE不支持的, 但很好用, 不会有问题)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)