Oracle
文章平均质量分 60
-静以修身-
这个作者很懒,什么都没留下…
展开
-
Merge into 的使用
/*Merge into 详细介绍MERGE语句用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 *//*語法:MERGE [INTO [schema .] ta原创 2014-01-24 11:05:03 · 1281 阅读 · 0 评论 -
Oracle中job的启动和job挂掉后得重启和写日志问题
create or replace package body dpk_hq_job_relation isprocedure RunJobRelation isbegin job_start; restart; Write_Job_Log;end RunJobRelation; procedure JobSta原创 2014-01-24 11:19:18 · 3746 阅读 · 0 评论 -
存储过程编译不了的原因
我们在写储过程的时候,会经常性的通过编译进行调试,但有时候编译不了,这是因为存储过程被锁住了,下面是解锁的语句:select * from dba_ddl_locks where owner='HQDBA' select t.sid,t.serial# from v$session t where t.sid=;alter system kill session 'sid,seri原创 2014-01-24 10:51:37 · 1161 阅读 · 0 评论 -
动态SQL的应用案例
select 的 语句就用 open p_rc forinsert update delete 的语句就用 execute immediate 下面给出具体实例:动态SQL在select 语句上的使用:create or replace procedure hq_cin(v_locCd_i in varchar2,原创 2014-01-24 11:34:09 · 628 阅读 · 0 评论 -
分页存储过程的编写代码
首先要通过包创建一个游标,代码如下:create or replace package mypackage astype mycursor_cursor is ref cursor;end mypackage;其次才是编写分页的存储过程,代码如下:create or replace procedure myproc(tableName in varchar2,pageS原创 2014-01-26 10:28:40 · 449 阅读 · 0 评论 -
JOB定时执行存储过程和对JOB的管理
业务逻辑是这样的:在一个包中(DPK_HQ_POS_MOVE)写了三个存储过程,其中的一个存储过程(RunPosMove(null,null,null))用于调用一系列的函数,另外一个(Del_PosData(15))是用于清除临时表中某个固定时间之后的数据,最后一个(Del_PosDataLog(60))用于清除日志中某个固定时间之后的数据。每个存储过程用一个job来定时执行。现在要求在一个原创 2014-02-18 10:36:49 · 901 阅读 · 0 评论 -
oracle优化原则
Oracle性能优化保证了Oracle数据库的健壮性。下面就此提出需要注意的两个原则。原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.尤其是“主键ID=?”这样的条件。 原则二: SELECT子句中避免使用原创 2014-02-18 12:45:47 · 474 阅读 · 0 评论 -
你以为是这样的,但是偏偏不是这样子
今天调试oracle写的SQL语句的时候,总是以为是参数转换出错了,然后一直纠结在参数格式不匹配这个地方,却没有考虑原来是其它地方报错。出错SQL是这样的:private string SQL_GET_ALLCARD = "select count(*) from card_memc where card_rcre_user_date between to_date(:beginDate,原创 2014-03-28 17:03:00 · 590 阅读 · 0 评论