
数据库-oracle
记录oracle相关技术
赶路人儿
一个十年以上编程人员,擅长使用java、python、C++等语言,具有广告投放、个性化推荐引擎等超大规模系统开发经验。
展开
-
oracle分析函数——keep
原文见我得博客:点击打开链接1、概念:keep是Oracle下的另一个分析函数,他的用法不同于通过over关键字指定的分析函数,可以用于这样一种场合下:取同一个分组下以某个字段排序后,对指定字段取最小或最大的那个值。 从这个前提出发,我们可以看到其实这个目标通过一般的row_number分析函数也可以实现,即指定rn=1。但是,该函数无法实现同时获取最大和最小值。或者说原创 2015-10-10 10:59:09 · 11890 阅读 · 1 评论 -
oracle分析函数——over
原文见我得博客:点击打开链接1、分析函数:1)分析函数:Oracle从8.1.6开始提供分析函数,专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。分析函数用于计算基于组的某种聚合值。 它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。普通的聚合函数用g原创 2015-10-10 10:57:42 · 899 阅读 · 0 评论 -
oracle分析函数——rollup和cube
原文见我得博客:http://lanjingling.github.io/2015/10/09/oracle-fenxihanshu-1/1、rollup介绍:group by后带rollup子句的功能可以理解为:先按一定的规则产生多种分组,然后按各种分组统计数据。(至于统计出的数据是求和还是最大值还是平均值等这就取决于SELECT后的聚合函数)。oracle中rollup和mys原创 2015-10-10 10:53:10 · 5290 阅读 · 2 评论 -
Oracle express启用scott用户
一般安装Oracle之后,如果scott用户无法登录,则需要以system用户登录,然后解锁即可SQL> ALTER user scott account UNLOCK SQL> ALTER user scott IDENTIFIED BY tiger;修改scott用户密码 可是发现速成版中根本就没有scott用户,自然也就无法解锁,这应该是需要运行soctt.sql文件,从$OR转载 2015-10-08 16:55:02 · 640 阅读 · 0 评论 -
Oracle创建表空间、创建用户以及授权、查看权限
1、查看表空间信息:selectfile_id,file_name,tablespace_name ,bytes/1024/1024 "Size" from dba_data_files;创建临时表空间:CREATE TEMPORARY TABLESPACE test_tempTEMPFILE 'C:\oracle\product\10.1.0\oradata\orc转载 2015-10-08 14:09:39 · 828 阅读 · 0 评论 -
rlwrap工具安装
安装完oracle后,使用sqlplus命令行登录oracle,默认不能上下翻看历史记录、不能使用backspace删除。下面介绍一个rlwrap工具的安装过程。1、下载rlwrap:wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.42.tar.gz2、解压tar -xvzf rlwrap-0.42.tar.g原创 2015-09-29 17:50:48 · 1641 阅读 · 0 评论 -
CentOS6.5安装Oracle Express Edition(快捷版本)
Oracle Express Edition是给个人学习、熟悉Oracle的简化版。此版本大小只有301M,分为windows和linux两个版本,有32为和64的。1、下载:到官网下载软件包,要先注册一个帐号,下载完是一个压缩包,解压出oracle-xe-11.2.0-1.0.x86_64.rpm。Linux下只有64位版本。下载地址:http://www.oracle.com/原创 2015-09-29 17:31:24 · 1087 阅读 · 0 评论 -
oracle对象的定义、执行权限
在Oracle8i以前,所有已编译存储对象(包括packages,procedures, functions, triggers, andviews)只能以定义者(Definer)身份解析运行;从Oracle8i开始,Oracle引入调用者(invoker)权限,使得对象可以以调用者身份和权限执行。定义者(Definer)指编译存储对象的所有者.调用者(Invoker)指拥有当前会话权原创 2015-09-22 17:15:30 · 1350 阅读 · 0 评论 -
sql语句中where、group by、having、order by 是否可以使用别名
1、在mysql中,group by中可以使用别名;where中不能使用别名;order by中可以使用别名。2、在oracle中:1)where/group by/having子句中只能直接使用栏位或者常量,而不能使用栏位的别名,除非这个别名来自子查询之中,如:select .... from (select col1 ccc from table) where ccc > 1原创 2015-09-01 10:41:54 · 18752 阅读 · 0 评论 -
Oracle 10g新增DROP DATABASE命令
在10g以前,要彻底删除数据库,只有两个方法,一个是利用DBCA图形化工具删除数据库,另外一个就是关闭数据库后,手工删除数据文件、控制文件以及日志文件的方法。从10g开始,Oracle提供了DROP DATABASE的语法,使得数据库的删除变得非常的简单。 不过DROP DATABASE还是有一定的限制条件的:SQL> conn / as sysdbaConnecte转载 2015-08-28 10:44:50 · 1232 阅读 · 0 评论 -
双机热备和rac的区别
HA:是High Availability 的首字母组合,翻译过来,可以叫做高可用,或高可用性,高可用(环境)。广义的高可用涉及到系统的各个方面,简单来说,让系统不会中断运行,就是高可用。包括软件的高可用,硬件的高可用,网络的高可用等等。具体实现的方案包括操作系统的集群,数据库的集群,硬件的冗余,网络的冗余等等。做HA方面的软件,有IBM的HACMP(很多常用AIX的人,常说的HA就指HACMP,原创 2015-07-14 10:18:26 · 8805 阅读 · 0 评论 -
oracle 序列
1、oracle创建序列:CREATE SEQUENCE emp_sequence INCREMENT BY 1 — 每次加几个 START WITH 1 — 从1开始计数 NOMAXVALUE — 不设置最大值 NOCYCLE — 一直累加,不循环 CACHE 10; 一旦原创 2015-01-27 23:30:35 · 781 阅读 · 0 评论 -
oracle O7_DICTIONARY_ACCESSIBILITY参数
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL原创 2015-01-16 22:20:03 · 1764 阅读 · 0 评论 -
Oracle定义varchar2()类型存储汉字的长度问题
varchar2最大是4000字节,(在PL/SQL中变量类型最大32767字节)能存放多少字符,那么就得看你的oracle字符集:(select userenv('language') from dual;)如果字符集是16位编码的,ZHS16GBK,那么每个字符16位,2字节,所以可以容纳2000字符。如果是32位编码的字符集,那么只能存储 1000个字符。例如:v转载 2014-12-31 11:14:05 · 2441 阅读 · 0 评论 -
oracle12c 新特性
本文是Oracle ACE总监Syed Jaffer Hussain对Oracle数据库12c的一些新特性总结,包括数据库管理、RMAN、高可用性以及性能调优等内容。主要内容:1. 在线迁移活跃的数据文件2. 表分区或子分区的在线迁移3. 不可见字段4. 相同字段上的多重索引5. DDL日志6. 临时undo7. 新的备份用户特权8. 如何在RMAN中执转载 2014-12-30 22:42:34 · 1550 阅读 · 0 评论 -
oracle 列转行
1.新建一个名为TEST表2.向TEST表中添加数据INSERT INTO TEST(STUDENT,COURSE,SCORE)select '张三','语文',78 from dual unionselect '张三','数学',87 from dual union select '张三','英语',82 from dual unionselect '张三','物转载 2014-12-05 10:41:05 · 817 阅读 · 0 评论 -
oracle number 类型
在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0}的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。Number的数据声明如下:表示 作用 说明Number(p, s) 声明一个定点数 p(preci转载 2014-09-29 15:13:17 · 2734 阅读 · 0 评论 -
oracle关键字作为列名
在创建表时如果使用了Oralce的某些保留字,将会收到系统提示的“无效名”等错误,那么Oracle都有哪些保留字需要回避呢? 这个问题完全可以使用Oralce自带的V$RESERVED_WORDS视图来回答,不同的版本中这个视图中记录的内容是有差别的,以实际环境查询内容为准。 简单演示一下使用保留字创建表时报错的现象。当看到有类似“invalid ... name”等错误时,就要提高警转载 2014-09-27 18:22:08 · 12681 阅读 · 0 评论 -
ORACLE中ESCAPE关键字用法
定义:escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原来的字符的意义,被定义的转义字符通常使用'\',但是也可以使用其他的符号。 实例:SQL> select * from t11 where name like '%_%'; www.2cto.com NAME---------aa_aaaa转载 2014-09-27 18:21:39 · 7248 阅读 · 0 评论 -
myql关键字转义方法
如果你的表里面字段名与关键字相同,这时你对mysql进行insert、select、update等操作的时候就会报错,需要对改字段进行转义。1.insert into test (name,key) values ('测试','L');此时key字段与mysql的关键字key相同,需要转义insert into test (name,`key`) values ('测试','L');转载 2014-09-27 18:10:13 · 4679 阅读 · 0 评论 -
Oracle日期查询:季度、月份、星期等时间信息
Select to_char(sysdate,'Q') from dual;--指定日期的季度Select to_char(sysdate,'MM') from dual;--月份Select to_char(sysdate,'WW') from dual;--当年第几周Select to_char(sysdate,'W') from dual ;--本月第几周Se转载 2014-09-26 19:07:31 · 1127 阅读 · 0 评论 -
企业管理器(OEM)介绍: Grid Control 和 Database Control
Oracle 自10g 以后,企业管理器(Oracle Enterprise Manager:OEM)变成了网页形式。 OEM 分两种:Grid Control(网格控制) 和 Database Control(数据库控制)。 Grid Control 是具有完整功能的全企业Oracle 生态系统管理工具。 Database Control是可以只作为数据库管理实用程序部署的OEM转载 2014-09-24 16:25:52 · 1269 阅读 · 0 评论 -
Win7下Oracle11g完全删除
1.关闭oracle所有的服务windows的服务管理器(Windows+R,然后输入services.msc快速打开任务管理器)中关闭(如果您没有打开过oracle任务,那就直接跳过吧!)2.删除oracle在注册表中的信息windows+R,然后输入regedit 打开注册表。(1)删除Oracle在Windows中注册的各种服务打开路径: HKEY_L转载 2014-09-24 15:51:39 · 785 阅读 · 0 评论 -
win7 安装oracle提示:[INS-20802] Oracle Net Configuration Assistant 失败。
在win7上安装oracle软件,在软件安装完成后,开始jian原创 2014-09-24 13:36:42 · 9468 阅读 · 5 评论 -
Oracle 11g在安装时找不到文件em.ear
安装Oracle 11g或10g 的过程中在如果出现提示说找不到.../oracle/11g/oc4j/j2ee/oc4j_applications/applications/em.ear这个文件,那就说明文件补齐。 Oracle 11g的下载之后解压出来有两个文件夹,出现这个错误是因为文件copy不齐全,只要将第二部分中的database\stage\Components 与 第一转载 2014-09-24 13:03:08 · 1383 阅读 · 0 评论 -
oracle提供了五种网络服务解析
oracle提供了五种网络服务解析:1、Oracle Internet Directory2、External Naming 3、host naming 4、Oracle Easy Connect5、local naming 1Oracle Internet Directory:管理许多Oracle服务器的复杂网络时有优势,管理员可以在一原创 2014-09-23 17:54:52 · 1190 阅读 · 0 评论 -
oracle 如何查看创建表等数据库对象时的DDL语句
当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metadata.get_ddl这个包来查看。dbms_metadata包中的get_ddl函数详细参数GET_DDL函数返回创建对象的原数据的DDL语句,详细参数如下-- object_type ---需要返回原数据的DDL语句的对象类型-- name --- 对象名称-- schema ---对象所在的S转载 2014-09-11 10:17:22 · 1726 阅读 · 0 评论 -
oracle-触发器
本篇主要内容如下:8.1 触发器类型8.1.1 DML触发器8.1.2 替代触发器8.1.3 系统触发器8.2 创建触发器8.2.1 触发器触发次序8.2.2 创建DML触发器8.2.3 创建替代(INSTEAD OF)触发器8.2.3 创建系统事件触发器8.2.4 系统触发器事件属性8.2.5 使用触发器谓词转载 2014-09-09 12:25:48 · 698 阅读 · 0 评论 -
Oracle 中的Userenv()
1.USEREVN()返回当前用户环境的信息,opt可以是:ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE1.ISDBA 查看当前用户是否是DBA如果是则返回trueSQL> select userenv('isdba') from dual;USERE转载 2014-09-02 11:01:12 · 1428 阅读 · 0 评论 -
Oracle锁定策略的总结
以下是对Oracle锁定策略的总结:· Oracle只在修改时才对数据加行级锁。正常情况下不会升级到块级锁或表级锁。· 如果只是读数据,Oracle 绝不会对数据锁定。不会因为简单的读操作在数据行上锁定。· 写入器(writer)不会阻塞读取器(reader)。换种说法:读(read)不会被写(write)阻塞。这一点几乎与其他所有数据库都不一样。在其他数据库中,读往往会被写阻塞。转载 2014-08-15 09:46:33 · 1184 阅读 · 0 评论 -
disable table lock or enable table lock
alter table t1 disable table lock;可以禁止表锁定,也就是说可以防止session 对表进行DDL ,即禁止session 获得表lockalter table t1 enable table lock;session 可以在表上面获得锁测试:我先前在winxp + 9.2.0.1上测试没有任何问题代码:SQL> c转载 2014-08-15 09:11:18 · 1575 阅读 · 0 评论 -
关于Oracle外键列上是否需要索引问题
外键列上缺少索引会带来两个问题,限制并发性、影响性能。而这两个问题中的任意一个都可能会造成严重性能问题。 无论是Oracle的官方文档,还是在Tom的书中都说明了两种情况下可以忽略外键上的索引。其实我认为不需要那么麻烦,与增加一个 索引所带来的性能开销和磁盘空间开销相比,缺失索引可能引发的问题要严重得多。因此,我会选择在所有的外键列上添加索引,虽然转载 2014-08-14 19:47:02 · 930 阅读 · 0 评论 -
9i如何确认每个连接用户占用的内存量
select b.PGA_USED_MEM PGA_USED_MEM, b.PGA_ALLOC_MEM PGA_ALLOC_MEM, b.PGA_FREEABLE_MEM PGA_FREEABLE_MEM,b.PGA_MAX_MEM PGA_MAX_MEM from v$session a, v$process b where a.PADDR=b.ADDR and a.sid ='&s转载 2014-08-14 19:37:33 · 530 阅读 · 0 评论 -
ORACLE VARCHAR2(n CHAR)格式
以前就遇到过这个问题,当时查了就忘了,今天详细记录一下。数据从SOURCE表导到TARGET表因为超长进不去。SOURCE这边格式是VARCHAR2(255 CHAR), TARGET那边格式是VARCHAR2(256),这两个格式的区别在于:http://www.oracle-base.com/articles/9i/CharacterSemanticsA转载 2014-08-08 23:59:50 · 3470 阅读 · 0 评论 -
Oracle 动态视图V$,V_$,GV$,GV_$与X$之间的关系
gv$是全局视图,而v$是针对某个实例的视图,$X是所有gv$的数据来源,从gv$到v$需要加上where inst_id = USERENV(’Instance’)。一般来说一个oracle数据库只会有一个实例对其操作,但在RAC上可以有多台实例同时装载并打开一个数据库,在RAC上得到的结果是:etl@ALIDW> select distinct inst_id from gv$sess转载 2014-07-06 16:09:09 · 1624 阅读 · 0 评论 -
安装oracle报 Xlib: No protocol specified 错误
使用 oracle用户,执行如下命令1 查看DISPLAY是否设置:env| grep DISPLAY 如未设置则,export DISPLAY=192.168.0.9:0.0 (斜体字修改为自己的服务器的ip) 2 root用户执行 xhost + 3 切换到oracle用户安装即可转载 2014-05-19 17:57:39 · 1625 阅读 · 0 评论 -
在oracle中创建unique唯一约束(单列和多列)
oracle中的unique约束是用来保证表中的某一类,或者表中的某一类组合起来不重复的一种手段。 我们在可以在创建表时或者创建好后通过修改表的方式来创建oracle中的unique约束。 下面是一些创建unique约束的例子:create table unique_test (id number, fname varchar2(20), lname var转载 2014-04-24 11:10:22 · 7969 阅读 · 0 评论 -
什么是交叉表
今天有人问我什么是交叉表,汗!一时还不好解释,就上网搜了一下,找到了一些资料:“交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成:行列摘要字段“交叉表”中的行沿水平方向延伸(从一侧到另一侧)。在上面的示例中,“手套”(Gloves) 是一行。“交叉表”中的列沿垂直方向延伸(上转载 2014-04-18 17:33:29 · 14791 阅读 · 0 评论 -
Oracle 行列转换
1、固定列数的行列转换如student subject grade--------- ---------- --------student1 语文 80student1 数学 70student1 英语 60student2 语文 90student2 数学 80student2 英语 100……转换为语文 数学 英语student1 80 70转载 2014-04-18 16:40:54 · 1039 阅读 · 0 评论 -
oracle exits和in的简单介绍
有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T12) select * from T1 where T1.a in (select T2.a from T2) ; T转载 2014-03-27 10:57:56 · 1213 阅读 · 0 评论