2012-02-17 96 views
0

我有一個名爲logger(message)的存儲過程,其中消息的類型是varchar2。運行簡單程序時出現問題的pl/sql腳本

當我執行只是

exec logger('hello'); 

它說,匿名塊完成,這個過程確實是剛剛插入一條記錄在另一個表什麼。

然而,當我用它作爲腳本的一部分時說:

Begin 

    select count(*) into countCol from USER_TAB_COLUMNS where TABLE_NAME = 'EVAPP_INTERFACE_APPENTITY' and COLUMN_NAME = 'ORIGPTI_NUM' and DATA_SCALE is null; 
    IF (countCol <> 0) then 

execute immediate 'alter table EVAPP_INTERFACE_APPENTITY add ORIGPTI_NUM_TMP NUMBER(14,2)' ; 

execute immediate 'update EVAPP_INTERFACE_APPENTITY set ORIGPTI_NUM_TMP = ORIGPTI_NUM' ; 

execute immediate 'alter table EVAPP_INTERFACE_APPENTITY drop column ORIGPTI_NUM' ; 

execute immediate 'alter table EVAPP_INTERFACE_APPENTITY rename column ORIGPTI_NUM_TMP to ORIGPTI_NUM' ; 


DBMS_OUTPUT.put_line('This column EVAPP_INTERFACE_APPENTITY.ORIGPTI_NUM has been modified to the required precision'); 
    END IF; 

    execute logger(' first insert'); 

我得到這個錯誤說:

Error report: 
    ORA-06550: line 27, column 10: 
    PLS-00103: Encountered the symbol "LOGGER" when expecting one of the following: 

    := . (@ % ; immediate 
    The symbol ":=" was substituted for "LOGGER" to continue. 

我試圖執行直接和剛插入記錄儀(),但沒有作品。

當我嘗試在腳本中搜索執行存儲過程時,我沒有太多的幫助。我怎樣稱呼這個程序?

回答

5

刪除單詞從該行的 「執行」:

logger(' first insert'); 
相關問題