程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oralce開發心得整理

Oralce開發心得整理

編輯:關於Oracle數據庫
  實在對象如表格、Sequence、索引等建在本應用對應的用戶表空間中,其他對象如視圖、別名創建在Apps下,常見錯誤是新手把表建在APPS下,以後又來建別名,這個時候刪除別名時會報對象不存在,而建別名的時候又報對象已存在
  
  如果把腳本保存在文件裡面,注意一個塊比如一個創建視圖的語句不要有空行,否則會出現如下情況:把語句拷貝到SQL Window能正常運行,用@執行文件卻報錯
  
  如果要執行execute_query,注意要go_block到適當的Block,但是go_block是個受限過程,並不一定都能成功
  
  Master-detail關系
  
  block both are database block
  each block has one item based on database displayed
  
  在PL/SQL Develop中沒有環境變量,所以如果要查詢多組織的View,需要先執行設置環境變量函數
  BEGIN
  fnd_client_info.set_org_context('83');
  END;
  
  GLOBAL變量對於所有form有效(可能是同一個應用,這個尚未驗證),而不僅僅是你所開發的form
  
  變量比如Global和Parameter的初始化應該在pre-form裡面,在when-new-form-instance裡面初始化不行,因為when-new-form-instance是在進入第一個導航塊的第一個item之後才促發的
  
  沒有屬性指名Block的記錄數,不過可以通過GET_BLOCK_PROPERTY(QUERY_HITS) 取得查詢到的記錄數
  
  hide_view並沒有真正hide一個畫布,只是放到最下層,所以如果上層的畫布沒有完全覆蓋下層畫布,下層的畫布很可能用戶還看得到;show_view則是把畫布放在最上層
  
  lov驗證的時候是驗證第一個可見的列,並且會把其他的返回值返回給各個Item,而不是僅僅驗證而已
  
  lov的查詢一般是針對第一列,但是如果我們把%放在最前面,則可以查詢所有列
  
  用Execute_query執行查詢的時候,會把Copy Value From Item裡面的那個Item的值自動作為查詢條件。當創建記錄的時候也會直接用該值初始化,而且不改變記錄的狀態。在更新記錄的時候不知道會不會Copy過來尚未驗證。Get_Item_property的時候用ENFORCE_KEY屬性,但不能Set。該屬性在Master-detail設置的時候自動創建,刪除的時候自動刪除。如果不希望Copy Value From Item影響查詢結果,可以在Pre-Query裡面把Item的值設為null。
  
  app_query.reset('block_name');如果第一次調用,會把當前的DEFAULT_WHERE,然後什麼都不做,以後再來調用的時候則會把第一次設置的DEFAULT_WHERE用set_block_property('SAA_HEADERS',DEFAULT_WHERE,...)設置回來,具體請參考app_core庫
  
  When-create-record的時候給Item賦值不改變記錄狀態
  
  Sequence,如果我們在Item的Initial Value裡面賦值,那麼假如用戶Focus To新記錄,又回到老記錄,如此反復,Sequence會不斷變大的
  
  SQL Order BY的時候null值排在最後,這個一般不符合實際要求,可以這樣解決ORDER BY nvl(Geography_Code,chr(0))解決
  
  Trigger順序1
  
  pre-commit
  塊1的pre-insert,on-insert,post-insert
  塊2的pre-insert,on-insert,post-insert
  ...
  post-forms-commit
  
  Trigger順序2
  
  when-list-changed在前,Validation item在後,因為Validation item是在要離開這個item的時候才促發的
  
  Trigger順序3
  
  pre-form/when-create-record/pre-block/when-new-forms-instance/when-validate-record/on-insert/post-forms
  
  當定位到主塊的一個記錄,會促發子塊的when-clear-record事件和when-create-record事件,問題是如果主塊的是新記錄(未保存),在子塊的when-create-record裡面取主塊的任何東西,居然是主塊的上一次獲得焦點的記錄的東西;連用取塊的當前記錄也是上一次獲得焦點的記錄
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved