日期:2014-05-17  浏览次数:20801 次

oracle job调用过程问题
创建1个过程
CREATE   OR   REPLACE   PROCEDURE   sp_tst_job_for_dblink
AS
    cnt   NUMBER;
    sss     varchar2(400);
BEGIN
    SELECT   COUNT(*)   INTO   cnt   FROM   test22@tst_db;
    INSERT   INTO   test(slog1,slog2)   VALUES(to_char(cnt),to_char(SYSDATE, 'yyyy-mm-dd   hh24:mi:ss ')|| '==> sp_tst_job_for_dblink ');
    COMMIT;
EXCEPTION
    WHEN   OTHERS   THEN
        sss:=SQLERRM;
        INSERT   INTO   test(slog1,slog2)   VALUES(sss,to_char(SYSDATE, 'yyyy-mm-dd   hh24:mi:ss ')|| '==> sp_tst_job_for_dblink ');
        COMMIT;
END   sp_tst_job_for_dblink;
/

单独exec   sp_tst_job_for_dblink;很顺利,结果塞进去了:
    57430610   2011-11-14   16:40:03==> sp_tst_job_for_dblink

然后用job调用:
var   jobnum   number;
begin
    DBMS_JOB.submit   (:jobnum, 'sp_tst_job_for_dblink; ',SYSDATE,null);
    commit;
end;
/
结果就过程就报错了:
ORA-12154:   TNS:could   not   resolve   the   connect   identifier   specified     2011-11-14   16:52:22==> sp_tst_job_for_dblink

谁知道什么原因?

------解决方案--------------------
SQL code
create synonym test22 for test22@tst_db;