SQL> variable job number;
SQL> begin
2 dbms_job.submit(:job,
3 'DECLARE
4 V_TXDATE VARCHAR2(8);
5 V_SERIALNO NUMBER;
6 V_RETCODE NUMBER;
7 BEGIN
8 V_TXDATE:=TO_CHAR(SYSDATE-1,''YYYYMMDD'');
9 V_SERIALNO:=0;
10 V_PARTITION:=0;
11 p_alt_oper_mon(V_TXDATE,V_SERIALNO,V_PARTITION,V_RETCODE);
12 END;',SYSDATE+0.02,'SYSDATE+1');
13 COMMIT;
14 END;
15 /
ORA-06550: line 8, column 19:
PLS-00201: identifier 'V_PARTITION' must be declared
ORA-06550: line 8, column 19:
PL/SQL: Statement ignored
ORA-06550: line 9, column 54:
PLS-00201: identifier 'V_PARTITION' must be declared
ORA-06550: line 9, column 19:
PL/SQL: Statement ignored
ORA-06512: at "SYS.DBMS_JOB", line 82
ORA-06512: at "SYS.DBMS_JOB", line 139
ORA-06512: at line 2
job
---------
SQL> begin
2 dbms_job.submit(:job,
3 'DECLARE
4 V_TXDATE VARCHAR2(8);
5 V_SERIALNO NUMBER;
6 V_RETCODE NUMBER;
7 BEGIN
8 V_TXDATE:=TO_CHAR(SYSDATE-1,''YYYYMMDD'');
9 V_SERIALNO:=0;
10 V_PARTITION:=0;
11 p_alt_oper_mon(V_TXDATE,V_SERIALNO,V_PARTITION,V_RETCODE);
12 END;',SYSDATE+0.02,'SYSDATE+1');
13 COMMIT;
14 END;
15 /
ORA-06550: line 8, column 19:
PLS-00201: identifier 'V_PARTITION' must be declared
ORA-06550: line 8, column 19:
PL/SQL: Statement ignored
ORA-06550: line 9, column 54:
PLS-00201: identifier 'V_PARTITION' must be declared
ORA-06550: line 9, column 19:
PL/SQL: Statement ignored
ORA-06512: at "SYS.DBMS_JOB", line 82
ORA-06512: at "SYS.DBMS_JOB", line 139
ORA-06512: at line 2
job
---------
都搞诉你了。变量V_PARTITION必须声明。在decalare里加个V_PARTITION number;