(转)dbms常用包之dbms_alert包小结
oracle内部提供的在数据库内部和应用程序间通信的方式有一下几种:1.警报,就是DBMS_ALERT包提供的功能;2.管道,由 DBMS_PIPE提供;3.高级队列,这个就很复杂,当然提供的功能也是很高级的。当然还可以使用外部过程,比如用PL/SQL封装外部的基于C的 DLL或JAVA也能实现数据库和应用程序间的通信。 要使用这些功能,必须知道各个功能的特点,根据需要选用。 警报和事务相关的,是异步发送的;管道是与事务无关的,是同步发送的。 警报的使用: 简单来说,警报是在服务器端发出,然后在客户端接收
(转)oracle10g新特性之 flashback
1、flashback drop 目前,Oracle10g为了加快用户错误操作的恢复,提供了flashback drop新特性。 flashback drop功能可以允许你从当前数据库中恢复一个被drop了的对象,在执行drop操作时,现在Oracle不是真正删除它,而是将该对象自动将放入回收 站。“回收站”我们可以理解为一个虚拟的容器,它用来存放所有被删除的对象。在回收站中,被删除的对象将占用创建时的同样的空间,你甚至还可以对已经删除 的表查询,也可以利用flashback功能来恢复它, 这个就是flashback drop功能。 回收站内的相关信息我们可以
(转)修改oracle默认日期格式 nls_date_format
1.临时修改 SQL> alter session set nls_date_format='yyyymmdd'; 这种方法只能改掉在当前会话里的日期显示格式,当重新建立一个会话的时候,必须重新执行该命令。 2.改变oracle默认的日期显示格式 ON UNIX : change .profile NSL_DATE_FORMAT=YYYYMMDD; export NLS_DATE_FORMAT On windows: 在注册表的KEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0 添加字串值NLS_DATE_FORMAT.将其值设为YYYY-MM-DD-HH24:MI:SS[@more@]
dbms常用包之DBMS_FLASHBACK 例子
drop table employee;drop table keep_scn;REM keep_scn is a temporary table to store scns that we are interested increate table keep_scn (scn number);set echo oncreate table employee (employee_no number(5) primary key,employee_name varchar2(20),employee_mgr number(5)constraint mgr_fkey references employee on delete cascade,salary number,hiredate date);REM Populate the company with employeesinsert into employee values (1, 'John Doe', null, 1000000, '5-jul-81');insert into employee values (10, 'Joe
(转)Oracle常用dump命令介绍
Oracle常用dump命令介绍 链接:http://www.eygle.com/digest/2008/04/oracledump.html 一.Memory Dumps 1).Global Area ALTER SESSION SET EVENTS 'immediate trace name global_area level n'; 1 包含PGA2 包含SGA4 包含UGA8 包含indrect memory 2).Library Cache ALTER SESSION SET EVENTS 'immediate trace name library_cache level n'; 1 library cache统计信息2 包含hash table histogram3 包含object handle4 包含object结构(Heap 0) 3).Row Cache ALTER SESSION SET EVENTS 'immediate trace name row_cache level n'
(转)oracle性能工具包Explain plan、Autotrace、Tkprof
Oracle:性能工具Explain plan、Autotrace、Tkprof(2008-06-25 16:52:26) var $tag='oracle,explain,plan,autotrace,tkprof,it'; var $tag_code='00b10372f0315223d6ca1493a91a421b'; 标签:oracle explain plan autotrace tkprof it 分类:IT技术 Oracle: 三个内置的性能工具包 Explain plan、Autotrace、Tkprof 欲先善其事,必先利其器。 最近同事总是问我如何调优SQL,有什么工具可以使用。在此介绍一下关于Oracle内置的三个性能工具包的安装、使用、以及一些基本技巧。
oracle常用包之dbms_job
定期执行一些任务(任务是以存储过程的形式保存的;然后定时调用存储过程),譬如管理任务等。注意事项和重点首先设置系统参数alter system set job_queue_processes = n;1、定时执行,消除时间漂移interval用来计算next_date例如每天凌晨0:10分执行‘trunc(sysdate) + 1 + 10/1440’每天凌晨5:30分'TRUNC(SYSDATE + 1) + (5*60+30)/(24*60)' 2、interval时间间隔的多样形式(重点)3、submit参数中的存储过程名称带有分号:例如 'myproc;'begin dbms_job.submit(:job1,'MYPROC;',sysdate,'sysdate+1/1440');end;[
搬家了;进城了
2009.3.28号从天通苑的家搬到了双榆树,生活又是另外一个样子了,还有点留恋熟悉的天通苑……。想起了刘欢的《从头再来》,歌词非常好,大不了从头再来。担心天通苑的家出租后变成什么样子,算了,不考虑这么多了,一切向前看……[@more@]
oracle常用包之dbms_rowid oracle rowid含义分析
如果我们查询一个表的ROWID,就可以获得object的信息,文件信息,块信息与行信息等等,如根据其中块的信息,可以知道该表确切占用了多少个块,每行在哪个块上,哪个数据文件上。SQL> select rowid from t; ROWID------------------AAANkiAAGAAAAZfAAAAAANkiAAGAAAAZfAAB拿第一个rowid AAANkiAAGAAAAZfAAA分解一下看到如下Data Object number = AAANkiFile = AAGBlock = AAAAZfROW = AAA SQL> select dbms_rowid.rowid_block_number(rowid) from t; DBMS_ROWID.ROWID_BLOCK_NUMBER(------
(转)oracle dump block格式说明
Segment Header: ==> nfl: number of free lists/block ==> nfb: number of free list blocks + segment header ==> typ: block type ==> nxf: number of transaction free lists Segment List: ==> flg: flag USED or UNUSED the free list ==> lhd: head of free list ==> ltl: tail of free list ==> Seg/obj Object ID in dictionary ==> csc SCN of last block cleanout ==> itc Number of ITL slots ==> flg O = On freelist , - = Not on freelist ==> typ 1 = DATA 2 = INDEX ==> fsl
(转)怎样才能dump数据库的内部结构?
1、分析数据文件块,转储数据文件n的块m alter system dump datafile n block m 2、分析日志文件 alter system dump logfile logfilename; 3、分析控制文件的内容 alter session set events 'immediate trace name CONTROLF level 10' 4、分析所有数据文件头 alter session set events 'immediate trace name FILE_HDRS level 10' 5、分析日志文件头 alter session set events 'immediate trace name REDOHDR level 10' 6、分析系统状态,最好每10分钟一次,做三次对比
转 dump block
两种方法找到block号1、执行dbms_rowid.rowid_block_number2、查询dba_segmentsselect header_file, header_block, blocks from dba_segments where segment_name = 'EMP';alter system dump datafile 6 block 47;alter system dump datafile 6 block min 43 block max 51;SQL> select dbms_rowid.rowid_block_number(rowid) from T4; DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) ———————————— 1514 1514 这个常用来DUMP数据块号,分析比如,我要dump表test_table的某个块,则在sqlplus下执行:sys@Ti>select heade
dbms常用包之utl_file包小结
1、文件只能放在db server端,客户端的不能读写2、directory 名称在程序中必须大写。3、UTL_FILE.FILE_TYPE是包内定义好的file handle4、使用directory;而非直接的路径名。同时要对directory有读写权限grant read,write on directory utl to scott;create or replace directory utl as 'c:';declarenum number;j number :=0;sname varchar2(200);numfile UTL_FILE.FILE_TYPE;temp varchar2(1000);cursor curemp is select empno,ename from oracleemp;beginnumfile := utl_file.fopen('UTL','121.txt','w',2000);for i in curemp loopj
redhatas下安装oracle10g
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 st1:*{behavior:url(#ieooui) } /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0pt 5.4pt 0pt 5.4pt; mso-para-margin:0pt; mso-para-margin-bottom:.00
获取oracle exception vs errors;sqlcode sqlerrm使用
create table errors (code number,message varchar2(1000)) truncate table errors;--测试用 DECLARE msg CHAR(1000); BEGIN FOR num IN 1..100000 LOOP msg := SQLERRM(-num); -- should be SQLERRM(-num) if INSTR(msg,'not found',1) > 0 then null; else if INSTR(msg,'non-ORACLE',1) > 0 then null; else INSERT INTO errors VALUES (num,msg); end if; end if ;
oracle9i所有文档
http://tahiti.oracle.com/pls/db92/db92.docindex?remark=homepage[@more@]
PLSQL开发精品总结(转)
--不知道出处了,绝对是入门的精品,收藏之2. 字符表达式 字符表达式由字符型常数、变量、函数和字符运算符组成,唯一可以使用的字符运算符就是连接运算符“||”。 3. 关系表达式 关系表达式由字符表达式或数值表达式与关系运算符组成,可以使用的关系运算符包括以下9种。 < 小于 > 大于 = 等于(不是赋值运算符:=) like 类似于 in 在……之中 <= 小于等于 >= 大于等于 != 不等于 between 在……之间 关系型表达式运算符两边的
oracle plsql例子
在scott/tiger下测试1、建立function首先设置SQL> set serveroutput on;create or replace function fgetEmp(depid in number, ret out varchar2) return varchar2 is type rec is table of emp%rowtype index by binary_integer; emprec rec; cursor cur1 is select * from emp where deptno = depid; j number := 1; my_exception exception;begin ret := 'error'; open cur1; --下面的loop需要显示的open close 游标 loop fetch cur1 into emprec(j); exit when cur1%NOTFOUND; if cur1%NOTFOUND then
物化视图
物化视图可以参考http://space.itpub.net/519536/viewspace-563084每隔五分钟刷新一次数据(SYSDATE NEXT SYSDATE + 1/248 )。DROP MATERIALIZED VIEW LOG ON emp;DROP MATERIALIZED VIEW mv_emp_pk;CREATE MATERIALIZED VIEW LOG ON emp;CREATE MATERIALIZED VIEW MV_EMP_PKREFRESH FAST ON DEMANDSTART WITH SYSDATE NEXT SYSDATE + 1/248 ASSELECT "EMP"."EMPNO" "EMPNO","EMP"."ENAME" "ENAME","EMP"."JOB" "JOB&
oracle动态和静态监听listener
总结:1、unknow是静态的监听,ready的是动态监听2、监听可以利用sid 或者 service_name对外服务3、listener.ora配置只是在服务器端,客户端不需要4、tnsnames.ora客户端需要,服务器端不需要;如果服务器端也需要连接oracle的话,也需要tnsnames.ora5、sqlnet.ora决定使用什么验证。[oracle@sunfire01 root]$ lsnrctlLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 10-MAR-2009 15:01:34Copyright (c) 1991, 2005, Oracle. All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL> status