oracle数据库

Java jdbc操作oracle数据库的两种方式

淺唱寂寞╮ 提交于 2020-03-08 18:15:15
本文由广州疯狂软件java培训分享:   第一种应该是比较古老的方法了。   Windows下采用JDBC-ODBC Bridge连接oracle数据库   1、 安装oracle客户端程序,在tnsnames.ora中配置好相应的数据库连接串文件,此处设连接串名为“dbora”。   2、 在windows的控制面板->“数据库源ODBC”中,建立相应的用户或者系统DSN,具体方法:在安装的数据源的驱动程序选择“Microsoft ODBC for Oracle”。   点击“完成”,在弹出的对话框中,填入如下信息:   数据源名称:dbjdbc   描述:jdbc数据源   用户名称:manager -此为数据库用户名   服务器:dbora -此即为连接串名   其中“dbjdbc”是在java程序中要引用的名字,至此数据源dbjdbc已建立。   3、 建立如下的java程序   // 使用本地的jdbc连接串,查询oracle数据库表   import java.sql.*;   public class lookup {   public static void main(String[] args)   throws SQLException, ClassNotFoundException {   //定义了数据库连接串   String dbUrl = "jdbc

Oracle之物化视图

微笑、不失礼 提交于 2020-03-08 14:15:37
物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。 1、物化视图的类型:ON DEMAND、ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。 2、ON DEMAND物化视图 物化视图的创建本身是很复杂和需要优化参数设置的,特别是针 对大型生产数据库系统而言。但Oracle允许以这种最简单的,类似于普通视图的方式来做,所以不可避免的会涉及到默认值问题。也就是说Oracle给物 化视图的重要定义参数的默认值处理是我们需要特别注意的。 物化视图的特点: (1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证; (2) 物化视图也是一种段(segment),所以其有自己的物理存储属性; (3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证; 创建语句

Oracle之物化视图

左心房为你撑大大i 提交于 2020-03-08 14:15:19
Oracle之物化视图 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于这方面的资料,便于提高,整理内容如下: 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。 1、物化视图的类型:ON DEMAND、ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。 2、ON DEMAND物化视图 物化视图的创建本身是很复杂和需要优化参数设置的,特别是针 对大型生产数据库系统而言。但Oracle允许以这种最简单的,类似于普通视图的方式来做,所以不可避免的会涉及到默认值问题。也就是说Oracle给物 化视图的重要定义参数的默认值处理是我们需要特别注意的。 物化视图的特点: (1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证; (2) 物化视图也是一种段(segment)

Oracle中的视图和实例化视图之间有什么区别?

隐身守侯 提交于 2020-03-08 14:10:50
Oracle中的视图和实例化视图之间有什么区别? #1楼 物化视图 -磁盘上包含查询结果集的表 非标准化视图 -从基础表中提取数据的查询 #2楼 在Mike McAllister的漂亮回答中加了... 当编译器认为视图查询很 简单 时,只能将实例化视图设置为通过数据库 自动 刷新以检测更改。 如果认为它太复杂,它将无法设置本质上是内部触发器的组件来跟踪源表中的更改,从而仅更新mview表中的更改行。 创建实例化视图时,您会发现Oracle同时创建了mview 和具有相同名称的表 ,这会使事情变得混乱。 #3楼 视图: 视图只是一个命名查询。 它不存储任何内容。 视图上存在查询时,它将运行视图定义的查询。 实际数据来自表。 物化视图: 物理存储数据并定期更新。 查询MV时,它会提供MV中的数据。 #4楼 物化视图是由选择查询驱动的数据逻辑视图,但是查询结果将存储在表或磁盘中,查询的定义也将存储在数据库中。 物化视图的性能优于普通视图,因为物化视图的数据将存储在表中,并且表可能会被索引,因此连接速度更快,并且在物化视图刷新时也会进行连接,因此无需每次触发连接语句,视情况而定。 其他区别包括:在使用View的情况下,我们总是获取最新数据,但是在实现视图的情况下,我们需要刷新视图以获取最新数据。 在实例化视图的情况下,我们需要额外的触发器或某种自动方法,以便我们可以保持MV的刷新

记一次oracle数据库复制过程

﹥>﹥吖頭↗ 提交于 2020-03-08 04:12:35
记录一次自己数据库复制的过程(从公司测试环境复制到客户测试环境),主要是每次自己都会忘记,不如记录一下,方便自己以后找,因此, 本篇内容不会很详细,主要是用于给我自己提醒,相对于一种记笔记的效果 。 cmd命令导入导出库 一开始,我是打算使用cmd输命令进行导入导出数据的,因为以前试过这样比较方便,也不会出现什么clob,blob数据录入时候的报错,省力省心,只是命令给忘记了,百度了一会儿,使用命令如下: exp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y 即:exp 用户名/密码@实例名 file=保存的dmp文件路径 full=y 然后不出所料的报了什么标识符无效的错误,当时没想到是oracle版本问题,然后又试了下以下命令 exp root/123456@127.0.0.1:1521/orcl owner=root file=d:\test.dmp 结果还是报了个标识符无效,只是是另一个标识符,这时候反应过来,版本不匹配,我本地装的是oracle11,公司测试库装的是oracle10,随后百度半天,未果。。。。无奈放弃使用命令导出库,不过内容还是得补全一下, 以下导入命令暂未测试 ,先记录下 imp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y

如何在oracle中导入dmp数据库文件

流过昼夜 提交于 2020-03-07 23:30:04
如何在oracle中导入dmp数据库文件 --如何在oracle中导入dmp数据库文件 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。 SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例。 数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:\daochu.dmp owner=

RAC配置(启停库)

天大地大妈咪最大 提交于 2020-03-07 17:37:19
关库顺序 :先关闭数据库 然后关闭节点资源 [root@rac1 ~]# srvctl stop database -d 数据库名 [root@rac1 ~]# srvctl stop instance -d 数据库名 -i 实例1 [root@rac1 ~]# srvctl stop instance -d 数据库名 -i 实例2 [root@rac1 ~]# srvctl stop nodeapps -n 节点1 [root@rac1 ~]# srvctl start nodeapps -n 节点2 启库顺序相反 [root@rac1 ~]# srvctl start nodeapps -n 节点1 [root@rac1 ~]# srvctl start nodeapps -n 节点2 [root@rac1 ~]# srvctl start instance -d 数据库名 -i 实例1 [root@rac1 ~]# srvctl start instance -d 数据库名 -i 实例2 [root@rac1 ~]# srvctl start database -d 数据库名 [root@rac1 ~]# srvctl stop database -d prod root用户关库命令 [root@rac1 ~]# srvctl start database -d prod

oracle数据库定义语句DDL

余生颓废 提交于 2020-03-07 11:02:36
1、建表语句: create table 表名(字段名 类型,字段名 类型); --删除表: drop table 表名; --修改表: alter table 表名 add 字段名 类型; --修改字段: alter table 表名 modify(字段名 类型); --重命名字段: alter table 表名 rename column 字段名 to 新字段名; --重命名表 : rename 表名 to 新表名; --删除字段: alter table 表名 drop column 字段名; 2、序列(sequence) --创建sequence create sequence 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n| NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n| NOCACHE}]; 其中: 1) INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。 2) START WITH 定义序列的初始值(即产生的第一个值),默认为1。 3) MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列

oracle数据库数据导入导出步骤(入门)

早过忘川 提交于 2020-03-07 06:24:56
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本差异引起的问题,同时效率更高,但特别注意:采用命令时要注意所使用的用户及其权限等细节。 3.在目标数据库导入时需要创建与导出时相同的用户名(尽量一致),并赋予不低于导出时用户的权限;同时还需创建与原数据库相同的表空间名,若本地数据库已存在相同的表空间,则只能进行表空间扩充。 一、导入前准备工作(在目标数据库操作) 知识补充: 表空间   Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。   表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。 1. 登录服务器  用Xshell或者secureCRT工具都可 2. 查询磁盘空间是否足够大  执行df -h或者df -H命令进行查询,若可用空间不足则更换新的目标环境再继续其他操作。 [oracle@orac ~]$ df -h 1 3.

ORACLE 导入导出

ぃ、小莉子 提交于 2020-03-07 06:22:51
数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys) 3 将数据库中的表table1 、table2导出 exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。 不过在上面命令后面 加上 compress=y 就可以了 数据的导入 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:\daochu.dmp 上面可能有点问题,因为有的表已经存在,然后它就报错