
oracle专栏
文章平均质量分 57
欢迎访问我的oracle专栏
智汇优库
微信公众号:智汇优库。关注我,系统学习数字化转型、企业智慧解决方案!
展开
-
简介如何查看执行计划以及执行计划的准确性
很多朋友都问过我优化SQL的事情。我觉得在我不断地鼓励下,很多朋友现在都知道优化SQL之前要先看看执行计划,也在优化中获得了很多快乐。但是今天有人问我执行计划应该怎么看。我觉得这是个值得写一写的东西。 2012年6月21日增加: 我下面的执行计划是怎么打印出来的,很多朋友还是不知道。其实语句只有三条: explain plan for转载 2017-11-27 13:36:33 · 631 阅读 · 0 评论 -
oracle是否需要建索引
什么字段应该建立索引 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的; 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间; 在经常使用在WHERE子句中的列上面创建索引,加快原创 2017-07-17 13:58:56 · 1062 阅读 · 0 评论 -
用户权限管理模块的数据库设计
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员转载 2017-02-24 17:04:51 · 647 阅读 · 0 评论 -
Oracle 中的Userenv()
1.USEREVN()返回当前用户环境的信息,opt可以是:ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE1.ISDBA 查看当前用户是否是DBA如果是则返回trueSQL> select userenv('isdba') from dual;USEREN------原创 2015-05-27 10:55:05 · 882 阅读 · 0 评论 -
spring与mybatis三种整合方法
本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接http://code.google.com/p/mybatis/下载到。 1、采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数。 (1)Spring配置文件:原创 2015-04-17 14:35:28 · 622 阅读 · 0 评论 -
mybatis的BLOB存储与读取
简单介绍一下背景环境,web开发避免不了照片附件之类的东东,原先是存到硬盘的文件下,存储读取都比较方便。现在公司弄了个硬件负载均衡,6台服务器,当用户登录的时候会随机分配到其中的一台机器上,6台机器安装的相同的server,session不共享。访问的同一个oracle11.2g,这样的话,原先的附件就可能不好使了,必须保证6台机器共享文件,想想直接放到数据库里吧,将来再做个本地缓存之类的。ok背转载 2015-04-17 14:32:54 · 47780 阅读 · 2 评论 -
powerbuilder调试
首先在你要调试的源代码中设置断点,在要设置断点的行,点击右键,选择breakpoint,选择后,会看见这一行的最左侧有一个小点,就是断点,DEBUG过程中,如果执行到本段程序,就会进入调试程序逐行执行。设置好断点后,运行程序,不是使用run运行,而是使用菜单上有一个按钮,名字叫DEBUG,在RUN菜单下也可以看到,使用这个运行,运行起来后,第一次会进入主应用的OPEN,点击start,屏幕菜单原创 2015-04-23 09:56:24 · 2277 阅读 · 0 评论 -
基于mybatis动态sql的dao封装
package com.yxkong.common.dao.impl;import java.io.Serializable;import java.sql.SQLException;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.annotation.Reso原创 2015-04-07 09:45:23 · 2678 阅读 · 0 评论 -
Oracle 中的Userenv()
1.USEREVN()返回当前用户环境的信息,opt可以是:ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE1.ISDBA 查看当前用户是否是DBA如果是则返回trueSQL> select userenv('isdba') from dual;USEREN------原创 2015-03-24 10:25:39 · 786 阅读 · 0 评论 -
JDBC中的Statement和PreparedStatement的区别
以Oracle为例吧Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume from table where colume=2;会生成两个执行计划一千个查询就生成一千个执行计划!PreparedStatement用于使用绑定变量重用执行计划转载 2017-07-31 16:34:18 · 581 阅读 · 0 评论 -
Oracle11g下载地址--多平台下的32位和64位
复制链接使用迅雷即可下载。 4种包的介绍: ***_database_*.zip 是oracle数据库 服务端 软件的安装包,如果你要创建一个数据库,请下载这个版本 ***_client_*.zip 是oracle数据库 客户端 软件的安装包,如果你不需要创建数据库,只是用来操作远程电脑上的数据库时,转载 2017-09-28 21:57:37 · 1163 阅读 · 0 评论 -
oracle 存储过程 ,触发器练习
/*以下代码是对emp表进行显示宽度设置 */col empno for 9999;col ename for a10;col job for a10;col mgr for 9999;col hiredate for a12;col sal for 9999;col comm for 9999;col deptno for 99;col tname f转载 2017-09-30 16:46:29 · 666 阅读 · 0 评论 -
查看Oracle执行计划的几种方法
查看Oracle执行计划的几种方法一、通过PL/SQL Dev工具 1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。 2、先执行 EXPLAIN PLAN FOR select * from tableA where转载 2017-11-30 09:14:56 · 857 阅读 · 0 评论 -
mybatis调用存储过程
[sql] view plain copyCREATE OR REPLACE PROCEDURE "SP_MF_I_IMP" ( I_MANIFEST_I_ID IN NUMBER , I_FUNCTION_CODE IN VARCHAR2, I_FIRM_ID转载 2017-10-26 15:12:22 · 572 阅读 · 0 评论 -
mybatis调用oracle存储过程返回结果集
存储过程:[sql] view plain copyCREATE OR REPLACE procedure P_TEST(v_cursor OUT sys_refcursor) as begin OPEN v_cursor FOR select POST_ID, FORUM_ID, USER_I转载 2017-10-25 23:24:00 · 1287 阅读 · 0 评论 -
简单统计报表例子(存储过程)
1 create or replace procedure bb_quxzbmjdqzxfqk_ces(kssj in date, 2 jssj in date, 3 wtsd2 varchar2, 4转载 2017-10-25 23:22:54 · 1906 阅读 · 0 评论 -
oracle 中 cursor 与refcursor及sys_refcursor的区别 (转载)
引用一、显式cursor 显式是相对与隐式cursor而言的,就是有一个明确的声明的cursor。显式游标的声明类似如下(详细的语法参加plsql ref doc ): cursor cursor_name (parameter list) is select ... 游标从declare、open、fetch、close是一个完整的生命旅程。当然了一个这样的游标是可以被多转载 2017-10-25 23:21:19 · 347 阅读 · 0 评论 -
Oracle 执行计划(Explain Plan) 说明
分类: Oracle 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本可以断定是执行计划出了问题。 看懂执行计划也就成了SQL优化的先决条件。 这里的SQL优化指的是SQL性能问题的定位,定位后就可以解决问转载 2017-10-23 10:59:14 · 371 阅读 · 0 评论 -
要提高SQL查询效率where语句条件的先后次序应如何写
我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择转载 2017-10-23 10:58:19 · 483 阅读 · 0 评论 -
Oracle中的where部分的各个条件的执行顺序(右->左)
原网址:http://blog.sina.com.cn/s/blog_7e4ac8b50100vcwv.htmlSQL 条件字段(Where 部分)的分析和执行顺序[ 右——>左 ]实验一:证明了SQL的语法分析是从右到左的下面的试验在9i和10G都可以得到相同的结果: 第1条语句执行不会出错,第2条语句会提示除数不能为零。1.Select 'ok' From Dual W转载 2017-10-23 10:57:22 · 812 阅读 · 0 评论 -
PB函数大全
PB函数大全Abs()功能计算绝对值。语法Abs ( n )参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值。如果参数n的值为NULL,Abs()函数返回NULL。Ceiling()功能返回大于n的最小整数。语法Ceiling ( n )参数n:数值型变量或表达式返回值返回值的数据类型与n的数据类型相原创 2015-03-26 11:45:32 · 1460 阅读 · 0 评论 -
Pos()函数使用
功能在一个字符串中查找所包含的另一个字符串的起始位置。语法Pos ( string1, string2 {, start } )参数string1:string类型,指定要从中查找子串string2的字符串string2:string类型,指定要在string1中查找的字符串start:long类型,可选项,指定从string1的第几个字符开始查找。缺省值为1返回值Long。函数执行成功时原创 2015-03-19 10:58:24 · 27995 阅读 · 0 评论 -
MERGE新特性(UPDATE WHERE,DELETE WHERE,INSERT WHERE)
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 语法为 **************************************原创 2013-12-04 11:08:03 · 3453 阅读 · 0 评论 -
常用查询语句
1.select * from emp; 2.select empno, ename, job from emp; 3.select empno 编号, ename 姓名, job 工作 from emp; 4.select job from emp; 5.select distinct job from emp; 6.select distinct emp转载 2013-10-29 18:14:20 · 1200 阅读 · 0 评论 -
存储过程要注意的地方
异常处理: 可以按如下方式显示异常信息...EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line('sqlcode : ' ||sqlcode); DBMS_OUTPUT.put_line('sqlerrm : ' ||sqlerrm); ROLLBACK; END ...原创 2013-08-01 16:27:38 · 673 阅读 · 0 评论 -
Oracle存储过程基本语法
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;行2: IS关键词表明后面将跟随一个转载 2013-06-27 13:20:42 · 684 阅读 · 0 评论 -
in 和 exist 区别
select * from Awhere id in(select id from B)以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录.它的查询过程类似于以下过程List resultSet=[];Array A=(select * fro转载 2013-06-17 10:28:14 · 764 阅读 · 0 评论 -
各种数据库连接字符串
Java数据库连接字符串1、Oracle8/8i/9i数据库(thin模式)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="t原创 2013-05-08 22:42:07 · 1021 阅读 · 0 评论 -
PowerDesigner(CDM—PDM—SQL脚本的转换流程) 随笔
PowerDesigner数据模型(CDM—PDM—SQL脚本的转换流程)在开发的过程中会经常遇到 做一个模块功能,首先让你根据需要先画一个E-R图出来,很多的朋友对 E-R图 都不是很熟悉,或者说有的朋友在开发的项目过程中,根本就没有用到E-R图,因为对于有些对E-R图不是很熟悉的朋友感觉画E-R图无从下手:我个人根据一些资料整理了一下关于E-R图的 描述 及用法 示例:希望对,转载 2013-05-20 22:03:24 · 1059 阅读 · 0 评论 -
Oracle数据迁移参考
A、Toad?for Oracle:01、Database ->EXPORT->Data Pump Export Wizard 02、Database ->EXPORT->Data Subset Wizard 03、Database ->EXPORT->Export DDL 04、Databa转载 2013-04-03 11:35:54 · 1106 阅读 · 0 评论 -
Oracle自带的sql developer导入导出数据
最近使用oracle导入导出数据时,遇到了不少的麻烦!遂对oracle数据库进行了认真的学习,总结了几种导入导出的命令方法,以备以后查阅。 数据导出: 1、 将数据库test完全导出,用户名system 密码manager 导出到d:/daochu.dmp中 exp system/manager@test file=d:/daoch转载 2013-04-03 11:32:57 · 1020 阅读 · 0 评论 -
数据库设计相关
深蓝居博客的博主写了一系列数据库设计方面的文章,我认为这里面的每一篇文章写得都非常好,浅显易懂,强烈推荐地址:http://www.cnblogs.com/studyzy/category/466850.htmlDatabase Design数据库模型设计——历史与版本设计摘要: 在企业数据库设计中,经常会遇到一个需求,就是希望把操作之前的数据保留下来,能够看到操作转载 2013-11-11 10:37:50 · 1021 阅读 · 0 评论 -
Oracle执行SQL语句的过程
当我们提交一条sql语句时,oracle会做哪些操作呢? Oracle会为每个用户进程分配一个服务器进程:service process(实际情况应该区分专用服务器和共享服务器),当service process接收到用户进程提交的sql语句时,服务器进程会对sql语句进行语法和词法分析。名词解释: 语法分析:语句本身正确性。 词法分析:对照数据字典中检查表,索引,视图和用户权转载 2013-11-11 10:39:33 · 869 阅读 · 0 评论 -
Oracle中使用rank()over()排名的问题
排序:---rank()over(order by 列名 排序)的结果是不连续的,如果有4个人,其中有3个是并列第1名,那么最后的排序结果结果如:1 1 1 4select scoreid, studentid,COURSENAME,totalexamscore ,rank()over(order by TOTALEXAMSCORE desc)orderbyNumfrom SCOR转载 2013-12-04 14:37:58 · 785 阅读 · 0 评论 -
深入浅出MyBatis-快速入门
MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原转载 2015-01-28 23:08:13 · 720 阅读 · 0 评论 -
登陆oracle时的常用命令
登录oracle数据库时常用的操作命令整理1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i;3、SQL>connect / as sysdba ;(as sysoper)或转载 2014-03-17 21:44:27 · 1160 阅读 · 0 评论 -
oralce数据库的用户全介绍
ORACLE数据库是个多用户系统。为了保证数据库系统的安全,ORACLE数据库管理系统配制了良好的安全机制。例如,每一个ORACLE数据库都有一个用户表,它记载着每一个用户的有关信息,一旦用户进入系统,ORACLE系统会通过这张表来检查用户的合法性。又如,ORACLE系统通过合理分配用户的权限来管理用户。通常,ORACLE将用户分为三类,即DBA、RESOUCE和CONNECT三类角色,使不同的用转载 2014-03-07 22:58:48 · 933 阅读 · 0 评论 -
ORACLE 10g 安装教程[图文]
首先将ORACLE 10g的安装光盘放入光驱,如果自动运行,一般会出现如图1安装界面: 图1 单击“开始安装”,就可以安装ORACLE 10g,一般会检查系统配置是否符合要求,然后出现“Oracle DataBase 10g安装”对话框,如图2所示: 图2 在安装Oracle DataBase 10g时可以选择“基本安装”和“高级安装”两种方法。选择“基本安转载 2014-03-03 22:39:12 · 1505 阅读 · 0 评论 -
ORACLE WITH AS 用法
查询语句以“WITH”关键字开头,可以认为在真正进行查询之前预先构造了一个临时表,之后便可多次使用临时表做进一步的分析和处理; WITH方法的优点:增加了SQL的易读性,如果构造了多个子查询,结构会更清晰; 更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标。 为什么WITH方法会提高效率? 1)使用子查询的执行计划 set au原创 2014-01-15 11:27:15 · 815 阅读 · 0 评论 -
oracle递归排序,返回排序号函数
/* 根据参数ID递归查询上级部门ID并把上级部门排序号拼到前面,用于递归排序*/CREATE OR REPLACE FUNCTION fun_depnosortby (f_depid IN VARCHAR2) --返回排序号 RETURN VARCHAR2AS f_sortbys VARCHAR2 (300); f_tempdepid VARCHA原创 2013-12-17 16:15:12 · 1642 阅读 · 0 评论