2016-12-01 3 views
0

oracleアプリケーションの新機能で、フォーム内の転送ボタンをクリックしてステージング・テーブルから永続テーブルにレコードを転送するための小さなロジックを実装しようとしました。permテーブルのデータを更新/挿入した後、テーブルを 'Y'に更新する必要があります。 フォームでステージングテーブルの列をデータブロックとして使用しています。oracleアプリケーションのフォーム

サンプルコード:私はこれを実装しようとした

GO_BLOCK('stg_datablock'); 
    first_record; 
Loop 
--Insert/Update on perm table 
--Now try to update staging table transfer_flag to Y to indicate the record has been transferred to perm. 

    update staging_table set TRANSFER_FLAG='Y' WHERE col1=:stg_datablock.col1 and col2=:stg_datablock.col2; 
    EXIT 
    WHEN :system.last_record = 'TRUE'; 
     next_record; 
    END LOOP; 

しかし、それは誰が悪いefficiency.Anyの提案理由は大歓迎さウィル私を提案してくださいexecute.Couldするのに長い時間がかかりました。

答えて

0

私は混乱を招いてQ.Sorryの理由を見つけました。私はコード内にある最後のコマンド "commit_form"について言及していませんでした。処理に時間がかかりました。私はcommit_form ()を標準コミットで実行すると、実行は期待どおりになります。

おかげで、 Likitha

0

Oracleは、プログラム単位を作成し、データベースにPKGまたはプロシージャを呼び出すと、それらの操作を実行する必要があり、フォーム内の任意のDML文を実行することはお勧めしません。

関連する問題