因业务需要,我们项目要与银行进行数据交换,其中之一就是通过Excel文件交换数据,即将Excel文件中的数据导入到数据库中。因为数据库用的是Oracle,所以搜索了一下,汇总了以下3种好用也较常用Oracle导入Excel数据的方法。
假设存在“e:\test.xls”文件,该文件中存在三列数据分别代表客户编号,客户名称和联系电话。内容如下:
10001, zjaxi01 ,13562485246
10002 ,zjaxi02 ,13562485247
10003 ,zjaxi03 ,13562485248
10004 ,zjaxi04 ,13562485249
10005 ,zjaxi05 ,13562485250
10006 ,zjaxi06 ,13562485251
用java调用3种类型oracle存储过程总结
因工作需要,开始学习Oracle的存储过程。本来以为很简单的,因为存储过程可以理解为对SQL语句的一个包装,但几经挫折,查遍互联网络,总算搞通了,为了以后重温方便,在这里记录一下。这里记录了调用三种存储过程的方法:1.无返回值的存储过程;2.返回标量的存储过程;3.返回列表的存储过程。
一:无返回值的存储过程
存储过程为:
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
阅读全文…
相关日志
Oracle数据类型简介
一、概述
在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。
二、标量(SCALAR)
合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。
数字,它有三种基本类型–NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整数。
NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是NUMBER(P,S),P是精度,最大38位,S是刻度范围,可在-84…127间取值。例如:NUMBER(5,2)可以用来存储表示-999.99…999.99间的数值。P、S可以在定义是省略,例如:NUMBER(5)、NUMBER等; 阅读全文…
相关日志
30个你不能不知的Oracle语句优化规则
1.选用适合的Oracle优化器
Oracle的优化器共有3种:
a.RULE(基于规则)
b.COST(基于成本)
c.CHOOSE(选择性)
设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE、COST、CHOOSE、ALL_ROWS、FIRST_ROWS。你当然也在SQL句级或是会话(session)级对其进行覆盖。
为了使用基于成本的优化器(CBO,Cost-Based Optimizer),你必须经常运行analyze命令,以增加数据库中的对象统计信息(object statistics)的准确性。 阅读全文…
相关日志
Oracle函数大全
最近在学Oracle,发现Oracle中的函数蛮多的,为以后需要时查找方便,先全部写在这里。要学好Oracle,一定要学好PL/SQL块的编写,这样就能写好存储过程、函数和触发器之类。要想学好PL/SQL则一定要对SQL语句和函数了如指掌才行。
1.ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii(’A') A,ascii(’a') a,ascii(’0′) zero,ascii(’ ‘) space from dual; 阅读全文…
相关日志
数据库分页大全(mssql,mysql,oracle)
数据库分页是很常用的技术,下面讲了三种主流数据库的分页方法,分别是Mysql,Mssql和Oracle。
Mysql分页采用limt关键字
select * from t_order limit 5,10; #返回第6-15行数据
select * from t_order limit 5; #返回前5行
select * from t_order limit 0,5; #返回前5行
阅读全文…
相关日志
SQL PLUS命令使用大全
SQL*PLUS命令的使用大全
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。
我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
下面就介绍一下一些常用的sql*plus命令: 阅读全文…
相关日志
优化Oracle的SQL语句(六)
第十五 基于函数的索引要求等式匹配
上面的例子中,我们创建了基于函数的索引,但是如果执行下面的查询:
select * from emp where substr(ename,1,1)=’S’ 阅读全文…
相关日志
优化Oracle的SQL语句(五)
第十一 like子句尽量前端匹配
因为like参数使用的非常频繁,因此如果能够对like子句使用索引,将很高的提高查询的效率。
例6:select * from city where name like ‘%S%’
以上查询的执行计划用了全表扫描(TABLE ACCESS FULL),如果能够修改为:
select * from city where name like ‘S%’。 阅读全文…
相关日志
优化Oracle的SQL语句(四)
第七 索引提高数据分布不均匀时查询效率
索引的选择性低,但数据的值分布差异很大时,仍然可以利用索引提高效率。A、数据分布不均匀的特殊情况下,选择性不高的索引也要创建。
表ServiceInfo中数据量很大,假设有一百万行,其中有一个字段DisposalCourseFlag,取值范围为枚举值:[0,1,2,3,4,5,6,7]。按照前面说的索引建立的规则,“选择性不高的字段不应该建立索引,该字段只有8种取值,索引值的重复率很高,索引选择性明显很低,因此不建索引。然而,由于该字段上数据值的分布情况非常特殊,具体如下表: 阅读全文…
相关日志