0

このストアド プロシージャをコンパイルしていますが、いくつかのエラーが発生します: Oracle SQL 開発者でこれをコンパイルしようとしています。

SQL ステートメントは無視されました
無効な文字

コード :

CREATE OR REPLACE PROCEDURE CGF_GEN_WIP( NUM IN VARCHAR2) AS
BEGIN
    SELECT 
       SEQ_NBR 
    FROM 
       PS_CGF_SEQ_TBL 
    WHERE 
       SEQ_NAME = 'CGF_WIP_ID'; 

    UPDATE PS_CGF_SEQ_TBL 
    SET DTTM_STAMP_SEC = %CURRENTDATETIMEIN, SEQ_NBR = SEQ_NBR + NUM
    WHERE SEQ_NAME = 'CGF_WIP_ID';
END;

これについて親切にアドバイスしてください、私は新しく始めています。ありがとうございました!

4

2 に答える 2

1

%CURRENTDATETIMEIN メタ SQL は、ピープルコードおよび PeopleSoft SQL 内でのみ使用できます。ストアド プロシージャでは使用できません。コードを実行するために App Engine を作成することをお勧めします。これは、peoplesoft でプロセスを開発する通常の方法です。ただし、SP を使用する必要がある場合は、これを SYSDATE に変更してください。

于 2014-05-10T04:27:30.063 に答える
0

PeopleSoft では、基礎となるデータベースが ORACLE の場合、Meta SQL %CURRENTDATETIMEIN は "CAST(SYSTIMESTAMP AS TIMESTAMP)" に変換されます。これは、PeopleSoft Application Designer ツールの新しい SQL オブジェクトに PeopleSoft SQL を入力することでわかります。SQL の入力が完了したら、右クリックして、ポップアップ メニューから [Resolve Meta SQL] を選択します。出力ウィンドウの [Meta SQL] タブに Oracle SQL の変換が表示されます。Oracle のPeopleTools 8.52 PeopleCode Developer's Guideで「meta-SQL, resolving」のインデックスを検索してください。

ストアド プロシージャを修正するには、次の変更を行います。

「UPDATE PS_CGF_SEQ_TBL SET DTTM_STAMP_SEC = CAST(SYSTIMESTAMP AS TIMESTAMP), SEQ_NBR = SEQ_NBR + NUM WHERE SEQ_NAME = 'CGF_WIP_ID';」に

于 2014-05-16T14:23:28.767 に答える