首页编程oracle9?oracle 9 10 11的区别

oracle9?oracle 9 10 11的区别

编程之家2023-11-05206次浏览

大家好,关于oracle9很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于oracle 9 10 11的区别的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

oracle9?oracle 9 10 11的区别

在oracle9中如何实现wm_concat的功能

写个函数,在函数中结合游标就处理好了,返回给SELECT语句就可以了

SELECT DISTINCT DEPTNO,F(DEPTNO) FROM EMP;

11G可以用LISTAGG函数

方法四:不用临时表了,用函数配合SQL查询语句一次搞定

CREATE OR REPLACE FUNCTION DEALSTRING(P_DEPTNO EMP.DEPTNO%TYPE) RETURN VARCHAR2

IS

oracle9?oracle 9 10 11的区别

CURSOR C1 IS SELECT ENAME FROM EMP WHERE DEPTNO=P_DEPTNO;--定义游标C1

TYPE T_TYPE IS TABLE OF EMP.ENAME%TYPE;--定义嵌套表

V_T_TYPE T_TYPE:=T_TYPE();--初始化嵌套表

V_STRING VARCHAR2(1000);--作为范围字符串

BEGIN

NULL;

oracle9?oracle 9 10 11的区别

OPEN C1;

FETCH C1 BULK COLLECT INTO V_T_TYPE;--一次性把游标中的所有数据读出来存放在嵌套表V_T_TYPE中,

CLOSE C1;

FOR I IN 1..V_T_TYPE.COUNT LOOP--一次读取嵌套表V_T_TYPE中的数据,进行字符串连接,处理为A,B,C,D,的形式

V_STRING:=V_STRING||V_T_TYPE(I)||',';

END LOOP;

V_STRING:=SUBSTR(V_STRING,0,LENGTH(V_STRING)-1);--把最后的逗号去掉

RETURN V_STRING;--返回字符串

END DEALSTRING;

SELECT* FROM USER_OBJECTS S WHERE S.OBJECT_NAME=UPPER('DEALSTRING');

SELECT DISTINCT DEPTNO,DEALSTRING(DEPTNO) FROM EMP WHERE DEPTNO IS NOT NULL;--避开空的原因是我的表中有一条记录的部门号为空;

oracle 9 10 11的区别

10比9多了4个关键服务,但是也要多占很多内存,如果没有什么特殊需求,9就够用了的;另外,相对于9,10增加了许多函数,以及新数据类型binary_float binary_double引入了新的pl/sql编译器极大的加强了pl/sql的执行性能在编译Pl/sql语句时会对死代码(从未执行的代码)或不可预料的子句时进行报警等等。10的新特性你可以去这个地址看下:http://www.dbanotes.net/Oracle/10G-What's-New.htm

11的新特性有朋友收集整理过了:

1.数据库管理部分

·数据库重演(Database Replay)

这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果。

· SQL重演(SQL Replay)

和前一特性类似。但是只是捕捉SQL负载部分,而不是全部负载。

·计划管理(Plan Management)

这一特性允许你将某一特定语句的查询计划固定下来,无论统计数据变化还是数据库版本变化都不会改变她的查询计划。

·自动诊断知识库(Automatic Diagnostic Repository ADR)

当Oracle探测到重要错误时,会自动创纪一个事件(incident),并且捕捉到和这一事件相关的信息,同时自动进行数据库健康检查并通知DBA。此外,这些信息还可以打包发送给Oracle支持团队。

·事件打包服务(Incident Packaging Service)

如果你需要进一步测试或者保留相关信息,这一特性可以将与某一事件相关的信息打包。并且你还可以将打包信息发给oracle支持团队。

·基于特性打补丁(Feature Based Patching)

在打补丁包时,这一特性可以使你很容易区分出补丁包中的那些特性是你正在使用而必须打的。企业管理器(EM)使你能订阅一个基于特性的补丁服务,因此企业管理器可以自动扫描那些你正在使用的特性有补丁可以打。

·自动SQL优化(Auto SQL Tuning)

10g的自动优化建议器可以将优化建议写在SQL profile中。而在11g中,你可以让oracle自动将能3倍于原有性能的profile应用到SQL语句上。性能比较由维护窗口中一个新管理任务来完成。

·访问建议器(Access Advisor)

11g的访问建议器可以给出分区建议,包括对新的间隔分区(interval partitioning)的建议。间隔分区相当于范围分区(range partitioning)的自动化版本,她可以在必要时自动创建一个相同大小的分区。范围分区和间隔分区可以同时存在于一张表中,并且范围分区可以转换为间隔分区。

·自动内存优化(Auto Memory Tuning)

在9i中,引入了自动PGA优化;10g中,又引入了自动SGA优化。到了11g,所有内存可以通过只设定一个参数来实现全表自动优化。你只要告诉oracle有多少内存可用,她就可以自动指定多少内存分配给PGA、多少内存分配给SGA和多少内存分配给操作系统进程。当然也可以设定最大、最小阈值。

·资源管理器(Resource Manager)

11g的资源管理器不仅可以管理CPU,还可以管理IO。你可以设置特定文件的优先级、文件类型和ASM磁盘组。

· ADDM

ADDM在10g被引入。11g中,ADDM不仅可以给单个实例建议,还可以对整个RAC(即数据库级别)给出建议。另外,还可以将一些指示(directive)加入ADDM,使之忽略一些你不关心的信息。

· AWR基线(AWR Baselines)

AWR基线得到了扩展。可以为一些其他使用到的特性自动创建基线。默认会创建周基线。

2. PLSQL部分

·结果集缓存(Result Set Caching)

这一特性能大大提高很多程序的性能。在一些 MIS系统或者OLAP系统中,需要使用到很多"select count(*)"这样的查询。在之前,我们如果要提高这样的查询的性能,可能需要使用物化视图或者查询重写的技术。在11g,我们就只需要加一个/*+ result_cache*/的提示就可以将结果集缓存住,这样就能大大提高查询性能。当然,在这种情况下,我们可能还要关心另外一个问题:完整性。因为在oracle中是通过一致性读来保证数据的完整性的。而显然,在这种新特性下,为提高性能,是从缓存中的结果集中读取数据,而不会从回滚段中读取数据的。关于这个问题,答案是完全能保证完整性。因为结果集是被独立缓存的,在查询期间,任何其他DML语句都不会影响结果集中的内容,因而可以保证数据的完整性。

·对象依赖性改进

在11g之前,如果有函数或者视图依赖于某张表,一旦这张表发生结构变化,无论是否涉及到函数或视图所依赖的属性,都会使函数或视图变为invalid。在11g中,对这种情况进行了调整:如果表改变的属性与相关的函数或视图无关,则相关对象状态不会发生变化。

·正则表达式的改进

在10g中,引入了正则表达式。这一特性大大方便了开发人员。11g,oracle再次对这一特性进行了改进。其中,增加了一个名为regexp_count的函数。另外,其他的正则表达式函数也得到了改进。

·新SQL语法=>

我们在调用某一函数时,可以通过=>来为特定的函数参数指定数据。而在11g中,这一语法也同样可以出现在sql语句中了。例如,你可以写这样的语句:

select f(x=>6) from dual;

·对TCP包(utl_tcp、utl_smtp…)支持FGAC(Fine Grained Access Control)安全控制

·增加了只读表(read-only table)

在以前,我们是通过触发器或者约束来实现对表的只读控制。11g中不需要这么麻烦了,可以直接指定表为只读表。

·触发器执行效率提高了

oracle9为什么安装不上

1、大多数网友测试,windows7下安装oracle9i 9.0.1版本基本上是不成功的。因此Windows 7系统下载oracle9i的时候,可以下载oracle9i 9.2的版本。这个是可以安装的。

2、个在安装oracle9i 9.2的时候遇到两个问题,解决方法如下,仅供参考:

a.安装过程中会可能会出现jrew.exe has stopped working错误,解决方法是修改安装目录下../install的oraparam.ini文件,将其中的一行JRE_MEMORY_OPTIONS=“-mx96m”改为JRE_MEMORY_OPTIONS=-nojit-ms16m-mx32m。

b、如果出现Oracle系统标识符(SID)"*****"已经存在。请指定另一个SID错误。这就说明你之前已经安装过oracle,而且卸载的时候没有将注册表清理干净。解决的方法是cmd下运行:oradim-delete-sid*****,这里的*****你的之前创建过的sid。

文章到此结束,希望我们对于oracle9和oracle 9 10 11的区别的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。

长沙私人做网站(长沙做网站多少钱)龙岗网站建设(深圳龙岗区哪里有做网站建设的公司)