随笔分类 -  Oracle

oracle 分頁
摘要:Oracle的分页查询语句(一)分页查询格式:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN >= 21其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE 阅读全文

posted @ 2012-04-11 16:01 Mayvar 阅读(1052) 评论(0) 推荐(0)

PL/SQL 問題澄清(2)
摘要:这个基础问题,您可以选对么,如下:我创建了如下包头:CREATE OR REPLACE PACKAGE plch_pkgAUTHID DEFINERISTYPE names_t IS TABLE OF VARCHAR2 (20)INDEX BY PLS_INTEGER;END plch_pkg;/哪些选项在执行之后会显示"3"?(A)DECLAREl_names CONSTANT plch_pkg.names_t:= plch_pkg.names_t ('Horton', 'Hears', 'A Who') ;BEGINDBM 阅读全文

posted @ 2012-04-07 09:06 Mayvar 阅读(1058) 评论(0) 推荐(0)

PL/SQL 問題澄清(1)
摘要:看下面一段程序,您能都答對麼?DECLARE my_list DBMS_SQL.number_table; element_exists BOOLEAN;BEGIN DBMS_OUTPUT.put_line(CASE WHEN my_list.EXISTS (null) THEN 'T' ELSE 'F' END); DBMS_OUTPUT.put_line(CASE WHEN my_list.count > 0 THEN 'T' ELSE 'F' END); my_list(-1) := -100; my_list(1) 阅读全文

posted @ 2012-03-19 15:14 Mayvar 阅读(852) 评论(0) 推荐(0)

oracle 每日一题
摘要:http://www.itpub.net/thread-1499223-1-1.html 阅读全文

posted @ 2012-02-01 08:43 Mayvar 阅读(152) 评论(0) 推荐(0)

ORACLE 批量实例分析
摘要:Oracle学习:批量SQL实例分析与比较2011年12月14日17:23 来源:博客 作者:Snowtoday 编辑:苏巧红 评论:0条 【IT168技术】PL/SQL引入过程化语言的相应元素,比如条件分支或者循环,不过,SQL本身仍然作为主体嵌套于其中,由于需要SQL引擎才能执行SQL命令,对于PL/SQL程序,往往存在许多PL/SQL引擎 - SQL引擎之间的交互,过多这样的交互会对性能产生负面影响。 相关阅读: Oracle学习:结构化查询实例演示与解析 Oracle在PL/SQL中引入了BULK SQL,用于尽量减少PL/SQL – SQL引擎之间的交互,以期提高性能。具体... 阅读全文

posted @ 2012-02-01 08:29 Mayvar 阅读(826) 评论(0) 推荐(0)

不用嵌套SQL,排序後取第一行值
摘要:select min(TC_APSMB002)keep(dense_rank first order by tc_apsmc004-tc_apsmc005 DESC), min(tc_apsmc004-tc_apsmc005)keep(dense_rank first order by tc_apsmc004-tc_apsmc005 DESC)from ds4.tc_orc_file ,ds4.tc_apsmb_file,ds4.tc_apsmc_file where tc_orc008=tc_apsmb001 and tc_ORC008=tc_apsmc002 AND TC_OR... 阅读全文

posted @ 2011-12-09 09:26 Mayvar 阅读(671) 评论(0) 推荐(1)

分組統計 GROUP
摘要:個人認為,這個在財務計算中肯定有用:A),select tc_orc002, tc_orc017, avg(tc_orc018) from ds4.tc_orc_filewhere tc_orc016 > sysdate - 2 and tc_orc003 is not nullgroup by rollup(tc_orc002, tc_orc017);TN70BS228B2MN70-61B0.01TN70BS228B0.01PU90UHS030G2MU90-04G1PU90UHS030G1VN60V-060SB2MN60-01B0.01VN60V-060SB0.01PU90UHS022 阅读全文

posted @ 2011-11-24 10:44 Mayvar 阅读(189) 评论(0) 推荐(0)

oracle 求多列最大值最小值SQL
摘要:select TC_ALLTA012, TC_ALLTA022, TC_ALLTA023, TC_ALLTA019, TC_ALLTA021, greatest(TC_ALLTA019, TC_ALLTA021) max, least(TC_ALLTA019,TC_ALLTA021) min from ds4.tc_allta_filewhere tc_plcma002 = 'SEKM320' 阅读全文

posted @ 2011-11-07 13:15 Mayvar 阅读(426) 评论(0) 推荐(0)

ORACLE NOCOPY的用法
摘要:DECLARE l_1 NUMBER := 10; l_2 NUMBER := 20; l_3 NUMBER := 30; PROCEDURE test_out(p1 IN NUMBER, x1 IN OUT NUMBER, x2 IN OUT NOCOPY NUMBER) IS BEGIN x1 := p1; dbms_output.put_line('inside test_out, x1=' || x1); x2 := p1; dbms_output.put_line('inside test_out, x2=' || x2); (--)raise_app 阅读全文

posted @ 2011-09-21 14:13 Mayvar 阅读(1749) 评论(0) 推荐(0)

oracle 動態SQL(1)
摘要:Oracle中动态SQL详解1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理。通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式。 本文主要就动态SQL的开发进行讨论,并在最后给出一些实际开发的技巧。2. 阅读全文

posted @ 2011-08-20 16:07 Mayvar 阅读(250) 评论(0) 推荐(0)

oracle 函數索引(2)
摘要:Oracle8i 函数索引实验 =========================================================== 作者: oracle(http://oracle.itpub.net)发表于: 2006.07.17 20:40分类: 一般分类 出处: http://oracle.itpub.net/post/20957/146498--------------------------------------------------------------- Oracle自8.1.5版开始支持基于函数的索引,但仅在8i的企业版和个人版中支持,标准版不支持.使 阅读全文

posted @ 2011-08-17 09:45 Mayvar 阅读(781) 评论(0) 推荐(0)

oracle 函數索引(1)
摘要:使用Oracle函数索引 提高查询效率2010-10-25 10:55 佚名 互联网 我要评论(0) 字号:T | T想要提高Oracle数据库的查询检索的效率,使用函数索引无疑是一个非常好的方法。下文对Oracle函数索引的使用作了详尽的阐述,供您参考。AD: 使用Oracle函数索引,无疑是提高查询效率的有效方法之一。下面就为您详细介绍Oracle函数索引的使用方法,希望对您能有所帮助。谈到任何对列的操作都可能导致全表扫描,例如:select*fromempwheresubstr(ename,1,2)=’SM’;但是这种查询在客服系统又经常使用,我们可以创建一个带有substr函数的基于O 阅读全文

posted @ 2011-08-17 09:41 Mayvar 阅读(315) 评论(0) 推荐(0)

oracle 帶out參數的調用
摘要:declare a varchar2(50); p_curr VARCHAR2(50); l_occ36 NUMBER; l_occ63 NUMBER;BEGINa :=DS4.ek_due.get_due_customerno('BD00325', p_curr, l_occ36, l_occ63);dbms_output.put_line(a||'~'||p_curr||'~'||l_occ36||'~'||l_occ36);END; 阅读全文

posted @ 2011-08-13 14:56 Mayvar 阅读(191) 评论(0) 推荐(0)

ORACLE continue(1)
摘要:declarebegin for CUR in (select LEVEL A from dual connect by level<=10) loop declare my_exscep EXCEPTION; BEGIN IF (CUR.A = 5 OR CUR.A=7) THEN RAISE my_exscep; ELSE dbms_output.put_line(CUR.A); END IF; EXCEPTION WHEN my_exscep THEN dbms_output.put_line('dont update now!!'); END; END LOOP; 阅读全文

posted @ 2011-08-12 15:29 Mayvar 阅读(362) 评论(0) 推荐(0)

oracle 日期時間函數
摘要:ORACLE日期时间函数大全 ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits 三位年 显示值:007 yyyy four digits 四位年 显示值:2007 Month: mm number 两位月 显示值:11 mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov month spelled out 字符集表示 显示值:11月,若是英文版,显示november Day: dd number 当月第几天 显示值 阅读全文

posted @ 2011-08-10 09:23 Mayvar 阅读(397) 评论(0) 推荐(0)

oracle 三種集合類型比較(index-by表,嵌套表,數組)
摘要:Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三 2009-12-05 16:21PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有数量限制的,index_by表和嵌套表是没有这个限制的。index-by表是稀疏的,也就是说下标可以不连续,varray类型的集合则是紧密的,他的下标没有间隔。index_by表不能存储在数据库中,但是嵌套表和varray可以被存储在数据库中。 集合在使用时必须先使用type 阅读全文

posted @ 2011-08-09 12:59 Mayvar 阅读(1458) 评论(0) 推荐(0)

oracle inside(11)
摘要:将 JAVA 引擎加到 Oracle 数据库中是 Oracle8i 版本中最激动人心的功能之一。因此:1) 将 JAVA 类和源代码装载到数据库中;2) 在 PL/SQL 中调用 JAVA 代码;3) 在 JAVA 中调用 PL/SQL 代码;11.1 Oracle JAVA1. Jserver:由以下四部分组成:1) JAVA 虚拟机(JVM)2) JDBC 支持3) SQLJ 运行支持4) SQLJ 转换器Oracle 公司的JVM的名称为Aurora,同时通过浏览新创建的Oracle8i数据库,将看到一个名为AURORA$ORB$UNAUTHENTICATED 的用户,此用户用于到ORB 阅读全文

posted @ 2011-08-02 11:22 Mayvar 阅读(231) 评论(0) 推荐(0)

oracle inside(10)
摘要:10.1 报警(DBMS_ALERT 程序包)DBMS_ALERT通常是一种在提交事务时触发的单向异步通信。除非事务被提交,否则不向报警发送任何消息,因此在事务被提交以前,等待的过程或应用程序将一直处于空闲状态。由于DBMS_ALERT使用COMMIT,因此不能在Orcle Forms 中使用这个包。由于DBMS_ALERT包是基于事务的,因此任何ROLLBACK 都将删除所有的报警。要使用SYS.DBMS_ALERT包,要对此包有 EXECUTE 权限。10.1.1 建立报警的次序1) 使用 REGISTER 记录特定的报警;2) 使用 WAITONE 过程,等待特定的报警;3) 使用 WA 阅读全文

posted @ 2011-08-02 11:19 Mayvar 阅读(145) 评论(0) 推荐(0)

oracle inside(9)
摘要:作业是一个存贮程序,它被安排在特定的时间运行,或者在特定的事件发生后运行。9.1 DBMS_JOB 包DBMS_JOB 包是将作业提交到作业队列。作业队列是一个保存安排的作业的地方。通过作业队列,可以安排这些作业执行的时间以及执行的频度,还可以查找当前的关于当前运行的作业、终止的队列、作业调度的信息或其他作业的信息。过 程 名 描述BROKEN 禁止作业运行,如果代码被标记为损坏,Oracle 将不执行它CHANGE 修改指定作业的详细资料,如作业描述、作业运行时间或作业执行的间隔INTERVAL 修改指定作业执行的间隔NEXT_DATE 修改指定作业下一次执行的时间REMOVE 从队列中删除 阅读全文

posted @ 2011-08-02 11:18 Mayvar 阅读(161) 评论(0) 推荐(0)

oracle inside(8)
摘要:DBMS_OUTPUT包是一个可以用SQL*Plus将输出显示到屏幕上的包;UTL_FILE是一个服务器端的内置读写文件包,可以在服务器端读写数据;TEXT_IO是一个客户端的读写包,可以在客户端读写数据。8.1 DBMS_OUTPUT 程序包利用SET SERVEROUTPUT ON 开启屏幕显示时,实际上是命令SQL*Plus 在每一条语句后检查缓冲区中的数据,以取回并显示它。同时,DBMS_OUTPUT也可以用于两个PL/SQL 过程之间交换数据。PL/SQL 高级编程第 30 页 共 30 页8.1.1 开启屏幕显示1. 使用命令行:SET SERVEROUTPUT ON; (Orac 阅读全文

posted @ 2011-08-02 11:17 Mayvar 阅读(148) 评论(0) 推荐(1)

导航