2012-02-17 6 views
0

メッセージがvarchar2タイプのlogger(メッセージ)というストアドプロシージャがあります。単純なプロシージャを実行する際に問題が発生する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. 

は、私はすぐに実行しようとしただけでロガーを()を挿入するが、何も働く

私はスクリプトでストアドプロシージャを実行しようとしたところ、Googleで多くの助けを借りていませんでした。この手順をどのように呼びますか?

答えて

5

その行から "実行" 単語を削除します。

logger(' first insert'); 
関連する問題