摘要: oracle批量导出AWR报告 阅读全文
posted @ 2014-07-20 20:47 AlbertCQY 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 需求:把oracle数据库中符合条件的N多表,导出成csv文本文件,并以表名.csv为文件名存放。实现:通过存储过程中UTL_FILE函数来实现。导出的csv文件放入提前创建好的directory中。使用方法:使用以下命令数据预执行的SQL脚本SELECT 'EXEC sql_to_csv(''se... 阅读全文
posted @ 2014-04-30 17:25 AlbertCQY 阅读(708) 评论(1) 推荐(0) 编辑
摘要: 需求:需要定期更改密码。要求是1、密码位数11位。2、必须包含大小写字母、数字、特殊字符。3、排除一些特殊字符如()、@、& oracle数据库中有可已生成随机密码包dbms_random,但是用起来有点儿不方便,满足不了上面的需求。一些网页工具或者小软件,使用起来也不方便。 所以就想在oracle自己写函数来实现,并且可以建立数据库表方便管理密码,数据做这些事情有天生的优势。 第一步:在数... 阅读全文
posted @ 2013-08-19 14:22 AlbertCQY 阅读(1706) 评论(0) 推荐(0) 编辑
摘要: 同事想把项目组写的存储过程保存下来,不是dump那种,而是可以随时看,每个存储过程以独立文件存放。首先想到的是开发工具PL/SQL developer有保存存储过程的功能,但是批量和筛选功能有限。toad倒是有这方面的功能,但是这些工具不是任何场合就能用的。所以,还是原始的脚本比较可靠… 举例:把datacore用户下所有以CFA或者以AAC开头的存储过程保存到C:\procedures下。... 阅读全文
posted @ 2013-05-28 11:22 AlbertCQY 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 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 阅读(214) 评论(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 阅读(1132) 评论(0) 推荐(0) 编辑
摘要: 案例:一个应用表中的一个字段是主键,向表中插入数据时,先把数据放在临时表中(没有主键)然后再插入应用表。 这时候如果临时表中有重复数据,无论是主键字段businessid有重复,还是一整行有重复都会报出违反唯一主键约束错误。 方法:group by XX having count(*)>1,rowid,distinct,temporary table,procedure 1、查询表中的重复... 阅读全文
posted @ 2013-04-15 15:18 AlbertCQY 阅读(447) 评论(0) 推荐(1) 编辑
摘要: What is the Oracle Diagnostic Methodology (ODM)? [ID 312789.1] ODM TEST: 查询语句: select to_number(addr,'xxxxxxxxxxxxxxxx') from v$latch_parent where name='process allocation'; select name from v$l... 阅读全文
posted @ 2013-04-13 09:15 AlbertCQY 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 创建数据库事件触发器语法 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 阅读(703) 评论(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 阅读(2357) 评论(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 阅读(1277) 评论(4) 推荐(2) 编辑
摘要: 最近整理了一篇文章:oracle listener 有网友对数据库是否显式设置了instance_name和service_names提出疑问。 由此引发出db_name,instance_name,oracle_sid等等这些常见的参数都代表什么意思,怎么取值的,有什么区别? SQL> select * from v$version; BANNER -----------------... 阅读全文
posted @ 2013-04-05 16:56 AlbertCQY 阅读(855) 评论(1) 推荐(1) 编辑
摘要: DML触发器是最常见的触发器类型,开发人员用的比较多;而其他类型的触发器主要是用于数据库管理或者审计,DBA用的比较多。1、DML触发器简介:BEFORE 触发器这种触发器是在某个操作发生之前触发的,比如before insert就是在插入操作之前触发。AFTER 触发器这种触发器是在某个操作发生之后触发的,比如after update就是在插入操作之前触发。语句级别触发器这种触发器是由整个SQL语句触发的。这个SQL语句可能操作数据库表的一条或者多条数据。行级别触发器这种触发器针对的是SQL语句执行过程中操作的每一行记录。假设books表中有1000行记录。下面的update语句就会修改1. 阅读全文
posted @ 2013-04-03 16:36 AlbertCQY 阅读(550) 评论(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 阅读(325) 评论(0) 推荐(0) 编辑
摘要: Oracle links: Using LogMiner 1.date format ALTER SESSION SET NLS_DATE_FORMAT = 'dd-mon-yyyy hh24:mi:ss'; select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; Requirement: ■ Source... 阅读全文
posted @ 2013-04-03 12:42 AlbertCQY 阅读(331) 评论(1) 推荐(0) 编辑