2014-12-10 4 views
-2

, когда я пытаюсь выполнить следующий код, я получаю процедуру с 0 ошибками компиляции .. сообщение вместо процедуры успешно завершено сообщение. что с этим? и мне помочь в исправлении этой ошибкиplsql хранимая процедура синтаксическая ошибка

CREATE OR REPLACE PROCEDURE omar_manager_report1 (
    pi_co_id   IN  VARCHAR2,       -- Company ID 
    pi_cntr_nbr  IN  NUMBER DEFAULT 0, 
    -- if Contract number is passed then Case 1: will be executed 
    pi_overdue_days IN  NUMBER DEFAULT 0, 
    --No of days related to Over due of application passed. 
    po_var_ref  OUT  sys_refcursor 
) 
IS 
    lv_query VARCHAR2(400) ; 
    lv_co_id VARCHAR2 (200); 
BEGIN 
    lv_co_id := REPLACE (pi_co_id, ',', ''','''); 
    --Default option for all group office 
    lv_query := 
     'select distinct gue.co_id, 
     (SELECT event_descp FROM get_event WHERE co_id = gue.co_id AND event_cd = gue.event_cd) AS event_desc 
     FROM get_uwtg_event gue'; 
    DBMS_OUTPUT.put_line ('lv_query'); 

    OPEN po_var_ref FOR lv_query; 
EXCEPTION 
    WHEN OTHERS 
    THEN 
    DBMS_OUTPUT.put_line (SQLCODE); 
END; 
/

ответ

0

исполняющей CREATE OR REPLACE PROCEDURE... заявления компилирует процедуры, но она не позвонить процедуры. Чтобы вызвать вашу процедуру, вам необходимо написать блок PL/SQL, подобный следующему:

DECLARE 
    csrOut SYS_REFCURSOR; 
BEGIN 
    omar_manager_report1(pi_co_id  => '123456', 
         pi_cntr_nbr  => 0, 
         pi_overdue_days => 0, 
         po_var_ref  => csrOut); 

    -- Add code here to fetch from csrOut and use the results appropriately 

    -- Close the cursor opened by omar_manager_report1 

    CLOSE csrOut; 
EXCEPTION 
    WHEN OTHERS THEN 
    DBMS_OUTPUT.PUT_LINE('Exception: ' || SQLCODE || ' : ' || SQLERRM); 
END; 

Удачи.

+0

Привет, Боб! Спасибо за ответ. однако процедура не компилируется должным образом в первую очередь .it получает «скомпилированный с 0 ошибками и 0 предупреждениями». поэтому мне нужна помощь в исправлении ошибки с компиляцией. –

+0

ОК, выполните следующий оператор: SELECT * FROM SYS.USER_ERRORS ГДЕ ИМЯ = 'OMAR_MANAGER_REPORT1' И ТИП = 'ПРОЦЕДУРА'. Это позволит получить все ошибки компиляции для вашей процедуры. Затем отредактируйте свой вопрос, включите ошибки и, надеюсь, кто-то сможет помочь. Благодарю. –

Смежные вопросы