我想创建一个在给定日期删除数据库对象的作业.创建的作业可以,但不执行该过程.尝试单独执行该程序,它的工作原理.
这是创建作业的代码
v_jobnam := v_objnam;
v_jobnam := DBMS_SCHEDULER.generate_job_name (v_jobnam);
v_startdate := to_timestamp(v_startdate);
select sysdate + (v_delhrs/1440)
into v_startdate
from dual;
DBMS_SCHEDULER.CREATE_JOB(job_name => v_jobnam, job_type => 'PLSQL_BLOCK', JOB_ACTION => 'BEGIN DROP_OBJ1(' || v_objnam|| ', ' || v_objtyp || ', '|| v_schema || ',' || v_objid ||'); END;', start_date => SYSTIMESTAMP, repeat_interval => 'freq=secondly; bysecond=0', end_date => NULL, enabled => TRUE, comments => 'Calls PLSQL once');
Run Code Online (Sandbox Code Playgroud)
其中v_delhrs是一个数字.这是程序的代码:
PROCEDURE DROP_OBJ1
(
p_objnam IN CHAR,
p_objtyp IN CHAR,
p_copyto IN ALL_OBJECTS.OWNER%TYPE,
p_objid IN NUMBER …Run Code Online (Sandbox Code Playgroud) 美好的一天大师,
我有一个脚本定期填充表崩溃并给出上述错误.奇怪的是,它已经在生产系统上运行了近3个月,没有任何问题,上周突然崩溃了.据我所知,这些表格没有任何变化.
有没有人遇到过这样的事情?我相信它与我在其中实现的聚合函数有关; 但它最初起作用了.
请; 请将我开发的脚本部分附加到我认为给出错误的过程中.
创建或替换程序V1
- 宣布
v_a VARCHAR2(4000);
v_b VARCHAR2(4000);
v_c VARCHAR2(4000);
v_d VARCHAR2(4000);
v_e VARCHAR2(4000);
v_f VARCHAR2(4000);
v_g VARCHAR2(4000);
v_h VARCHAR2(4000);
v_i VARCHAR2(4000);
v_j VARCHAR2(4000);
v_k VARCHAR2(4000);
v_l VARCHAR2(4000);
v_m VARCHAR2(4000);
v_n NUMBER(10);
v_o VARCHAR2(4000);
Run Code Online (Sandbox Code Playgroud)
-
- 填充DEMO表的过程
BEGIN
-- Delete all from the DEMO table
DELETE FROM DEMO;
-- Populate fields in DEMO from DEMOV1
INSERT INTO DEMO(ID, D_ID, CTR_ID, C_ID, DT_NAM, TP, BYR, ENY,
ONG, SUMM, DTW, REV, LD, MD, STAT, CRD)
SELECT ID, …Run Code Online (Sandbox Code Playgroud)