随笔分类 -  工作知识积累

工作中学习到一些比较经典的知识
Oracle官方文档学习路线图
摘要:路线图 阅读全文
posted @ 2013-05-19 21:03 Coldest Winter 阅读(206) 评论(0) 推荐(0)
Oracle Tree 树高级应用
摘要:tree 高级应用 阅读全文
posted @ 2013-05-18 21:02 Coldest Winter 阅读(724) 评论(0) 推荐(0)
构造一棵完成的树的算法
摘要:业务描述:存在一棵部门树,当前的部门树(DEPT表),用户A(USERS)对树上的一些部门有访问的权限,通过一个配置模块,可以配置用户具有哪些树的节点访问权限,存储在用户部门关系表(USER_DEPTS)中,现在需要构造一棵新的树,需要将用户所有具有选择权限的树,展示出来,(将具有父子关系的节点以父子节点的形式展示出来)展示规则参考如下:depts表的数据:1 SELECT lpad(' ', LEVEL * 4) || t.dept_names2 FROM depts t3 START WITH t.parent_id = 'ROOT'4 CONNECT BY 阅读全文
posted @ 2013-02-28 21:46 Coldest Winter 阅读(722) 评论(0) 推荐(0)
WM_CONCAT字符超过4000的处理办法
摘要:参考网址:http://stackoverflow.com/questions/11541383/ordering-by-list-of-strings-in-oracle-sql-without-listagg字符串拼接技巧和方式:http://www.oracle-base.com/articles/misc/string-aggregation-techniques.phphttp://www.williamrobertson.net/documents/one-row.html在进行使用WM_CONCAT或者自定义的聚合函数,进行拼串的时候,可能遇到拼串形成的结果集大于4000,这时候 阅读全文
posted @ 2012-11-13 22:23 Coldest Winter 阅读(2497) 评论(0) 推荐(1)
decode、sign、case在统计中的用法:
摘要:参考网址:http://www.skillbuilders.com/download/download-sample.cfm?course=adv-sql-queries&file=Adv%20SQL%20Queries%20for%20Oracle%2002%20Decode%20and%20CASE%20Notes.pdf说明:在统计中用到的MAX聚集函数也可以用sum、min、avg等其他聚集函数替代。用sign和decode来完成比较字段大小来区某个字段1 select decode(sign(字段1-字段2),-1,字段3,字段4) from dual;1、使用case进行直 阅读全文
posted @ 2012-11-11 13:32 Coldest Winter 阅读(435) 评论(0) 推荐(0)
数据分组取最大值行
摘要:数据分组取最大行:现有如下的业务:当前存在库房表,库房在每年都进行维护,每次维护后,会记录库房中商品的数量和维护的数量,在每年会不定期的进行维护:当前需要统计每年的库房中最新的信息:即最新月份的数据:如下所示表结构:1 SELECT t.*,2 t.rowid3 FROM stores t那么目前,需要求出的数据是2012-10、2011-06、2010-12三条数据,即根据年份分租找到其中最大的行记录:可以采用以下两种方式去实现:1、使用MAX()1 SELECT t.*,2 t.rowid3 FROM stores t4 WHERE t.tim... 阅读全文
posted @ 2012-11-07 22:19 Coldest Winter 阅读(352) 评论(0) 推荐(0)
Row generator
摘要:参考网址:http://www.orafaq.com/forum/mv/msg/95011/493456/102589/#msg_493456http://www.orafaq.com/forum/t/184746/170570/1、构造两个日期之间的时间:可以采用以下两种方式来实现:(1):1 SELECT to_date('2012-10-04', 'yyyy-mm-dd') - 1 + LEVEL2 FROM dual3 CONNECT BY LEVEL <= to_date('2012-11-04', 'yyyy-mm-dd 阅读全文
posted @ 2012-11-02 07:22 Coldest Winter 阅读(274) 评论(0) 推荐(0)
exists语句使用的两个例子:
摘要:案例一:现在有表A、AA、AAA业务如下:A、AA、AAA三个表依次是父子关系,即A是AA的父表、AA是AAA的父表现做如下的假设:A ->库房AA->商品表,其中应用了库房的IDAAA->出库表,其中引用了商品的ID现在查询表中的那条记录是属于出库完毕:库房出库完毕是指当前库房下的每个商品他对应的数量等于每个商品对于的出库记录之和都相等。以下是表结构和初始数据:create table TESTPAC.A( id VARCHAR2(32))--create table TESTPAC.AA( id VARCHAR2(32), a_id VARCHAR2(32), quty 阅读全文
posted @ 2012-10-31 22:03 Coldest Winter 阅读(519) 评论(0) 推荐(0)
Bind variables in 'in' condition(在in中动态的绑定参数(参数个数可变))
摘要:Varying in lists... 在书写SQL语句的过程中,我们可能会遇到,在其中的一张表中会存储一个ID串的字段,那么在写SQL语句的过程中,我们可能会出现以下错误的写法,1 SELECT * FROM WHERE col IN (SELECT col2 FROM dual)本文将给出为什么该语法错误的原因:本文也给出了通用的几种处理方法:网址:http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:110612348061 http://asktom.oracle.com/pls/asktom/f... 阅读全文
posted @ 2012-09-24 07:52 Coldest Winter 阅读(627) 评论(0) 推荐(0)
pass parameters to view(参数视图)
摘要:参考网址:http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1448404423206参数视图:在实际的业务中,我们可能要进行权限控制,例如:某个部门经理只能看到属于自己管理部门下的员工信息,而不能看到不属于自己管理的部门下的员工的信息,对于系统来说,就要动态的根据当前的登录人所属的部门,进行动态的过滤某些数据,这时候,可以考虑使用参数视图,但是也可以利用一个包的get/set方法进行权限的过滤例如,以下是一个简单的实例:使用的包:CREATE OR REPLACE PACKAGE get_dept_info I 阅读全文
posted @ 2012-09-22 19:21 Coldest Winter 阅读(448) 评论(0) 推荐(0)
存储过程包实例分享
摘要:1、网址:http://www.databasejournal.com/features/oracle/article.php/10893_3507806_2/A-View-of-Creating-an-Oracle-User---Part-I.htmView Code2、STR包:网址:http://www.joegarrepy.com/str_package.htm http://plnet.org/(包含很多使用的包)API参考手册:http://www.joegarrepy.com/pldoc_str.htmlView Code 1 CREATE OR REPLACE PACK... 阅读全文
posted @ 2012-09-22 09:29 Coldest Winter 阅读(230) 评论(0) 推荐(0)
彻底卸载Oracle(转载)
摘要:转载网址:http://www.cnblogs.com/xiaopeng84/archive/2008/12/22/1359750.htmloracle注册表删除--彻底卸载Oracle:用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下:1、 开始->设置->控制面板->管理工具->服务停止所有Oracle服务。2、 开始->程序->Oracle - OraHome81->Oracle Installation Products->Univers 阅读全文
posted @ 2012-07-06 06:01 Coldest Winter 阅读(195) 评论(0) 推荐(0)
退出嵌套的FOR LOOP循环(直接退出所有的循环)
摘要:推出嵌套的FOR LOOP循环,有两种方法,第一种,使用GOTO语句跳出循环,跳到指定的位置,这时候,需要使用LABLE标记符; 1 DECLARE 2 V_COUNT NUMBER := 6; 3 BEGIN 4 FOR IDX1 IN 1 .. 5 LOOP 5 DBMS_OUTPUT.PUT_LINE('first---' || IDX1); 6 FOR IDX2 IN 1 .. 5 LOOP 7 DBMS_OUTPUT.PUT_LINE('secord---' || IDX2); 8 FOR IDX3 IN 1 .. 5 LOOP 9 ... 阅读全文
posted @ 2012-03-26 20:50 Coldest Winter 阅读(1065) 评论(0) 推荐(0)
Oracle Function-NEXT_DAY,TRUNC,ROUND,CEIL,SIGN
摘要:注意:国际通用的日期中;周末才是一个周的第一天ROUND and TRUNC Date Functionsnext lists the format models you can use with the ROUND and TRUNC date functions and the units to which they round and truncate dates. The default model, 'DD', returns the date rounded or truncated to the day with a time of midnight.Date F 阅读全文
posted @ 2012-03-10 11:55 Coldest Winter 阅读(653) 评论(0) 推荐(0)
使用存储过程进行分页:page by Procedure
摘要:包头: 1 CREATE OR REPLACE PACKAGE EMP_SIMPLE_DEMO IS 2 3 --定义一个游标 4 TYPE EMP_REF_CURSOR IS REF CURSOR; 5 6 /** 7 *分页存储过程 8 *要求可以输入表名,每页显示记录数、当前页。返回总记录数,总页数,和返回的结果集。 9 */10 PROCEDURE FENYE(I_TABLENAME IN VARCHAR2, --表名11 I_PAGESIZE IN PLS_INTEGER, --页大小12 ... 阅读全文
posted @ 2012-02-07 22:50 Coldest Winter 阅读(282) 评论(0) 推荐(0)
使用自制事务进行异常信息的记录:Autonomous transactions-log
摘要:建立错误信息表:1 CREATE TABLE error_logs ( 2 id NUMBER(10) NOT NULL, 3 log_timestamp TIMESTAMP NOT NULL, 4 error_message VARCHAR2(4000)... 阅读全文
posted @ 2012-01-14 22:17 Coldest Winter 阅读(259) 评论(0) 推荐(0)