当前位置:首页 » 存储配置 » oraclejob存储过程

oraclejob存储过程

发布时间: 2022-07-28 01:52:30

㈠ 请问oracle怎么执行存储过程

我试验过了,就是exec 存储过程名或者execute 存储过程名(参数),请你在仔细确认一下,你的存储过程名写没写对呀,或者你没有进入sqlplus中?

----
以上,希望对你能有帮助。

㈡ oracle存储过程和job调用问题

通常像这种自动任务的脚本都需要记录日志,记录每次运行的状态情况,方便问题跟踪,有没有问题是过程脚本问题还是自动任务问题,查看日志一下子就可以定位。

㈢ oracle job 存储过程实例

CREATE OR REPLACE PROCEDURE insert_Log_into_user_stat IS
BEGIN
INSERT INTO idc_user_day_stat
(userdayId,
userid,
flag,
packetcount,
getcount,
days,
createtime)
SELECT
seq_idc_userdayid.nextval,
bb.userid,
0,
b.packetcount,
b.getcount,
substr(b.runtime,0,8),
SYSDATE
FROM idc_get_log b INNER JOIN idc_ip bb ON b.ip=bb.ip
where not exists (select 1
FROM idc_user_day_stat c
WHERE c.userid = bb.userid);
commit;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RETURN;

END;

㈣ oracle job 调用存储过程 what ()过程怎么写(急用~)

直接写过程名即可
如:
P_MY_PROC_D ();
就可以了,要加上分号 ;

㈤ 关于Oracle job调用存储过程

你的这个job不对,应该是下面这样。
declare job1 number;
begin
dbms_job.submit(job1,'insertSysdate;',sysdate,'sysdate+1/1440');
COMMIT;
end;
/

㈥ 想请教一下如何用oracle 中JOB实现定时存储过程。

如果是10g的话就用scheler来代替job吧,比job稳定多了。

先解释一下基础概念,scheler 包含了以下几个实体对象
Program -- 提供了scheler 将要运行什么,包含program name,program type(PLSQL块、存储过程、外部程序),program action(具体的程序实体,比如说一个PLSQL块、或者是存储过程的名称、或者是外部程序的路径加名称) 。

Scheles -- 指定何时何种频率来运行job,可以被不同的job重复的利用。比如说我有两个job都要求在每天的凌晨4点运行,那么两个job可以同时指定相同的schele。

Jobs -- 具体的作业的名称,依赖于那个program、schele。也可以不指定program、schele,而直接写入program、schele的相应参数。

Chains -- 把一组program像一个单独的实体连接在一起,作为一个对象。Job可以指向Chains代替单一的program 。这样就能完成类似如下功能:运行A,然后运行B,当A、B都运行成功则运行C,否则运行D。

下面参考文档边看边做。

1.创建一张表 create table scheler_test(id number,instime date);

2.创建一个存储过程,实现往表中插入资料。

create or replace procere p_insSysdate as
id number;
begin
select count(*) into id from scheler_test;
insert into scheler_test values(id,sysdate);
commit;
end;
/
3.创建一个schele,这个仅仅是一个时间上的安排,由DBMS_SCHEDULER.CREATE_JOB调用。这样就可以重用schele,并且schele在时间的安排上强大与原先的JOB 。语法如下:

BEGIN
SYS.DBMS_SCHEDULER.CREATE_SCHEDULE
(
schele_name => 'SCOTT.EVERY_MINUTE'
,start_date => NULL
,repeat_interval => 'FREQ=MINUTELY'
,end_date => NULL
,comments => NULL
);
END;
/

以下给出部分repeat_interval的写法实例,以供参考
EVERY DAY 'FREQ=DAILY;INTERVAL=1'
EVERY MINUTE 'FREQ=MINUTELY;INTERVAL=1'
EVERY 4 HOURS ON THE HOUR 'FREQ=HOURLY;INTERVAL=4;BYMINUTE=0;BYSECOND=0'
1st DAY OF EVERY MONTH 'FREQ=DAILY;BYMONTHDAY=1'
WEEKDAYS AT 7am and 3pm 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=7,15; BYMINUTE=0;BYSECOND=0'

4.创建DBMS_SCHEDULER.CREATE_PROGRAM,指定运行什么样的程序。

BEGIN
SYS.DBMS_SCHEDULER.CREATE_PROGRAM
(
program_name => 'SCOTT.PRG_INSSYSDATE'
,program_type => 'STORED_PROCEDURE'
,program_action => 'p_insSysdate'
,number_of_arguments => 0
,enabled => TRUE
,comments => NULL
);
END;
/

㈦ oracle 通过job数据备份的存储过程谁帮忙讲解一下都什么意思。

CREATE OR REPLACE PROCEDURE P_BACKUP_SQL AS -- 创建存储过程
V_INPUT VARCHAR2(32767); --说明:这三行BEGIN前的是声明变量
V_OUTPUT VARCHAR2(32767);
V_OUT NUMBER;
BEGIN --将命令脚本保存到V_INPUT变量中
V_INPUT := 'RUN -- 运行。。
{ -- 下面三行是分配通道,类型是磁盘(如果是磁带则为type tape,format后是格式)
ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT ''/data/backup/member/%U'';
ALLOCATE CHANNEL C2 DEVICE TYPE DISK FORMAT ''/data/backup/member/%U'';
ALLOCATE CHANNEL C3 DEVICE TYPE DISK FORMAT ''/data/backup/member/%U'';
BACKUP DATABASE; --备份数据库
}'; --脚本结束,以上内容保存在V_INPUT变量中
DBMS_PIPE.PACK_MESSAGE(V_INPUT); -- 调用DBMS_PIPE包管道通信,将V_INPUT中命令压入管道消息(队列)中
V_OUT := DBMS_PIPE.SEND_MESSAGE('ORA$RMAN_PJOB_IN'); --调用SEND_MESSAGE的ORA$RMAN_PJOB_IN是变量,将刚压入的传送给管道并执行ORA$RMAN_PJOB_IN中变量,消息传送的结果保存到V_OUT变量中
COMMIT;
V_OUT := 0; -- V_OUT变量赋值为0

WHILE (V_OUT = 0) LOOP -- 当V_OUT为0时执行循环
V_OUT := DBMS_PIPE.RECEIVE_MESSAGE('ORA$RMAN_PJOB_OUT', 3600); -- 接收管道命令的消息,接收结果保存到V_OUT中
IF V_OUT = 0 THEN
DBMS_PIPE.UNPACK_MESSAGE(V_OUTPUT); -- 释放管道命令的消息,结果保存到V_OUTPUT
INSERT INTO BACKUP_LOG (END_DATE, OUTPUT_LOG) VALUES (SYSDATE, SUBSTRB(V_OUTPUT, 1, 4000)); -- 将管道命令结果保存到BACKUP_LOG表中
END IF;
END LOOP;
COMMIT;
END;

㈧ oracle数据库job怎么调用含参数的存储过程

dbms_job.submit(test_job_really,'test_jobproce("zhangsan");',sysdate,'sysdate+1/1440');

改为:
dbms_job.submit(test_job_really,'test_jobproce(''zhangsan'');',sysdate,'sysdate+1/1440');

注意:zhangsan的两边,不是双引号,是两个单引号!

如有帮助,请采纳!

㈨ oracle数据库job怎么调用含参数的存储过程

lz你好,job调用的存储过程不能是带参数的,只能是无参数的存储过程,所以what那里不对的哦。

㈩ oracle job执行存储过程问题。

把你的存储过程重新编译一遍

热点内容
传奇脚本刷怪 发布:2024-10-06 11:57:47 浏览:261
c语言输入小写输出大写 发布:2024-10-06 11:49:57 浏览:361
金立手机服务器异常是什么原因 发布:2024-10-06 11:49:48 浏览:699
python多线程假的 发布:2024-10-06 11:37:09 浏览:723
自己动手构造编译 发布:2024-10-06 11:35:11 浏览:550
c语言编译器win10 发布:2024-10-06 11:33:35 浏览:971
安卓手机里的自动备份是什么 发布:2024-10-06 11:30:16 浏览:714
想买电脑配置要注意哪些 发布:2024-10-06 11:21:50 浏览:542
滴滴云存储 发布:2024-10-06 11:17:37 浏览:767
精通android游戏开发 发布:2024-10-06 11:16:54 浏览:801