03 2012 档案

摘要:使用call在sqlplus中调用procedure和funtion!call 不可以使用在plsql中,只能在sqlplus中使用。SQL> create or replace procedure proc_test2 is3 v_count number;4 begin5 select count(*) into v_count from tt;6 dbms_output.put_line(v_count);7 end;8 /过程已创建。SQL> set serveroutput onSQL> call proc_test();2调用完成。--使用call调用过程时即使过 阅读全文
posted @ 2012-03-31 16:58 wbzhao 阅读(1626) 评论(0) 推荐(0) 编辑
摘要:首先说如何编译扩展名为sql的sql脚本.sqlplus system/admin@orcl @D:\P_CREATE_TABLE.sql这样就可以了。需要注意的是这样的做法只是在服务器上编译和生成了这个脚本,并不是执行了这个脚本中的内容。需要注意的是1.要在语句的最后加上一个/符号,否则不会执行。2.需要写全脚本的路径。3.可以用@@来代替,这个条件是执行的脚本需要在当前路径下。脚本例子如下:CREATE OR REPLACE PROCEDURE P_CREATE_TABLE(TABLENAME IN VARCHAR2) ASBEGIN EXECUTE IMMEDIATE 'CREA 阅读全文
posted @ 2012-03-31 16:40 wbzhao 阅读(1701) 评论(0) 推荐(0) 编辑
摘要:问题如下:SQL> conn scott/tiger@vm_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 Connected as scott。。。。。。SQL> drop table student2;drop table student2ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效=========================================================解决方法如下:========== 阅读全文
posted @ 2012-03-30 00:15 wbzhao 阅读(656) 评论(0) 推荐(0) 编辑
摘要:在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 例如: SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM, 阅读全文
posted @ 2012-03-30 00:09 wbzhao 阅读(1233) 评论(0) 推荐(0) 编辑
摘要:oracle 使用leading, use_nl, rownum调优1、使用leading和use_nl来设置表的查询顺序,来加快查询速度,一般把小表设为第一个表。/*+LEADING(TABLE)*/ 将指定的表作为连接次序中的首表./*+USE_NL(TABLE)*/ 将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.成本计算方法:设小表100行,大表100000行。两表均有索引:如果小表在内,大表在外(驱动表)的话,则扫描次数为:100000+100000*2 (其中2表示IO次数,一次索引,一次数据)如果大表在内,小表在外(驱动表)的话,则扫描次数为:100+100*2.两.. 阅读全文
posted @ 2012-03-30 00:08 wbzhao 阅读(736) 评论(0) 推荐(0) 编辑
摘要:Oracle中所谓表的连接,有两种含义。一种是根据Oracle内部的连接判断方式区分的内部连接类型,这会影响到系统优化、资源占用等问题。另一种是基于查询的方式,对两张表之间建立联系,会影响到查询的结果,这里都写一下。一、Oracle 中的表内部连接有 3类 : 1、 嵌套循环连接( Nested Loops ) 原理:扫描一个表,每读取驱动表的一条记录,就根据索引去另一个表里面查找,所有匹配记录放在结果集中,然后再读取驱动表的下一行。没有索引一般就不会是 nested loops 。 条件:驱动表结果集不大,被驱动表连接字段要有索引。 特点:使用嵌套循环连接是从连接结果中提取第一批记录的... 阅读全文
posted @ 2012-03-30 00:02 wbzhao 阅读(1190) 评论(1) 推荐(0) 编辑
摘要:现在这里给大家两个定义完全备份:BACKUP SET:把数据文件中所有用到的数据块进行备份。 IMAGE COPY:对数据文件的完整拷贝。增量备份:从特定的时间点以来发生变化的数据块备份。文件为BACKUP SET.在RMAN中,只能对数据文件进行增量备份。 完全备份: (1)默认:backup database; (2) 压缩备份:backup as compressed backupset database; (3) IMAGE COPY: backup as copy做一次完全备份。语法如下: run{ configure controlfile autobackup on; confi 阅读全文
posted @ 2012-03-29 22:03 wbzhao 阅读(8193) 评论(0) 推荐(0) 编辑
摘要:<六> 触发器<2>、ORACLE端语法说明1、语法:CREATE [OR REPLACE] TRIGGER trigger_name{ BEFORE | AFTER } triggering_event ON table_name[ FOR EACH ROW ][ WHEN trigger_condition ]trigger_body ;2、使用说明与示例:(1)、上语法中, trigger_event 是对应于DML的三条语句INSERT、UPDATE、DELETE; table_name是与触发器相关的表名称;FOR EACH ROW是可选子句,当使用时,对每条 阅读全文
posted @ 2012-03-29 22:02 wbzhao 阅读(1169) 评论(0) 推荐(0) 编辑
摘要:今天看到SQL优化的教程,在讲语句优化的时候提到的绑定变量和这个参数。为此是特别做了下研究。cursor_sharing是从8I开始提出的在服务器端处理SQL绑定的参数,他由个值force,similar,exactforce表示强行对SQL语句进行变量绑定,如select * from mytest where name = 'jack';SQL语句传到server端后,会生成select * from mytest where name =:"SYS_B_0" 的SQL版本,后面在运行相同的查询,但name字段的传值不同,也会利用前面生成的查询计划,这个 阅读全文
posted @ 2012-03-29 22:01 wbzhao 阅读(435) 评论(0) 推荐(0) 编辑
摘要:在ORACLE数据库中,需要对SQL语句进行优化的话需要知道其执行计划,从而针对性的进行调整.ORACLE的执行计划的获得有几种方法,下面就来总结下1、EXPLAIN的使用 Oracle RDBMS执行每一条SQL语句,都必须经过Oracle优化器的评估。所以,了解优化器是如何选择(搜索)路径以及索引是如何被使用的,对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为Access Path)。从而使我们选择最优的查询方式达到最大的优化效果。1.1 、安 装要使用EXPLAIN首先要执行相应的脚本,创建出Explai 阅读全文
posted @ 2012-03-29 22:00 wbzhao 阅读(860) 评论(0) 推荐(0) 编辑
摘要:包括强类型、若类型、传递 ref cursor 参数等。Oracle Ref Cursors Version 10.2Strongly TypedNote: A REF CURSOR that specifies a specific return type.Package HeaderCREATE OR REPLACE PACKAGE strongly_typed ISTYPE return_cur IS REF CURSOR RETURN all_tables%ROWTYPE;PROCEDURE child(p_return_rec OUT return_cur);PROCEDURE pa 阅读全文
posted @ 2012-03-28 13:39 wbzhao 阅读(324) 评论(0) 推荐(0) 编辑
摘要:《PL/SQL 语言开发参考手册》下载地址 前言 关于 REF_CURSOR 我们已经不再陌生,在前边的博客我们已经接触过了 REF_CURSOR:在博客《怎样让 Oracle 的存储过程返回结果集》中我们在一个返回结果集的 Hello World 级别的存储过程实例中用到了 REF_CURSOR,在博客《烟草局绩效考核系统打分模块开发笔记》中我们在一个真实的项目中体会到 REF_CURSOR 给我们带来的神奇效果。今天,我们将通过学习 Oracle 官方的这篇《Oracle 开发之 REF_CURSOR》进一步解开 REF_CURSOR 的神秘面纱,通过本文的学习,我们对 REF_CURSO 阅读全文
posted @ 2012-03-28 13:25 wbzhao 阅读(413) 评论(0) 推荐(0) 编辑
摘要:SQL> alter system flush shared_pool; 阅读全文
posted @ 2012-03-27 15:51 wbzhao 阅读(409) 评论(0) 推荐(0) 编辑
摘要:导读:hints是oracle提供的一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。考试大免费提供大量实用资料,更多资料进入oracle认证历年真题,模拟题,辅导等。 写HINT目的 手工指定SQL语句的执行计划 hints是oracle提供的一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。我们可以用hints来实现: 1) 使用的优化器的类型 2) 基于代价的优化器的优化目标,是all_rows还是first_rows。 3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。 4) 表之间的连接类型 5) 表之间的连接顺序 6) 语句... 阅读全文
posted @ 2012-03-27 13:09 wbzhao 阅读(430) 评论(0) 推荐(0) 编辑
摘要:前面换了一台机器,害的我又把所有的软件装了一遍,开发环境重新配置(vs2003、vs2008、oracle……),真是不容易,期间也遇到了不少问题,不过都很容易解决。但是在oracle安装中,创建了一个数据库,安装过程中也设置了用户名和密码,但是就是登录不成功,查来查去就是用户授权的问题,所以还的通过oracle系统管理用户登陆进行对之前的用户名授权。 Oracle中默认的用户名和密码如下表格:用户名 / 密码登录身份 说明sys/change_on_installSYSDBA 或 SYSOPER不能以 NORMAL 登录,可作为默认的系统管理员system/managerSYSDBA 或 . 阅读全文
posted @ 2012-03-27 13:06 wbzhao 阅读(2505) 评论(0) 推荐(0) 编辑
摘要:一:SQL tuning 类 1:列举几种表连接方式 hashjoin/mergejoin/nestloop(clusterjoin)/indexjoin 2:不借助第三方工具,怎样查看sql的执行计划 setautoton explainplansetstatement_id=&item_idfor&sql; select*fromtable(dbms_xplan.display); http://download-west.oracle.com/.../b10752/ex_plan.htm 3:如何使用CBO,CBO与RULE的区别 在optimizer_mode... 阅读全文
posted @ 2012-03-27 13:03 wbzhao 阅读(211) 评论(0) 推荐(0) 编辑
摘要:今天简单的总结一下PL/SQL中cursor(光标/游标)的用法。相信不少做开发或维护的DBA在找工作的时候,遇到过类似的面视问题:请简单的描述一下光标的类型,说一下普通光标和REF光标之间的区别,以及什么时候该正确应用哪一个? 这个题目,我着实难住了不少人,其实他们在具体开发的时候,也还是比较能够把握正确的光标的使用的,但就是说不出来,当然了,这与大家自身的沟流交通能力是有关系的。有的人不善于说,但做的却很好。扯的扯就走远了,最后唠叨一下:做技术这条路,能干不能说,或者说会干不会包装,路是走不"远"的。一、显式cursor显式是相对与隐式cursor而言的,就是有一个明确 阅读全文
posted @ 2012-03-27 00:06 wbzhao 阅读(308) 评论(0) 推荐(0) 编辑
摘要:SQL Server 2008中SQL应用系列--目录索引本文主要 涉及DDL触发器和登录触发器的应用实例。MicrosoftSQL Server 提供两种主要机制来强制使用业务规则和数据完整性:约束和触发器。触发器为特殊类型的存储过程,可在执行语言事件时自动生效。SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。1、当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器。DML 事件包括在指定表或视图中修改数据的 INSERT 语句、UPDATE 语句或 DELETE 语句。DML 触发器可以查询其他表,还可以包含复杂的 Transac 阅读全文
posted @ 2012-03-24 14:09 wbzhao 阅读(378) 评论(0) 推荐(0) 编辑
摘要:SQL Server 2008中SQL应用系列--目录索引在SQL Server中的加密由层次结构形式进行处理以提供多级别的安全。SQL Server包含两个用于加密数据的密钥类型。如下图:1、服务器主密钥(Service Master Key),位于层次结构的最顶端,并且在安装SQL Server时自动创建,用于加密系统数据、链接的服务器登录名以及数据库主密钥。在第一次通过SQL Server使用服务主密钥来加密证书、数据库主密钥或链接的服务器主密码时,服务主密钥会自动生成,并且使用SQL Server服务账户的Windows证书来生成它。如果必须改变SQL Server服务账号,微软建议使 阅读全文
posted @ 2012-03-24 14:08 wbzhao 阅读(408) 评论(0) 推荐(0) 编辑
摘要:导读:本文主要涉及EncryptByPassPhrase和DecryptByPassPhrase函数进行通行短语(PassPhrase)加密。前言: 在SQL Server 2005和SQL Server 2008之前。如果希望加密敏感数据,如财务信息、工资或身份证号,必须借助外部应用程序或算法。SQL Server 2005引入内建数据加密的能力,使用证书、密钥和系统函数的组合来完成。 与数字证书类似。SQL Server 证书包括公钥和私钥这一对密钥,它们都用来加密和解密数据。SQL Server也拥有创建非对称密钥和对称密钥对象的能力。非对称密钥(asymmetric key)与证书相似 阅读全文
posted @ 2012-03-24 14:07 wbzhao 阅读(202) 评论(0) 推荐(0) 编辑
摘要:把数据库打开到mount状态,生产库记住要先shutdown immediate,然后再startup mount,shutdown abort容易带来灾难性问题sys@HYJT> startup force mountORACLE instance started.Total System Global Area 184549376 bytesFixed Size 1218412 bytesVariable Size 67111060 bytesDatabase Buffers 113246208 bytesRedo Buffers 2973696 bytesDatabase moun 阅读全文
posted @ 2012-03-23 21:00 wbzhao 阅读(343) 评论(0) 推荐(0) 编辑
摘要:我们在使用sqlplus的时候可以通过help或?获得帮助信息,那么这些帮助信息是哪来的呢? 其实sqlplus的帮助信息从是数据库里表(system.help)里获取的。在$ORACLE_HOME/sqlplus/admin/help 目录下的helpus.sql文件里包含的帮助的信息,不过oracle默认带的帮助信息太少,自己可以通过其它途径获取更全的帮助脚本。那么我们自己如何来安装帮助呢?下面以系统自带的脚本为例来演示安装过程。所有用的sql脚本都保存在 $ORACLE_HOME/sqlplus/admin/help 目录下,包含了四个文件:helpbld.sql helpdrop.sq 阅读全文
posted @ 2012-03-23 20:59 wbzhao 阅读(605) 评论(0) 推荐(0) 编辑
摘要:查看oracle数据库是否归档和修改归档模式(转)在ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。一、 要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archiv 阅读全文
posted @ 2012-03-23 20:43 wbzhao 阅读(192) 评论(0) 推荐(0) 编辑
摘要:TRANSLATE ( 'char' , 'from_string' , 'to_string' )TRANSLATE返回将from_string中的每个字符替换为to_string中的相应字符以后的string。TRANSLATE是REPLACE所提供的功能的一个超集。如果from_string比to_string长,那么在from_string中而不在to_string中的额外字符将从char中被删除,因为它们没有相应的替换字符。to_string不能为空。Oracle将空字符串解释为NULL,并且如果TRANSLATE中的任何参数为NULL 阅读全文
posted @ 2012-03-21 11:41 wbzhao 阅读(255) 评论(0) 推荐(0) 编辑
摘要:Oracle数据库的初始化参数,主要来源于两个Oracle内部数据字典表:X$KSPPCV和X$KSPPI通常我们查询的V$Parameter视图或使用show parameter命令都是就来源于这两个系统表的,但通过这两种方式不能查询隐含参数.X$KSPPCV用以记录当前的设置的值,及是否使用了缺省值等信息,X$KSPPI则是一个基础表,用于记录参数名、参数说明等简单的信息。需要注意的是INST_ID字段,在Rac环境中用以确定参数所属的实例。可以使用如下脚本,查询当前实例的隐含参数:selectx.ksppinmname,y.ksppstvlvalue,y.ksppstdfisdefaul 阅读全文
posted @ 2012-03-21 11:00 wbzhao 阅读(1009) 评论(0) 推荐(0) 编辑
摘要:作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明】链接:http://www.eygle.com/archives/2009/08/asmm_sga_tuning.html我们知道,在Oracle10g自动SGA管理模式下,SGA的相关参数不受手动控制。可是有些时候我们需要调整一下参数,如db_keep_cache_size,可能会遇到内存不足的错误:SQL> alter system set db_keep_cache_size=3584M scope=both sid='*';alter system set d 阅读全文
posted @ 2012-03-21 10:43 wbzhao 阅读(378) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/wh62592855/article/details/4873859先来看一个“看起来”比较奇怪的现象SQL> col name for a40SQL> col value for a30SQL> select name,value 2 from v$parameter 3 where name in 4 ('large_pool_size','java_pool_size','shared_pool_size','streams_pool_size','d 阅读全文
posted @ 2012-03-21 10:28 wbzhao 阅读(2342) 评论(0) 推荐(0) 编辑
摘要:Oracle 提供两个工具imp.exe 和exp.exe分别用于导入和导出数据。这两个工具位于Oracle_home/bin目录下。 导出数据exp 1 将数据库ATSTestDB完全导出,用户名system 密码123456 导出到c:\export.dmp中 exp system/123456@ATSTestDB file=c:\export.dmp full=y 其中ATSTestDB为数据库名称,system为该数据库里的账户,123456为其密码。 2 将数据库中system用户与sys用户的所有相关资源导出(表,存储过程,方法,视图等等) exp system/1... 阅读全文
posted @ 2012-03-20 20:13 wbzhao 阅读(351) 评论(0) 推荐(0) 编辑
摘要:Oracle临时表在实际开发中的应用是本文我们主要要介绍的内容,我们知道,SQL Server 在编写查询式的存储过程的时候,一直都令我为之赞叹。Create procedure ps_procedure_name as select * from table; Select查询语句可以作为SQL Server存储过程的一部分,直接返回结果集。但在Oracle实现这种形式的存储过程是不合语法的。 为了达到这种目的,我们需要使用Oracle临时表(这是其中一种解决方案)。 Oracle数据库除了可以保存永久表外,还可以建立临时表temporary tables。Oracle临时表分为会话级... 阅读全文
posted @ 2012-03-20 20:10 wbzhao 阅读(553) 评论(0) 推荐(0) 编辑
摘要:实际上,为了保证ORACLE数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、ORACLE数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发之前完成的。 分析评价ORACLE数据库性能主要有数据库吞吐量、数据库用户响应时间两项指标。数据库吞吐量是指单位时间内数据库完成的SQL语句数目;数据库用户响应时间是指用户从提交SQL语句开始到获得结果的那一段时间。数据库用户响应时间又可以分为系统服务时间和用户等待时间两项,即: 数据库用户响应时间=系统服务时间 + 用户等待... 阅读全文
posted @ 2012-03-20 20:09 wbzhao 阅读(366) 评论(0) 推荐(0) 编辑
摘要:一、SGA 1、Shared pool tunning Shared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。 Gets:(parse)在namespace中查找对象的次数; Pins:(execution)在namespace中读取或执行对象的次数; Reloads:(reparse)在执行阶段library cache misses的次数,导致sql... 阅读全文
posted @ 2012-03-20 20:06 wbzhao 阅读(636) 评论(0) 推荐(0) 编辑
摘要:在以往的版本中,除了不完全恢复,通常没有一个好的解决办法。目前,Oracle10g为了加快用户错误操作的恢复,提供了flashback drop新特性。 flashback drop功能可以允许你从当前数据库中恢复一个被drop了的对象,在执行drop操作时,现在Oracle不是真正删除它,而是将该对象自动将放入回收站。对于一个对象的删除,其实这就是简单的重令名操作。 “回收站”我们可以理解为一个虚拟的容器,它用来存放所有被删除的对象。在回收站中,被删除的对象将占用创建时的同样的空间,你甚至还可以对已经删除的表查询,也可以利用flashback功能来恢复它, 这个就是flashback d.. 阅读全文
posted @ 2012-03-20 20:01 wbzhao 阅读(250) 评论(0) 推荐(0) 编辑
摘要:在具有许多活跃用户的繁忙生产环境中,跟踪SQL会话是费时且十分复杂的,因为在任何使用连接池的多层系统中处理SQL语句可能要涉及多个进程,或者甚至是不同的实例。利用Oracle数据库10g,Oralce通过一个新的内置软件包DBMS_MONITOR合理化了SQL的跟踪,这个软件包中包含以前无书面记载的跟踪工具(如DBMS_SUPPORT软件包)的功能。现在,您可以轻松地从头到尾--从客户机到中间层再到后端--跟踪任何用户的会话,并且基于特定的客户ID、模块或动作生成跟踪文件。此外,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大 阅读全文
posted @ 2012-03-20 20:00 wbzhao 阅读(324) 评论(0) 推荐(0) 编辑
摘要:1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 例如: SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 3. /*+ 阅读全文
posted @ 2012-03-20 19:58 wbzhao 阅读(167) 评论(0) 推荐(0) 编辑
摘要:10053事件是oracle提供的用于跟踪sql语句成本计算的内部事件,它能记载CBO模式下oracle优化器如何计算 sql成本,生成相应的执行计划。如何设置10053事件设置本session的10053开启:Alter session set events’10053 trace name context forever[,level {1/2}]’;关闭:Alter session set events’10053 trace name context off’;设置其他session的10053开启:SYS.DBMS_SYSTEM.SET_EV (<sid>, <se 阅读全文
posted @ 2012-03-20 19:57 wbzhao 阅读(860) 评论(0) 推荐(0) 编辑
摘要:1. SGA的设置 Fixed Sizeoracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了SGA 各部分组件的信息,可以看作引导建立SGA的区域。Variable Size包含了shared_pool_size、java_pool_size、 large_pool_size 等内存设置Database Buffers指数据缓冲区,在8i中包含db_block_buffer*db_block_size、buffer_pool_keep、 buffer_pool_recycle三部分内存。在9i 中包含db_cache_size、db_keep_cache_s 阅读全文
posted @ 2012-03-20 19:57 wbzhao 阅读(236) 评论(0) 推荐(0) 编辑
摘要:select tbs as 表空间名称, sum(totalM) as 空间合计M, sum(usedM) as 已使用空间, sum(remainedM) as 剩余空间M, sum(usedM)/sum(totalM)*100 as 已使用空间百分比, sum(remainedM)/sum(totalM)*100 as 剩余空间百分比from ( select b.file_id id, b.tablespace_name as tbs, b.file_name as name, b.bytes/1024/1024 as totalM, (b.bytes-sum(nvl(a.bytes,0 阅读全文
posted @ 2012-03-20 19:56 wbzhao 阅读(135) 评论(0) 推荐(0) 编辑
摘要:ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA- 00021: 会话附属于其它某些进程;无法转换会话 ORA-00022: 无效的会话 ID;访问被拒绝 ORA-00023: 会话引用进程私用内存;无法分离会话 ORA-00024: 单一进程模式下不允许从多个进程注册 ORA-00025: 无法分配 ORA-00026: 丢失或无效的会话 ID ORA-00027: 无法删去当前会话 ORA-00028: 您的会话己被 阅读全文
posted @ 2012-03-20 19:52 wbzhao 阅读(1992) 评论(0) 推荐(0) 编辑
摘要:1.查看所有用户: select * from dba_user; select * from all_users; select * from user_users;2.查看用户系统权限: select * from dba_sys_privs; select * from all_sys_privs; select * from user_sys_privs;3.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs;4.查看所有角色: select * 阅读全文
posted @ 2012-03-20 19:34 wbzhao 阅读(594) 评论(0) 推荐(0) 编辑
摘要:select resid, delay, discard from (select a.resid, sum(decode(a.ditemid, 'aaa', a.value, '')) || sum(decode(a.ditemid, 'B_WebDNSDW', a.value, '')) delay, sum(decode(a.ditemid, 'B_WebTCPDelayW', a.value, null)) || sum(decode(a.ditemid, 'bbb', a.value, & 阅读全文
posted @ 2012-03-20 19:32 wbzhao 阅读(188) 评论(0) 推荐(0) 编辑
摘要:应当用: where TO_CHAR(t.RecordTime, 'yyyymmdd') = '20100519'不能用: where t.RecordTime = TO_DATE('200100519', 'yyyymmdd')to_char是把日期截取出来跟待查询的日期去比较to_date是把待查询的日期转成日期格式去与数据库中相关列的内容作比较to_date转的时候,如果要过滤的日期是20100519,转成yyyymmdd的格式标准日期格式之后,后面会拼上时分秒,默认为00:00:00 阅读全文
posted @ 2012-03-20 19:31 wbzhao 阅读(3290) 评论(0) 推荐(1) 编辑
摘要:--创建全局link create public database link pms connect to pms identified by pms using 'TESTDB'CREATE PUBLIC DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’; --测试本地的新数据库链接名是否可用 select * from project@pms; --创建同义词 create public synonym ProjectExtendInfo for ProjectExtendInf 阅读全文
posted @ 2012-03-20 19:30 wbzhao 阅读(366) 评论(0) 推荐(0) 编辑
摘要:首先创建一个简单的测试环境:SQL> CREATE TABLE T (ID NUMBER, START_TIME DATE);Table created.SQL> INSERT INTO T (ID, START_TIME) SELECT ROWNUM, CREATED FROM DBA_OBJECTS;36001 rows created.SQL> COMMIT;Commit complete.SQL> CREATE INDEX IND_T_TIME ON T (TO_CHAR(START_TIME, 'YYYY-MM-DD'));Index crea 阅读全文
posted @ 2012-03-20 19:29 wbzhao 阅读(1339) 评论(0) 推荐(0) 编辑
摘要:CREATE OR REPLACE PROCEDURE SHOW_SPACE(P_SEGNAME IN VARCHAR2 ,P_OWNER IN VARCHAR2 DEFAULT USER ,P_TYPE IN VARCHAR2 DEFAULT 'TABLE' ,P_PARTITION IN VARCHAR2 DEFAULT NULL)-- this procedure uses authid current user so it can query DBA_* -- views using privileges from a ROLE and so it can be ins 阅读全文
posted @ 2012-03-20 19:23 wbzhao 阅读(392) 评论(0) 推荐(0) 编辑
摘要:在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HWM)。在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那么高的水位。也就是说,这条高水位线在日常的增删操作中只会上涨,不会下跌。 下面我们来谈一下Oracle中Select语句的特性。Se... 阅读全文
posted @ 2012-03-20 19:19 wbzhao 阅读(184) 评论(0) 推荐(0) 编辑
摘要:move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效。(LOB类型例外)表move,我们分为:*普通表move*分区表move*LONG,LOB大字段类型move来进行测试和说明。索引的move,我们通过rebuild来实现一:move普通表、索引基本语法:alter table tab_name move tablespace tbs_name;move过的普通表,在不用到失效的索引的操作语句中,语句执行正常,但如果操作的语句用到了索引(主键当做唯一索引),则此时报告用到的索引失效,语句执行失败,其他如外键,非空约束,缺省值等不会失效。我们需要重新创建主键或索引,基本语法为 阅读全文
posted @ 2012-03-20 19:18 wbzhao 阅读(642) 评论(0) 推荐(0) 编辑