![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
plsql
文章平均质量分 57
baobaojinjin
这个作者很懒,什么都没留下…
展开
-
Oracle 分析函数(Analytic Functions) 说明
一. Analytic Functions 说明分析函数是oracle 8中引入的一个概念,为我们分析数据提供了一种简单高效的处理方式. 官方对分析函数的说明如下:Analytic functions compute an aggregate value based on a group of rows. They differ fromaggregate functions...原创 2011-12-16 14:41:44 · 100 阅读 · 0 评论 -
Oracle PL/SQL之内联接、外联接、交叉连接
oracle的联接分如下几种:内联接(inner join)。外联接(outer join):全联接(full join)、左联接(left join)、右联接(right join)。交叉联接(cross join)。外联接与内联接不一样,外连接返回到查询结果中的不仅包含符合条件的行,还包括左表(左外连接),右表(右外连接)或者两个连接表(全外连接)中的所有不符合条件的数...原创 2011-12-06 12:01:02 · 285 阅读 · 0 评论 -
Oracle PL/SQL之ENABLE NOVALIDATE约束
SQL> create table dept as select * from scott.dept where 1=2; Table created SQL> insert into dept select * from scott.dept where deptno=10; 1 row inserted SQL>...原创 2011-12-06 13:45:30 · 119 阅读 · 0 评论 -
ORACLE 分区表 PARTITION table
1.1 分区表PARTITION table在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。1.1.1 分区表的建立:某公司的每年产生巨大的销售记录,DBA向公司建议每季度的数据放在一个分区内,以下示范的是该公司1999年的数据(假设每月产生30M的数据),操作如下:范围分区表:CREATE TABLE sales(invoice_no ...原创 2011-12-06 13:49:47 · 163 阅读 · 0 评论 -
Oracle PL/SQL之SET TRANSACTION READ ONLY(事务隔离性)
SET TRANSACTION READ ONLY实际上是实现数据库四大事务(ACID)中隔离性(Isolation)的一种手段,用来将数据的读一致性定在某一时间点,即不管其他事务如何更改数据(不能在当前session中再使用自治事务),在当前事务中进行查询的结果始终不变。由于Oracle的读一致性是通过undo段来实现的,所以如果在此期间DML修改的数据量很大而undo空间设置过小可能会导致OR...原创 2011-12-06 15:02:03 · 94 阅读 · 0 评论 -
Oracle PL/SQL之VARCHAR2 QUALIFIER
在声明VARCHAR2变量时,我们可以指定其最大长度单位为CHAR:v1 VARCHAR2(2 CHAR); 或BYTE:v2 VARCHAR2(2 BYTE); ,大多数默认什么都不指定:v3 VARCHAR2(2); 。 那么这三者有什么区别呢? 请看例子: view plainDECLARE v1 VARCHAR2(2 CHAR); ...原创 2011-12-07 13:35:33 · 72 阅读 · 0 评论 -
RACLE CHAR,VARCHAR,VARCHAR2,NVARCHAR类型的区别与使用
区别: 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 2.CHAR的效率比VARCHAR2的效率稍高。 3.目前VARCHAR是VARCH...原创 2011-12-07 13:35:49 · 106 阅读 · 0 评论 -
Oracle 10G中轻松发送email -- UTL_MAIL
0G之前,如果要从oracle中发送email,必须借助oracle的utl_smtp和utl_tcp功能包,自己包装一个email发送程序,然后使用.自从10G后,这个流程将变得非常简单.因为oracle给我们提供了一个utl_mail包,我们可以直接调用发送email.其实这个包底层也是调用了utl_smtp、utl_tcp的相关api. 不过utl_mail只能用于无安全验证的stmp服...原创 2011-12-07 13:36:48 · 317 阅读 · 0 评论 -
Oracle PL/SQL之不能在function里面调用DBMS_LOCK(Grant to role OR Grant to user)
已知:测试用户tuser1,测试角色trole1,trole1已经授权给了tuser1。在测试一段程序时需要用到延时,于是就把dbms_lock授权给了trole1,放在匿名块里测试没有问题:view plainSQL> set serveroutput on; SQL> SQL> BEGIN 2 dbms_output.put_...原创 2011-12-07 13:37:09 · 217 阅读 · 0 评论 -
plsql 快捷键设置
1、登录后默认自动选中My Objects 默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。设置方法:Tools菜单 --> Brower Filters,会打开Brower Folders的定单窗口,把“...原创 2011-12-08 14:57:32 · 171 阅读 · 0 评论 -
数量分析常用函数
最小: min(x)最大 max(x);平均 avg(x);个数 count(x) ; --不是count(*), 因为 x字段里可能有空值,空值不算;标准差,也叫均方差 STDDEV(x);中位数: 也就从小到大是中间那个数,MEDIAN(x);众数: 就是 出现频率最高的那个数:...原创 2012-02-10 14:50:40 · 137 阅读 · 0 评论 -
如何优化前置%的模糊查询?
普通索引下,like ’abc%’条件是能用到索引扫描的;同样道理,在逆序索引下,like ‘%abc'也能启用索引扫描,经在oracle中测试,答案是否定的 REVERSE 函数索引可以解决 like ‘%abc',但是如果 ‘%abc%' 无法解决 只能用 全文索引 Oracle text...原创 2012-07-05 09:14:38 · 673 阅读 · 0 评论 -
Oracle PLSQL实战(Expert PLSQL Practices for Oracle Developers and DBAs)ch01
itpub OO大神的作品原创 2012-07-05 14:08:58 · 130 阅读 · 0 评论 -
Oracle数组的使用
下面这组信息比较有用,列出来以备参考: 除了构造函数外,集合还有很多内建函数,这些函数称为方法。调用方法的语法如下:collection.method下表中列出oracle中集合的方法方法 描述 使用限制COUNT 返回集合中元素的个数DELETE 删除集合中所有元素DELETE() 删除元素下标为x的元素,如果x为null,则集合保持不变 ...原创 2012-07-06 09:35:30 · 83 阅读 · 0 评论 -
才弄明白Number(p,s)的意义
number(p,s)p:1~38s:-84~127p>0,对s分2种情况:1. s>0精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。2. s<0精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+|s|比如:Value Da...原创 2012-03-02 14:30:17 · 128 阅读 · 0 评论 -
Oracle SQL经典荟萃
Oracle SQL经典荟萃将自己学习,工作中整理的一些经典SQL和大家分享一下。注意,在Oracle 9i中tiger账户默认是开启的,后续版本则改变了策略~同时,关于sql优化尤其是hint的使用,这里不做分享,具体可以查阅民间流传的50大招~ Sql代码 -- toy sql alter user scott ac...原创 2012-03-23 14:52:33 · 63 阅读 · 0 评论 -
Oracle PL/SQL之WITH查询
为什么要用WITH?1. 如果需要在一段复杂查询里多次应用同一个查询,用WITH可实现代码重用;2. WITH查询类似将查询结果保留到用户临时表里,在大的复杂查询中可以减少IO,有一定的性能优化作用。 WITH查询有何限制与特性?1. 如果当前schema下有与WITH查询别名相同的表,查询中WITH查询生成的表优先;2. 只能用于select 语句;3. WITH...原创 2011-12-06 11:56:52 · 293 阅读 · 0 评论 -
order by原来也可以这样
You Asked (Jump to Tom's latest followup)Hi Tom,I have scenario like , For example I have table with a Column of values 1,2,3,4,5 but i need the output like 2,3,4,5,1, for this i found o...原创 2012-05-17 10:37:33 · 121 阅读 · 0 评论 -
Oracle 表连接方式(内连接/外连接/自连接) 详解
Oracle 表之间的连接分为三种:1. 内连接(自然连接)2. 外连接(1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制)3. 自连接(同一张表内的连接) SQL的标准语法:select table1.column,table2.columnfrom table1 [inner ...原创 2011-12-16 14:46:23 · 86 阅读 · 0 评论 -
Oracle 汉子转换为拼音
create or replace type spell_code as object(spell varchar2(10),code number); /create or replace type t_spellcode is table of spell_code; /CREATE OR REPLACE function f_getSpellcode return t_...原创 2011-12-16 15:14:04 · 132 阅读 · 0 评论 -
oracle,Cannot SET AUTOTRACE解决问题
首先以管理登陆 将 SET AUTOTRACE ON 权限授权给当前用户 grant select any dictionary to user_name; 1、SET AUTOTRACE参数SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式SET AUTOTRACE ON EXPLAIN ------ AUT...原创 2011-12-20 15:32:04 · 639 阅读 · 0 评论 -
plustrace role
plustrace role普通用户被授予此角色权限后可以进行autotrace SQL> conn scott/tigerset Connected. SQL>SQL>SQL> set autot on;SP2-0618: Cannot find the Session Identifier. Check PLUST...原创 2011-12-20 17:29:27 · 74 阅读 · 0 评论 -
判断字段中含有多少个字母,包括大小写字母
with tmp as( select 'Oracle11g Sap R/3' str from dual union all select 'ab12*)(--/DW/12KKs' str from dual union all select '12*&())--' from dual)select str, nvl(leng...原创 2011-12-26 16:47:29 · 168 阅读 · 0 评论 -
oracle 异常处理 exception
在实际开发plsql中,我们常常会将异常的信息保留到日记表中,以备以后检查时使用,这样我们就可以使用sqlcode 和sqlerm 函数来记录异常和区分异常。但是要注意:sqlcode和sqlerrm不可以直接在sql语句中使用,必须将它赋值给一个局部变量。 create table err_log(name varchar2(100),err_code number(10),err...原创 2011-12-29 13:23:31 · 98 阅读 · 0 评论 -
局部变量和循环变量同名 PL/SQL陷阱
1.局部变量和循环变量同名,出了循环还是局部变量declarei number;begini:=0;for i in 1..3 loopdbms_output.put_line(i);end loop;dbms_output.put_line('------');dbms_output.put_line(i);end;/123---...原创 2012-01-05 10:22:49 · 214 阅读 · 0 评论 -
PL/SQL编程规范
一、PL/SQL编程规范之大小写 就像在SQL中一样,PL / SQL中是不区分大小写的。其一般准则如下: 关键字(BEGIN, EXCEPTION, END, IF THEN ELSE,LOOP, END LOOP)、数据类型(VARCHAR2, NUMBER)、内部函数(LEAST, SUBSTR)和用户定义的子程序(procedures, functions,packages),使用大写...原创 2012-01-06 09:19:24 · 372 阅读 · 0 评论 -
xml导入Oracle表的简单方法
我喜欢Tom的风格,尽可能使用简单的方法完成能够任务,xml导入Oracle表的简单方法见附件,1为导入少量数据,二为通过os文件导入大量数据。 转自itpub 1.xml导入Oracle表的简单方法 2.oracle表数据导入xml文件 ...原创 2012-01-17 13:31:42 · 350 阅读 · 0 评论 -
pl/sql中的转义符 参照图
对照图如下原创 2012-01-17 15:53:40 · 163 阅读 · 0 评论 -
转 Oracle学习笔记整理之游标篇
游标分为隐式、显式、REF三种游标。而隐式游标和显式游标又都属于静态游标,REF游标属于动态游标。静态游标和动态游标的最大区别在于静态游标是在运行前将游标变量和SQL关联,而动态游标恰恰相反是在运行后将游标变量和SQL进行关联。隐式游标是由Oracle自动管理,也称sql游标。所有的DML都被Oracle解析成为一个名为SQL的隐式游标。DML包括Insert、Delete、Update、Merg...原创 2012-01-29 10:59:42 · 137 阅读 · 0 评论 -
转 第三章 PL/SQL数据类型
第三章 PL/SQL数据类型一、预定义数据类型Oracle的数据类型可以分为四类,分别是标量类型,复合类型,引用类型和LOB类型。标量类型没有内部组件;而复合类型包含了能够被单独操作的内部组件;引用类型类似于3G语言中的指针,能够引用一个值;LOB类型的值就是一个lob定位器,能够指示出大对象(如图像)的存储位置。下图是在PL/SQL中可以使用的预定义类型,其中标量类型又分为...原创 2012-02-02 14:29:08 · 128 阅读 · 0 评论 -
转 第一章 PL/SQL一览
第一章 PL/SQL一览一、理解PL/SQL的主要特性了解PL/SQL最好的方法就是从简单的实例入手。下面的程序是用于处理一个网球拍订单的。首先声明一个NUMBER类型的变量来存放现有的球拍数量。然后从数据表inventory中把球拍的数量检索出来。如果数量大于零,程序就会更新inventory表,并向purchase_record表插入一条购买记录,如果数量不大于零,程序会向p...原创 2012-02-02 14:31:21 · 227 阅读 · 0 评论 -
第二章 PL/SQL基础
第二章 PL/SQL基础一、字符集在PL/SQL程序中,允许出现的字符集包括:大小写字母(A-Z和a-z)数字(0-9)符号( ) + - * / < > = ! ~ ^ ; : . ’ @ % , " # $ & _ | { } ? [ ]制表符、空格和回车符PL/SQL对大小写不敏感,所以,除了在字符串和字符中,小写字母和它对应的大写字...原创 2012-02-02 14:33:58 · 127 阅读 · 0 评论 -
该函数生成一定行数的数据
create or replace procedure gen_data(p_tname in varchar2, p_records in number) authid current_user as l_insert long; l_rows number default 0;begin...原创 2012-05-17 09:46:23 · 86 阅读 · 0 评论 -
sql的精妙解法
sql求解表a列 a1 a2记录1 a1 b2 x2 y2 z用select能选成以下结果吗?1 ab2 xyz使用pl/sql代码实现,但要求你组合后的长度不能超出oracle varchar2长度的限制。下面是一个例子create or replace type strings_table is table of varcha...原创 2015-02-02 08:31:56 · 87 阅读 · 0 评论