
oracle
javaee_sunny
知行合一.
展开
-
Java调用存储过程长时间未执行完问题-解决方案
上午在生产服务器发现一个不小的问题,就是一个程序在调用存储过程中抢到了锁,但抢到锁后调用存储过程执行出现卡死的情况,导致抢到的锁迟迟没有释放,这导致第二天程序执行时,因为无法获取到锁而无法正常执行。**解决方案:**引入Future类,并设定调用存储过程执行的超时时间,通过get(long timeout, TimeUnit unit),当抛出超时异常时,记录异常,往下进行其他处理逻辑,并正常释放锁。当创建了Future实例,任务可能有以下三种状态:等待状态。此时调用cancel()方法不管传入t原创 2021-03-15 15:10:22 · 3808 阅读 · 0 评论 -
Oracle数据库迁移(从一台服务器迁移到另一台服务器)
1.迁移方法概述:使用Navicat Premium 分别与源数据库和目标数据库建立连接,然后借助Navicat Premium自带的数据传输功能,实现Oracle数据库的迁移.其实跟从mysql数据库迁移到Oracle数据库是一个套路.O(∩_∩)O~ 听起来,是不是很简单,其实就是很简单!下边我就讲一下具体实现的细节流程:2.实现步骤:第一步:在目标数据库中创建表空间和用户这点我再次向对Orac原创 2016-11-01 13:25:21 · 70929 阅读 · 2 评论 -
Oracle数据库使用另一张表的结构或数据创建新表
1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table table_name_new as select * from table_name_old where 1=2; 3. 只复制表数据: 如果两个表结构一样:insert i原创 2016-12-02 10:01:00 · 8969 阅读 · 0 评论 -
Oracle数据库新建用户并为其创建一个视图(示例)
1.创建用户//<1> 以sysdba管理员登录创建用户smart/smart sqlplus /nolog conn /as sysdba; create user smart identified by smart;//<2> 查看所有的用户列表(查看用户是否创建成功) select * from all_users;2.授予权限 --为了能够保证能够登陆,必须赋予如下权限原创 2016-12-02 10:27:00 · 7348 阅读 · 0 评论 -
Oracle中视图的创建和处理方法
一.视图的概念视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。二.视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。2.用户通过简单的查询可以从复杂查转载 2016-12-02 10:40:05 · 609 阅读 · 0 评论 -
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
Oracle 10g 物化视图语法如下:create materialized view [view_name]refresh [fast|complete|force][on [commit|demand] |start with (start_time) next (next_time)]as{创建物化视图用的查询语句}以上是Oracle创建物化视图(Materialized Vi原创 2016-12-02 22:32:56 · 1978 阅读 · 1 评论 -
ORACLE in与exists语句的区别
结论:1. select * from A where id in(select id from B);使用in语句,上述执行次数为A.length * B.length次;2. select a.* from A a where exists(select 1 from B b where a.id=b.id);使用了exists语句,exists()会执行A.length次转载 2017-08-22 11:41:27 · 278 阅读 · 0 评论 -
ORACLE数据库事务隔离级别
事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。2、不可重复读取:事务T1读取一行记录,转载 2017-08-23 16:38:58 · 583 阅读 · 0 评论 -
关于Oracle存储过程中是否需要写commit的问题
是否需要在存储过程中写commit主要要依据需求:(1) 如果是不需要在存储过程中进行提交,而是由调用程序负责提交或者回滚,那么不需要在存储过程中commit或者rollback.毕竟spring框架已经可以帮助我们自动实现事务的控制;(2) 如果不想由调用程序负责提交或者回滚,那么就应该在存储过程中进行commit或rollback; 另外,如果是纯后台数据库开发,一定要写.只是写的时机同样原创 2017-08-23 17:13:07 · 29184 阅读 · 0 评论 -
Oracle数据库创建表空间和用户及删除数据库(用户)
1.创建Oracle表空间与用户Oracle数据库不像MySQL数据库,一个用户可以管理多个数据库,对Oracle来说,一个用户只对应一个数据库,而新创建的用户是没有任何资源和权限的,所以需要管理员用户为其分配资源权限.而创建用户时,需要为用户指定表空间.(1) 由于scott权限不够,不能创建用户,另外因为其他较高权限的账号密码忘记了,所以这里补充一下Oracle更改密码的方法:A.在控制台输入`原创 2016-11-02 09:42:31 · 9125 阅读 · 0 评论 -
Navicat 提示Cannot create oci environment 解决方案
一直在使用Navicat,这是一个数据库客户端软件,能连接多种不同类型的数据库,给我们的日常的工作带来了不少的便捷。最近,我在电脑上安装了orcale,然后,Navicat就莫名其妙的不能连接Oracle数据库了。总是提示如下错误:先说下OCI是什么,百科上这样说:ORACLE调用接口(Oracle CallInterface简称OCI)提供了一组可对ORACLE数据库进行存取转载 2016-10-31 15:35:54 · 13457 阅读 · 0 评论 -
Invalid bound statement (not found)
1.错误现象2.错误原因一般原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上.按以下步骤一一执行:1:检查xml文件所在的package名称是否和interface对应的package名称一一对应2:检查xml文件的namespace是否和xml文件的package名称一一对应3:检查函数名称能否对应上4:去掉xml文件中的中文原创 2016-09-07 17:42:08 · 428 阅读 · 0 评论 -
SSM-Mybatis调用Oracle存储过程返回结果集(游标)
1.创建一个包此处创建一个包,是为了创建存储过程时,用游标作为out输出参数时声明为游标类型用的.--创建一个包create or replacepackage typesas type empListCursor is ref cursor;end types;2.创建存储过程用in表示存储过程的输入参数,用out表示存储过程的输出参数,此处输出参数为游标.CREATE OR REPLA原创 2016-09-08 14:49:47 · 2279 阅读 · 0 评论 -
oracle修改字符集
oracle修改字符集查看oracle服务端编码:select * from sys.nls_database_parameters; 查看client编码:select * from sys.nls_session_parameters;修改客户端编码:翻开运转器进入注册表编辑 运转–》regedit 找到 HKEY_LOCAL_MACHINE/ SOFTWARE/ www.2cto转载 2016-10-24 10:15:30 · 420 阅读 · 0 评论 -
Oracle使用exp,imp迁移数据库
1.从源数据库导出数据:语法:emp user1/pwd1@test1 file='E:test.dmp';示例:emp tianzhi_smart/tianzhi_smart@192.168.56.60:1521/orcl file='E:\tianzhi_smart.dmp';应用截图: 本人愚钝,初次使用时,都不知道在哪里输入这导出语句,所以专门贴出来,以备像我一样的小伙伴,少走些弯路.2.原创 2016-11-02 09:01:06 · 23770 阅读 · 3 评论 -
删除原来的oracle数据库(用户),但不更换表空间,并重新导入数据
<!-- 1. 删除前的准备工作: --><!-- (1) 连接数据源,导出备份数据 -->exp tianzhi_smart/tianzhi_smart@1localhost:1521/orcl file='E:\tianzhi_smart.dmp';<!--(2)登录即将被删除的用户,查看当前连接用户缺省表空间:-->SQL>select username,default_tablesp原创 2016-11-09 14:02:58 · 11042 阅读 · 0 评论 -
Timestamp类型使用小结
1.背景介绍:在做项目的过程中,涉及到一个新闻发布的问题,最初保存新闻发布时间,我用的是Date类型,同样在Oracle数据库中,也是DATE类型.但格式都是YYYY-MM-DD的.如果同一天发布很多新闻,那根据发布时间排序的话,当天发布的新闻就是乱序的.而测试要求,需要进行有序排列.经查询,可以通过更改数据库DATE格式的方式,来进行设置.但我没有采用这种方式,而是将新闻Model实体类中的发布时原创 2016-11-11 17:31:17 · 13259 阅读 · 0 评论 -
Mybatis中oracle、mysql、db2、sql server的like模糊查询
原文在oracle模糊查找的第一种书写方式上有误,这里做了修改.<!-- oracle 注意concat括号的书写位置--> <select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User"> select * from t_user where转载 2016-10-21 09:48:44 · 4091 阅读 · 1 评论 -
mysql数据库迁移至Oracle数据库
1.使用工具:(1) Navicat Premium (2) PL/SQL Developer 11.0 (3) Oracle SQL Developer 4.0.0.12.84(点击可进入下载页面) 特别说明:最初我用的一直是高版本的Oracle SQL Developer,但在数据库移植两分钟之后一直报错,试了很多次一直报错,而错误信息又报的不明确.最后换成 Oracle SQL Deve原创 2016-10-20 17:14:12 · 6078 阅读 · 1 评论 -
Mybatis实现批量删除操作
这里主要考虑两种参数类型:数组或者集合.而这点区别主要体现在EmpMapper.xml文件中标签的collection属性:当collection=”array“时,表名参数为数组;当collection=”list“时,表名参数为集合.具体示例如下:EmpMapper.xml: <!-- 批量删除员工信息 --> <delete id="batchDeleteEmps" par原创 2016-09-12 11:10:06 · 81428 阅读 · 11 评论