Oracle数据库job,调用存储过程,PLSQL工具执行后,没有报错,但是也没有任...

发布网友 发布时间:2022-04-24 20:58

我来回答

2个回答

热心网友 时间:2022-04-12 13:25

SQL> create or replace procere test_jobproce as
2
3 begin
4
5 insert into test_job values(sysdate);
6
7 end test_jobproce;
8
9 /

警告: 创建的过程带有编译错误。

SQL> show errors;
PROCEDURE TEST_JOBPROCE 出现错误:

LINE/COL ERROR
-------- -----------------------------------------------------------------
5/1 PL/SQL: SQL Statement ignored
5/13 PL/SQL: ORA-00942: 表或视图不存在
SQL> create table test_job (t1 date);

表已创建。

SQL> create or replace procere test_jobproce as
2
3 begin
4
5 insert into test_job values(sysdate);
6
7 end test_jobproce;
8 /

过程已创建。

SQL> declare test_job_really number;
2 begin
3 dbms_job.submit(test_job_really,'test_jobproce;',sysdate,'sysdate+1/1440')

4 commit;
5 end;
6 /

PL/SQL 过程已成功完成。

SQL> rpitn :test_job_really;
SP2-0734: 未知的命令开头 "rpitn :tes..." - 忽略了剩余的行。
SQL> print :test_job_really;
SP2-0552: 未声明绑定变量 "TEST_JOB_REALLY"。
SQL> desc dba_jobs;
名称 是否为空? 类型
----------------------------------------- -------- ---------------------------

JOB NOT NULL NUMBER
LOG_USER NOT NULL VARCHAR2(30)
PRIV_USER NOT NULL VARCHAR2(30)
SCHEMA_USER NOT NULL VARCHAR2(30)
LAST_DATE DATE
LAST_SEC VARCHAR2(8)
THIS_DATE DATE
THIS_SEC VARCHAR2(8)
NEXT_DATE NOT NULL DATE
NEXT_SEC VARCHAR2(8)
TOTAL_TIME NUMBER
BROKEN VARCHAR2(1)
INTERVAL NOT NULL VARCHAR2(200)
FAILURES NUMBER
WHAT VARCHAR2(4000)
NLS_ENV VARCHAR2(4000)
MISC_ENV RAW(32)
INSTANCE NUMBER

SQL> select job ,what from dba_jobs;

JOB
----------
WHAT
-------------------------------------------------------------------------------

4001
wwv_flow_cache.purge_sessions(p_purge_sess_older_then_hrs => 24);

4002
wwv_flow_mail.push_queue(wwv_flow_platform.get_preference('SMTP_HOST_ADDRESS'),

wv_flow_platform.get_preference('SMTP_HOST_PORT'));

3
test_jobproce;

JOB
----------
WHAT
-------------------------------------------------------------------------------

SQL> exec dbms_job.run(3);

PL/SQL 过程已成功完成。

SQL> select * from test_job
2 ;

T1
--------------
05-3月 -14
05-3月 -14

SQL> /

T1
--------------
05-3月 -14
05-3月 -14

SQL> /

T1
--------------
05-3月 -14
05-3月 -14

SQL> /

T1
--------------
05-3月 -14
05-3月 -14

SQL> exec dbms_job.run(3);

PL/SQL 过程已成功完成。

SQL> /

T1
--------------
05-3月 -14
05-3月 -14
05-3月 -14

SQL> /

T1
--------------
05-3月 -14
05-3月 -14
05-3月 -14

SQL> exec dbms_job.run(3);

PL/SQL 过程已成功完成。

SQL> /

T1
--------------
05-3月 -14
05-3月 -14
05-3月 -14
05-3月 -14

SQL>

热心网友 时间:2022-04-12 14:43

你尝试一下在test_jobproce里,添加一个commit;应该可以解决问题!

(如果本答案有帮助,请采纳,谢谢!)追问我今天试了一下,你说的跟问题没有关系。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com