随笔分类 -  Oracle Developer

摘要:1、禁用,启用,以及删除触发器 alter trigger trigger_name disable; alter trigger trigger_name enable; drop trigger trigger_name; 举例:禁用或者启用某个表上的全部触发器 create or replace PROCEDURE settrig(tab IN VARCHAR2, ... 阅读全文
posted @ 2013-04-15 17:50 AlbertCQY 阅读(260) 评论(0) 推荐(0)
摘要:Instead of 触发器可以在由一个以上的表组成的视图上进行insert,update,delete,merge.也可以使用instead of 来创建分区表等。 创建instead of 触发器语法: 1 CREATE [OR REPLACE] TRIGGER trigger_name 2 INTEAD OF operation 3 ON view_name 4 FOR E... 阅读全文
posted @ 2013-04-15 17:33 AlbertCQY 阅读(1246) 评论(0) 推荐(0)
摘要:案例:一个应用表中的一个字段是主键,向表中插入数据时,先把数据放在临时表中(没有主键)然后再插入应用表。 这时候如果临时表中有重复数据,无论是主键字段businessid有重复,还是一整行有重复都会报出违反唯一主键约束错误。 方法:group by XX having count(*)>1,rowid,distinct,temporary table,procedure 1、查询表中的重复... 阅读全文
posted @ 2013-04-15 15:18 AlbertCQY 阅读(470) 评论(0) 推荐(1)
摘要:创建数据库事件触发器语法 1 CREATE [OR REPLACE] TRIGGER trigger_name 2 {BEFORE | AFTER} {database_event} ON {DATABASE | SCHEMA} 3 DECLARE 4 Variable declarations 5 BEGIN 6 ...some code... 7 END... 阅读全文
posted @ 2013-04-08 12:57 AlbertCQY 阅读(745) 评论(0) 推荐(0)
摘要:DDL触发器,当执行DDL语句时会被触发。按照作用范围,分为schema triggers,database triggers。schema triggers作用在一个用户上,database triggers作用在整个数据库所有用户上。 创建DDL触发器 要创建一个DDL触发器,语法如下: 1 CREATE [OR REPLACE] TRIGGER trigger name... 阅读全文
posted @ 2013-04-07 13:55 AlbertCQY 阅读(2554) 评论(0) 推荐(0)
摘要:曾经一段时间我对oracle的多表查询搞的云里雾里,究其原因:oracle自己的语法和SQL国际标准语法混用。此文章仅适合oracle 菜鸟,老鸟直接飞过…多表连接类型(SQL 1999标准)• Cross joins • Natural joins • USING clause• Full (or two-sided) outer joins• Arbitrary join conditions for outer joinsSQL1999语法:SELECT table1.column, table2.columnFROM table1[CROSS JOIN table2] |[NATURA 阅读全文
posted @ 2013-04-07 10:10 AlbertCQY 阅读(1338) 评论(4) 推荐(2)
摘要:DML触发器是最常见的触发器类型,开发人员用的比较多;而其他类型的触发器主要是用于数据库管理或者审计,DBA用的比较多。1、DML触发器简介:BEFORE 触发器这种触发器是在某个操作发生之前触发的,比如before insert就是在插入操作之前触发。AFTER 触发器这种触发器是在某个操作发生之后触发的,比如after update就是在插入操作之前触发。语句级别触发器这种触发器是由整个SQL语句触发的。这个SQL语句可能操作数据库表的一条或者多条数据。行级别触发器这种触发器针对的是SQL语句执行过程中操作的每一行记录。假设books表中有1000行记录。下面的update语句就会修改1. 阅读全文
posted @ 2013-04-03 16:36 AlbertCQY 阅读(591) 评论(0) 推荐(0)
摘要:Oracle官方参考:PL/SQL Language Referenc->9 PL/SQL TriggerReasons to Use Trigger:■ Automatically generate calculated column values ■ Log events ■ Gather statistics on table access ■ Modify table data when DML statements are issued against views ■ Enforce referential integrity when child and pare... 阅读全文
posted @ 2013-04-03 14:52 AlbertCQY 阅读(354) 评论(0) 推荐(0)
摘要:Decode函数使用:Oracle 的decode函数蛮有意思,是oracle独有的,国际标准SQL中并没有decode函数。语法DECODE(col|expression, search1, result1[, search2, result2,...,][, default])例子SELECT product_id,DECODE (warehouse_id, 1, 'Southlake',2, 'San Francisco',3, 'New Jersey',4, 'Seattle','Non domestic' 阅读全文
posted @ 2013-03-29 15:59 AlbertCQY 阅读(380) 评论(0) 推荐(0)
摘要:开发环境中:有的表中字段类型定义为varchar2(20)有的表中字段类型定义为varchar2(20 byte)varchar2(20)和varchar2(20 byte)是否相同呢?相不相同是由数据库的参数NLS_LENGTH_SEMANTICS决定的,有两个单位,char(字符)或者字节(byte),该参数默认值为BYTE。所以说,在默认情况下 varchar2(20) = varchar2(20 byte)。如果参数值为CHAR 就不相等。建议:使用统一的格式如:varchar2(20)演示:SQL> show parameter nls_length_semantics;NAM 阅读全文
posted @ 2013-03-29 15:08 AlbertCQY 阅读(1531) 评论(0) 推荐(0)