warehouse客栈

ITPUB认证区版主

  • 博客访问: 4732845
  • 博文数量: 851
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-07 15:08
  • 认证徽章:
个人简介

了解并联系warehouse: http://blog.itpub.net/19602/viewspace-1059211/

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类

全部博文(851)

文章存档

2017年(7)

2016年(20)

2015年(19)

2014年(42)

2013年(65)

2012年(66)

2011年(87)

2010年(68)

2009年(103)

2008年(140)

2007年(142)

2006年(38)

2005年(53)

2004年(1)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

发布时间:2016-07-23 11:21:30

http://blog.csdn.net/yabingshi_tech/article/details/8979377当退出或关闭sqlplus的时候,之前设置的命令就不再被保留了。为了避免每次使用SQLPLUS时都重新敲入一遍这些设置命令,可以创建一个login.sql文件。这个文件必须放在sqlplus的启动文件夹中或者包含在环境变量sqlpath所指向的文件夹路径中。glogin.s.........【阅读全文】

阅读(311) | 评论(0) | 转发(0)

发布时间:2013-01-28 08:58:50

其实就是临时restore point的思想,有了enable_at_time(scn)我们在执行flashback query或者flashback versions query时就不需要写as of 和versions between 子句了。[@more@]SQL> select * from tt;ID NAME---------- --------------------1 a2 e4 dSQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER------------------------8504779SQL> exec dbms_flashback.enable_at_system_change_number(8504779);PL/SQL procedure successfully completed.SQL> select * from tt;ID NAME------......【阅读全文】

阅读(2535) | 评论(0) | 转发(0)

发布时间:2013-01-21 21:27:51

在em中使用segment advisor的时执行完毕查看结果的时侯收到no segment found,原因是当segment 里面的free space小于10m的时侯oracle可能认为这个segment 里的free space太小了,可能没有必要处理,所以也不会给出任何建议,最后就是这个提示。[@more@]SQL> select type,message,more_info from dba_advisor_findings2 where task_name in ('SEGMENTADV_4328829','SEGMENTADV_9662658','SEGMENTADV_9854361');TYPE MESSAGE MORE_INFO---------------------- ---------------------------------------- -------------------------------......【阅读全文】

阅读(2869) | 评论(1) | 转发(0)

发布时间:2012-11-16 15:20:05

grouping sets的作用是对cube的子集处理,查了一下发现oracle从9i开始支持grouping sets,但是在10.2.0.1的时侯发现grouping sets还是比较弱的,在我接触的版本中发现从10.2.0.5开始就很完善了[@more@]cube是对分组字段的所有组合分组,grouping sets是对cube所有组合分钟种子集的分组显示,不同的版本语法也略有差别。select owner,status ,count(*)from dba_objectsgroup by grouping set(owner,status,()|null)10.2.0.5之前只能是grouping set((owner,status),status,()),后续的版本可以是grouping set(owner,status,null),10.2.0.5之......【阅读全文】

阅读(2149) | 评论(0) | 转发(0)

发布时间:2012-09-01 16:05:25

flashback versions query中出现的伪列比较多,不容易记住,放在这里备查。[@more@]scn:select versions_operation,versions_startscn,versions_endscn,versions_starttime,versions_endtime,versions_xid,id,namefrom t versions between scn minvalue and maxvalue--=========================================timestamp:select versions_operation,versions_startscn,versions_endscn,versions_starttime,versions_endtime,versions_xid,id,namefrom t versions between timestamp minvalue and maxvalue......【阅读全文】

阅读(2449) | 评论(0) | 转发(0)

发布时间:2011-11-22 19:54:07

群内经常有人问,简单总结一下,刚接触时可能有些不太好理解:[@more@]on比较好理解,on后面可以出现关联条件也可以出现非关联条件:SQL> create table t1(id int) tablespace users;表已创建。SQL> create table t2(id int,name varchar2(10)) tablespace users;表已创建。SQL> select t1.*,t2.* from t1 join t2 on t1.id=t2.id and t2.name='a';未选定行SQL> insert into t1 values(1);已创建 1 行。SQL> insert into t2 values(1,'a');已创建 1 行。SQL> insert into t2 values(2,'b');已创建 1 行。SQL> insert......【阅读全文】

阅读(7735) | 评论(2) | 转发(0)

发布时间:2011-11-05 16:37:42

和权限审计相关的表是system_privilege_map,和对象审计相关的表是table_privilege_map,和语句审计相关的表是stmt_audit_option_map,有关语句审计oracle的描述SQL statement auditing: The statement shown in the slide can audit any data definitionlanguage (DDL) statement that affects a table, including CREATE TABLE, DROP TABLE,TRUNCATE TABLE, and so on. SQL statement auditing can be focused by username or bysuccess or failure:SQL> AUDIT TABLE BY hr WHENEVER NOT SUCCESSFUL;[@more@]......【阅读全文】

阅读(2856) | 评论(0) | 转发(0)

发布时间:2011-10-20 09:23:30

oracle从9i支持insert all和insert first,对涉及到多个表的批量数据插入有很大帮助。下面看看基本语法以及他们之间的区别。[@more@]C:>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on 木 10月 20 08:39:58 2011Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options--===============================--不带条件的insert all测试SQL> create table t_tab(table_n......【阅读全文】

阅读(2653) | 评论(0) | 转发(0)

发布时间:2011-10-19 21:53:43

SIBLINGS 是兄弟姐妹的意思,那么ORDER SIBLINGS BY的意思就是在兄弟姐妹之间的排序,和order by所表示的含义绝对不同,针对树状sql,我觉得ORDER SIBLINGS BY更有意义,树状sql查询出来的结果本身就是按照层次(hierarchy)结构排好序的,而加上关键字SIBLINGS 其实是在hierarchy内部进行排序。[@more@]You have to be careful when trying to order the rows of output in a hierarchicalquery. By default, if you omit the ORDER BY clause altogether, the query attemptsto sort rows in an order that’s reflective of the hierar......【阅读全文】

阅读(4547) | 评论(0) | 转发(0)

发布时间:2011-10-19 09:27:55

理解了rollup,那么cube相对就好理解了,cube是对rollup的深度使用。cube是group by中几个字段的组合分组,其实要表示的典型的意思是dw中转取的概念,每一个group by中要分组的字段本身就是dw中的一个维度,而cube的出现把dw的含义体现的淋漓尽致. rollup和grouping总结如下:http://warehouse.itpub.net/post/777/524442[@more@]SQL> select status,owner,object_type,count(*) from dba_objects2 where owner not in ('SYS','SYSMAN','SYSTEM','DBSNMP','WMSYS')3 group by cube(status,owner,object_type)4 order by status,owner,o......【阅读全文】

阅读(4666) | 评论(0) | 转发(0)

发布时间:2011-10-19 08:34:35

rollup是对group by分组子句的扩充和延伸,最终的结果就是求小计和总计,其实是从多角度来分析和统计数据,是对dw业务的支持。[@more@]下面看几个rollup使用的例子就清楚了:SQL> select status,owner,object_type,count(*) from dba_objects2 where owner not in ('SYS','SYSMAN','SYSTEM','DBSNMP','WMSYS')3 group by rollup (status,owner,object_type)4 order by status,owner,object_type5 ;STATUS OWNER OBJECT_TYPE COUNT(*)------- ------------------------------ ------------------- ----------INVALID PUBLIC SYNONYM 19I......【阅读全文】

阅读(4474) | 评论(0) | 转发(0)

发布时间:2011-10-15 23:21:52

看到经常有人问这个东西,doc看到了,随手记录一下。[@more@]DEFERRABLE and DEFERREDYou can temporarily set a constraint to DEFERRED so that a large set of data might beprocessed without any constraint checking until after the transaction is completed. Todo this, create the constraint with the DEFERRABLE clause, as follows:ALTER TABLE SHIPS DROP CONSTRAINT FK_SHIPS_PORTS;ALTER TABLE SHIPS ADD CONSTRAINT FK_SHIPS_PORTS FOREIGN KEY (HOME_PORT_ID)REFERENCES PORTS (PORT_ID) DEFERRABLE;The default settin......【阅读全文】

阅读(3095) | 评论(0) | 转发(0)

发布时间:2011-09-03 21:38:54

客户系统经常报错误ORA-02067,搜了一下,有关这个错误的解释几乎都是:Cause: A failure (typically a trigger or stored procedure with multiple remote updates) occurred such that the all-or-nothing execution of a previous Oracle call cannot be guaranteed.Action: rollback to a previous savepoint or rollback the transaction and resubmit.[@more@]下面是我的一个模拟过程:C:>sqlplus system/system@orclSQL*Plus: Release 10.2.0.1.0 - Production on 星期六 9月 3 21:33:32 2011Copyright (c) 1982, 2005, Oracle.......【阅读全文】

阅读(7383) | 评论(0) | 转发(0)

发布时间:2011-07-17 15:55:41

不知道该起个怎样的标题,讲课时一位学员提出了这样一个需求,搜了一下可以通过wmsys.wm_concat来实现,但是客户使用的是9i,于是在群里的一个哥们的帮助下,通过树状sql结合分析函数实现了客户的要求,不过客户反应看不懂,后来我还是用cursor笨办法来实现一下:[@more@]SQL> select * from t;ID NAME AGE---------- ---------- ----------2 b 302 a 301 a 301 b 30SQL> select id,name_path from (select id,name_path,2 row_number() over(partition by id order by id,curr_level desc) name_path_rank3 from (select id,name,ra......【阅读全文】

阅读(104816) | 评论(0) | 转发(0)

发布时间:2011-01-26 22:26:15

不知道该起一个怎样的标题,总之写这个文章的目的是源于一个从我这儿报名考ocp的哥们的问题,他做了一个针对042题库上第12题的测试然后向我求证答案是否正确,很显然答案A是不正确的,原因就像下面doc说的在语句审计和权限审计审计DDL语句时只能使用by access,可语法上oracle并没有限制,也就是说使用by session时也不会报错,这样很容易引起误导,感觉oracle在很多地方都不够严谨。Number of Audit Records from Multiple Executions of a StatementIf an audited statement is issued multiple times in a single user session, then y......【阅读全文】

阅读(4697) | 评论(0) | 转发(0)

发布时间:2010-12-29 15:50:45

http://wenku.baidu.com/view/b799103567ec102de2bd89c0.html[@more@]http://wenku.baidu.com/view/b799103567ec102de2bd89c0.html......【阅读全文】

阅读(3934) | 评论(0) | 转发(0)

发布时间:2010-12-23 10:41:28

搜集了几篇和树状sql相关的几篇文章...http://www.bithink.cn/bbs/viewthread.php?tid=87&extra=page%3D2&sid=lyPZPphttp://www.cnblogs.com/ZHF/archive/2008/09/10/1288101.html在树状sql里其实最难理解的我觉得就是connect by之后的prior关键字了,就像外联接字段边上的+,其实prior和+的意思非常相似,如果我们希望从start with 后面字段提供的值作为节点检索它的孩子,那么就把prior写在connect by 中关联条件start with 后面字段等式的另外一侧;如果我们希望从start with 后面字段提供的值作为节点检索它的父亲,那么就把p......【阅读全文】

阅读(8930) | 评论(0) | 转发(0)

发布时间:2010-12-21 15:07:06

原文连接:http://blog.chinaunix.net/u/28618/showart_347103.html这就是oracle中支持的多表关联更新中的语法,这种语法比使用子查询更新效率更高。[@more@]方法一:ORA-01779: cannot modify a column which maps to a non-key-preserved table例如,使用以下的更新查询就会出现该错误。CREATE TABLE test1 ( id integer primary key, num integer );INSERT INTO test1 VALUES (1,0);INSERT INTO test1 VALUES (2,0);INSERT INTO test1 VALUES (3,0);INSERT INTO test1 VALUES (4,0);CREATE TABLE test2 ( id integer, num integer, upd......【阅读全文】

阅读(3587) | 评论(0) | 转发(0)

发布时间:2010-10-12 12:30:23

当存在主外键关系的时候,如果外键上没有索引,而且从表(有外键的表)又比较大时,一些操作主表的动作,如delete可能会消耗很大的资源,因为在操作主表的同时oracle内部需要访问从表。[@more@]SQL> create table t tablespace users as select * from dba_objects;表已创建。SQL> alter table t add constraint pk_t primary key (object_id);alter table t add constraint pk_t primary key (object_id) *第 1 行出现错误:ORA-01449: 列包含 NULL 值; 无法将其变更为 NOT NULLSQL>......【阅读全文】

阅读(3602) | 评论(0) | 转发(0)

发布时间:2010-07-11 14:29:59

基于database创建一个系统trigger,遇到了权限问题,查了一下原来是需要ADMINISTER DATABASE TRIGGER权限[@more@]SQL> create or replace trigger trigg_db 2 after logon on database 3 -- for each row 4 declare 5 -- local variables here 6 begin 7 insert into t_trace values(sys_context('userenv','ip_address'), 8 sys_context('userenv','terminal'), 9 sys.login_user, 10 sysdate, 11 sys.sysevent); 12 end trigg_db; 13 / after logon on d......【阅读全文】

阅读(5064) | 评论(0) | 转发(0)

发布时间:2010-07-02 08:36:16

状态为active和current的日志组都不允许删除,状态是current的logfile member也不允许删除,但是状态是active的logfile member却可以删除[@more@]SQL> alter database drop logfile group 3;alter database drop logfile group 3*第 1 行出现错误:ORA-01623: 日志 3 是实例 orcl (线程 1) 的当前日志 - 无法删除ORA-00312: 联机日志 3 线程 1:'G:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG'ORA-00312: 联机日志 3 线程 1:'G:ORACLEPRODUCT10.2.0ORADATAHOSTREDO03.LOG'SQL> alter system switch logfile;系统已更改。SQL> alter ......【阅读全文】

阅读(3076) | 评论(0) | 转发(0)

发布时间:2010-03-08 09:14:26

简单的整理了一下win和linux下的办法,和doc的描述稍有出入[@more@]doc原文如下:Using a System Editor from SQL*PlusIf you run an ED or EDIT command at the SQL*Plus prompt, then the system starts an operating system editor, such as ed, emacs, ned, or vi. However, the PATH environment variable must include the directory where the editor executable is located.When you start the editor, the current SQL buffer is placed in the editor. When you exit the editor, the changed SQL buffer is returned to SQL*Pl......【阅读全文】

阅读(4323) | 评论(0) | 转发(0)

发布时间:2010-03-01 08:53:42

oracle安装在了64位的机器上,使用plsql developer不能连接db,尽管tnsping可以成功,但是通过plsql developer连接时提示错误ORA-12154,可以通过2种办法解决[@more@]1.通过安装32位的oracle client2.如果是在db server上要使用plsql developer,那么其实只要把plsql developer不安装在64位系统的c:progrom files(x64)下就可以了......【阅读全文】

阅读(5311) | 评论(0) | 转发(0)

发布时间:2010-01-22 12:46:31

我们可以使用系统触发器中提供的servererror事件来捕获系统产生的错误...[@more@]--t_trace是一个跟踪表,用户记录由trigger捕获的信息SQL> desc test1.t_trace;名称 是否为空? 类型----------------------------------------- -------- ----------------------------USERNAME VARCHAR2(10)TERMINAL VARCHAR2(10)IP VARCHAR2(20)TIME DATEACTION VARCHAR2(30)ERRORMSG VARCHAR2(100)--========================create or replace trigger trigg_systemafter servererror on databasedeclarebegin insert into t_trace values(sys.login......【阅读全文】

阅读(3023) | 评论(0) | 转发(0)

发布时间:2010-01-21 21:28:58

随手记录一下...[@more@]declarev_id int;v_id1 v_id%type; --%type不仅可以使用column名,也可以使用已经定义好的变量cursor c1 is select * from t for update;v_t c1%rowtype; --%rowtype不仅可以使用表名,也可以使用定义过的cursorbeginfor i in c1 loopif mod(i.id,2)=0 then update t set row=i where current of c1;elseinsert into t values i;end if ;end loop;commit;end ;......【阅读全文】

阅读(2917) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册