Oracle TRANSLATE用法
Oracle TRANSLATE用法语法:TRANSLATE(expr,from,to) expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。 举例: select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代) select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走) 因此:结果依次为:@#c##@@def 和@#c##@@ef [@more@]
DBMS_Job包的用法
DBMS_Job包的用法 [@more@]DBMS_Job包的用法 包含以下子过程: Broken()过程。change()过程。Interval()过程。Isubmit()过程。Next_Date()过程。Remove()过程。Run()过程。Submit()过程。User_Export()过程。What()过程。1、Broken()过程更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工作。这个过程有三个参数:job 、broken与next_date。PROCEDURE Broken (job IN binary_integer,Broken IN boolean,next_date IN date :=SYSDATE)job参数是工作号,它在问题中唯一标识工作。broken参数指示此工作是否将标记为破——
dbms_stats估计统计数据
dbms_stats能良好地估计统计数据[@more@]oracle 8i 以后加处的功能,Oracle专家可通过一种简单的方式来为CBO收集统计数据。目前,已经不再推荐你使用老式的分析表和 dbms_utility方法来生成CBO统计数据。那些古老的方式甚至有可能危及SQL的性能,因为它们并非总是能够捕捉到有关表和索引的高质量信息。 CBO使用对象统计,为所有SQL语句选择最佳的执行计划。dbms_stats能良好地估计统计数据(尤其是针对较大的分区表),并能获得更好的统计结果,最终制定出速度更快的SQL执行计划。下边给出了dbms_stats的一次示范执行情况,其中使用了opti
关于火车站售票系统并发访问和锁机制问题?
如果一个用户对记录加锁,如何使其他用户看不到这条记录。[@more@]有人问到这样的问题:如果一个用户对记录加锁,如何使其他用户看不到这条记录。此前并未注意到这样一个用法(需要8.1.7.4.16以上的版本支持):[oracle@jumper oracle]$ sqlplus scott/tiger SQL*Plus: Release 9.2.0.4.0 - Production on Fri Mar 4 11:59:46 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production With the Partitioning option JServer Re
PL/SQL中对数组和嵌套表的主要操作。
PL/SQL中对数组和嵌套表的主要操作。[@more@]--3.2 公用函数。用来将逗号分隔的数字组,解开成数字装载到数组中。--输入类似于1-2,5,8-9 function get_line_str2type (p_line_str varchar2,p_okflag out number,p_errormsg out varchar2) return table_number is --在最后拼一个逗号,便于编程 p_str varchar2(30000):=rtrim(p_line_str,',')||','; p_st_line number(9):=0; p_end_line number(9); p_out table_number:=table_number(); begin p_okflag := 0; while instr(p_str,',')>0 loop b
win2003下oracle9i主从库配置
win2003下oracle9i主从库配置[@more@]基于windows2003下oracle9i DataGuard容灾技术的实现方法操作环境:Windows 2003 企业版 + Serveice pack 1数据库:Oracle 9206主库SID:czhis从库SID:czhisoracle安装采用OMF结构1.主从两机的操作系统和相同pack2.在主从库上建立数据库,选择只安装Software3.在主库上,通过dbca建立数据库,除了字符集选择 zhs16gbk外,全部使用缺省方式 4.在从库上,手工创建和主库相同目录(将主库D:oracleadmin目录拷贝到从库)5.关闭主库数据库,备份数据文件到从库 确定需要copy过去的数据文件以及redo log sqlplus
在安装SQL server时,总会时不时提示安装程序被挂起的问题
在安装SQL时,总会时不时提示安装程序被挂起的问题,修改注册表即可[@more@]一直以来,在安装SQL时,总会时不时提示安装程序被挂起的问题,害得我装了N次的系统,就在昨晚照样 今天在服务器上的SQL server挂了之后,重新装了,可老提示什么狗P程序被挂起的信息,最后不得不细找原因,功夫不负有心人,终于找出了病症所在,K,我要早知道这么简单,就再也不装系统了.....汗死,详情如下,做个备份,以便今后再碰到类似问题有地方查! 1、点击“开始》运行”,输入“regedit”,打开注册表 2、找到目录HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessio
EXP-00056: ORACLE error 1403 encountered错误及解决方法
需要关注临时表空间。例如在操作系统级删除临时表文件会报这个错误。[@more@]EXP-00056: ORACLE error 1403 encounteredEXP-00056: ORACLE error 1403 encounteredORA-01403: no data foundEXP-00000: Export terminated unsuccessfully检查一下TEMP空间,是不是没有文件,如果没有,增加一个临时文件便可解决此问题
Oracle数据库联机日志文件丢失处理方法
Oracle数据库联机日志文件丢失处理方法[@more@]sqlplus /nologconnect sys/sys@denglh as sysdbaalter system set "_allow_resetlogs_corruption"=true scope=spfile ;alter system set "_allow_terminal_recovery_corruption"=true scope=spfile ;alter system set "_corrupted_rollback_segments"=true scope=spfile ;shutdown abort ;recover database until cancel;alter database open resetlogs;alter system set "_allow_resetlogs_corruption"=false scope=spfile ;alter system set &q
SYS_CONTEXT函数用法大全
SYS_CONTEXT的全部用法示例,不过,常用的还是那几个。[@more@]selectSYS_CONTEXT('USERENV','TERMINAL') terminal,SYS_CONTEXT('USERENV','LANGUAGE') language,SYS_CONTEXT('USERENV','SESSIONID') sessionid,SYS_CONTEXT('USERENV','INSTANCE') instance,SYS_CONTEXT('USERENV','ENTRYID') entryid,SYS_CONTEXT('USERENV','ISDBA') isdba,SYS_CONTEXT('USERENV','NLS_TERRITORY') nls_territory,SYS_CONTEXT('USERENV','NLS_CURRENCY') nls_currency,SYS_CONTEXT('USERENV','NLS_CALENDAR') nls_calendar,SYS_CONTEXT('USERENV','NLS_D
怎么捕获整个数据库的DDL语句或者是说对象结构变化与修改
[@more@]怎么捕获整个数据库的DDL语句或者是说对象结构变化与修改[A]可以采用DDL触发器,如CREATE OR REPLACE TRIGGER tr_trace_ddlAFTER DDL ON DATABASE DECLAREsql_text ora_name_list_t;state_sql ddl$trace.ddl_sql%TYPE;BEGINFOR i IN 1..ora_sql_txt(sql_text) LOOPstate_sql := state_sql||sql_text(i);END LOOP;INSERT INTO ddl$trace(login_user,ddl_time,ip_address,audsid,schema_user,schema_object,ddl_sql)VALUES(ora_login_user,SYSDATE,userenv('SESSIONID'),sys_context('USERENV','IP_ADDRESS'),ora_dict_obj_owner,or
关于行列转换的一个问题
关于行列转换的一个问题[@more@]08:45:47 SQL> select * from usr;NAME----------张三李四王五已选择3行。已用时间: 00: 00: 00.0008:45:57 SQL> Select Substr(Sys_Connect_By_Path(Name, ','), 2)08:46:51 2 From (Select Rownum Rid, Rownum + 1 Next_Rid, Name From Usr)08:46:51 3 Where Rid = (Select Count(*) From Usr)08:46:51 4 Start With Rid = 108:46:51 5 Connect By Prior Next_Rid = Rid;SUBSTR(SYS_CONNECT_BY_PATH(NAME,','),2)----------------------------------------------------------------------------张三
oracle9i 怎样自动捕获DML 语句
oracle9i 怎样自动捕获DML 语句[@more@]SQL> desc t1Name Null? Type----------------------------------------------------- -------- ------------------------------------A NUMBERSQL> desc t_sqlName Null? Type----------------------------------------------------- -------- ------------------------------------USERNAME VARCHAR2(30)CLIENT_IP VARCHAR2(20)SQL_TEXT VARCHAR2(4000)TABLE_NAME VARCHAR2(30)OWNER VARCHAR2(30)SQL> create or replace trigger capt_sql 2 BEFORE DELETE OR INSERT OR UPDATE ON t13 d
由父子关系表得到所有的谱系关系?
可以增加over和connect by prior 的应用技巧[@more@]一个很棘手的问题,有一张表是描述父子关系的,例如:id, parentid 数据有--------------------------------a, bb, cc, d现在需求是由这个父子关系得到祖先的层次关系,即把这个内容的父亲,爷爷,…… 都要找出来.也就是上面的数据必须得到如下的数据:id, ancestorid-----------------------a, ba, cb, ca, db, dc, dSQL> create table t(id varchar2(1),parentid varchar2(1));SQL> insert into t values('a','b');SQL> insert into t values('b','c');SQL> insert into t valu
基于over函数的超级分组应用
基于2个字段进行分组统计,一个字段是主分组,另一个字段按数字连续进行分组(难点),统计加和。[@more@]create table t (type varchar2(1),billno number,fee number);insert into t values('A',1 ,50 );insert into t values('A',2 ,100);insert into t values('A',3 ,150);insert into t values('A',4 ,200);insert into t values('A',8 ,50 );insert into t values('A',9 ,100);insert into t values('A',12, 50);insert into t values('S',1 ,50 );insert into t values('S',3 ,50 );insert into t values('S',4 ,100);commit;selec
系统级触发器的一个例子
为了记录数据库shutdown和startup的时间,使用2个系统级触发器。[@more@]create table LOGSERVICE(ID NUMBER(18) not null,LOGINTIME DATE default sysdate,LOGOUTTIME DATE,MACHINENAME VARCHAR2(30));create or replace trigger ta_databaseafter startup on databasebegininsert into LOGSERVICE(ID,LOGINTIME,LOGOUTTIME,MACHINENAME)values(LOGSERVICE_sequence.nextval,sysdate,null,null);end;create or replace trigger tb_databasebefore shutdown on databasebeginupdate LOGSERVICE set LOGOUTTIME =sysdate where id in (sele
函数返回表
有待测试。有待补充sql server的感受。占位先。[@more@]包里面用一个存储过程,返回游标,就可以了>包的定义1) 包头create or replace package mypkastype t_cursor is ref cursor;procedure proc(name varchar2,c out t_cursor,a number);end;2) 包体create or replace package body mypkasprocedure proc(name varchar2,c out t_cursor,a number)as beginopen c for select * from test where id=a and name=name;end proc;end;这个方案的局限性太大,无法实现select * from function()的要求从oracle 9i 开始,提供了一个叫做“管道化
如鱼饮水,冷暖自知
从江城漂泊到羊城,五年了。累了!累了?挤入IT淘生活,五年了。老了!老了?如鱼饮水,冷暖自知!是为序。[@more@]