2016-12-01 3 views
0

오라클 앱에 익숙하지 않습니다. 폼의 전송 버튼을 클릭하면 스테이징 테이블에서 영구 테이블로 레코드를 전송하는 작은 로직을 구현하려고했습니다. perm 테이블에서 데이터를 업데이트/삽입 한 후 스테이징에서 플래그 전송 테이블을 'Y'로 업데이트해야합니다. 양식에서 스테이징 테이블 열을 데이터 블록으로 사용하고 있습니다.오라클 앱에서 양식

샘플 코드 :이 구현하려고

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

오라클은 프로그램 단위를 생성하고 데이터베이스에 PKG 또는 프로 시저를 호출하고 그 작업을 수행해야합니다, 양식 내의 모든 DML 문장을 수행하지 않는 것이 좋습니다.

관련 문제