存储过程分针
㈠ oracle 存储过程 把一个表A的数据传入另一个表B中,每30分钟传一次 ,这个存储过程怎么写
这个应该是JOB的功能兄弟,不是过程.
sql如下:
begin
sys.dbms_job.submit(job => :job,
what => 'begin
INSERT 表A(指定列名)select 指定列名 from 表B; COMMIT;
end;',
next_date => to_date('09-10-2012 23:24:43', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+30/1440');
commit;
end;
/
㈡ oracle如何把天数转换成小时和分钟!!!
应该有专门的函数吧,我得弄清楚你是直接写Oracle存储过程,还是使用java或者VC去连Oracle数据库,如果是前台使用编程语言操作的话,可以使用编程语言进行转换。Java中有丰富的日期时间转换函数。如果是写存储过程的话,可以看看Oracle的 开发文档,应该有吧,祝你成功,兄弟。
㈢ sql server存储过程中 判断时间字段是否在当前时间前后5分钟以内 该怎么写
select abs(datediff(s,'2012-05-22 14:21:25',getdate()))<=300
就是通过datediff函数比较两个时间的秒数差,绝对值在300秒以内
㈣ 如何用plsql每隔5分钟自动执行一次存储过程
1,创建一个存储过程
bb
作用是往pig表中插入数据
sql>
create
or
replace
procere
job_pro_test
as
2
begin
3
insert
into
job_test
values(sysdate);
4
end;
5
/
procere
created
2,创建一个job,名称为job2010
;作用是每分钟(60×24=1440)执行一次存储过程job_pro_test。
sql>
variable
job2010
number;
sql>
begin
2
dbms_job.submit(:job2010,'job_pro_test;',sysdate,'sysdate+1/1440');
3
end;
4
/
㈤ sql时间问题
where uptime>=dateadd(hour,-4,getdate())
where uptime>=dateadd(mm,-4,getdate())
where uptime>=dateadd(ss,-4,getdate())
条件字段本身最好不要加函数如datediff(uptimexxxxx)>xzxx之类的
这样有索引的情况下,效率很差,因为不走索引了
还有能够尽量用区间闭合的查询
如大数据xx>10 跟xx>=11之类的效率相差会很大的
㈥ 存储过程第一次执行耗时30分钟,第二次开始每次耗时不到3分钟,这是什么原因
sql是高级语言,数据库系统执行sql之前要将sql语句进行解析(相当于编译),这个过程叫硬解析;数据库系统每次执行sql之前都会检查共享池中是不是存在已经解析过的语句,如果有就拿来直接用,这叫软结息。软解析比硬解析效率高,这是影响因素之一;
二、第一次执行可能没有走索引,第二次执行使用第一次执行的执行计划
三、看你的存储过程做了些什么,有可能第一次把活干完了,导致第二次执行没什么活干
以上回答基于oracle体系结构
㈦ oracle存储过程效率问题,存储过程,每分钟1千条数据,有44多万数据,怎么样能执行速度快
建议你找找有关提高语句效率的方法,将有些语句调整调整,比如将确定的且筛选数据比较厉害的条件向后靠,同时增加一些索引,另外写法上调整一下,例如,既然count出来 V_COUNT不是一条就不要取 V_SERV_ID 到变量中了,直接返回失败.
另外 SELECT T.ID INTO V_ID FROM rms.SS_MODULE T WHERE T.SS_ID = (SELECT T.ID FROM DEVICE T WHERE T.NAME = (SELECT T.DEVICE_NAME FROM SOFT_SWITCH_TABLE T WHERE T.DEVICE_NAME IS NOT NULL)) AND T.CODE = V_CODE; 这个语句中好多T 我都不知哪个字段是哪个表的
㈧ oracle中job如何设定每小时的第10分钟执行
可以实现的,先创建一个存储过程,在创建Job。
我们在项目开发中,常常会有一些复杂的业务逻辑。使用oracle的存储过程,可以大大减少java程序代码的编写工作量,而且存储过程执行在数据库上,这样可以利用oracle的良好性能支持,极大地提高程序执行效率和稳定性。定时执行存储过程,就要用到job。
先创建一个存储过程:
SQL> create or replace procere MYPROC as
2begin
3update table_name set date= 'TRUNC(sysdate,'hh24') +1/24+ 10 / (24*60)';
4end;
5/
创建JOB :
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'MYPROC;to_date('00:10:00','HH:MI:SS'),'sysdate+1/24');//每天24h,即每小时运行myproc过程一次
3end;
4/
运行JOB :
SQL> begin
2dbms_job.run(:job1);
3end;
4/
㈨ 数据库的触发器每两分钟执行一次行不行
sqlserver代理中的作业计划完全满足你的要求。
㈩ oracle job使用 我想数据库每隔十分钟执行一次存储过程A,怎么写,本人小白,没用过job,想大神们求解
begin
sys.dbms_job.submit(job => :job, -- job编号
what => 'dbms_output.pub_line(''asdf'');', -- 执行脚本,换成你的存储过程
next_date => to_date('17-01-2011 16:17:31', 'dd-mm-yyyy hh24:mi:ss'), -- 下次执行时间
interval => 'trunc(sysdate)+10/24/60'); -- 执行时间间隔10min
commit;
end;
/