电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

推薦:學習使用 Oracle觸發器心得體會

瀏覽:163日期:2023-11-25 13:37:56
實在對象如表格、Sequence、索引等建在本應用對應的用戶表空間中,其他對象如視圖、別名創建在Apps下,常見錯誤是新手把表建在APPS下,以后又來建別名,這個時候刪除別名時會報對象不存在,而建別名的時候又報對象已存在。 假如把腳本保存在文件里面,注重一個塊比如一個創建視圖的語句不要有空行,否則會出現如下情況:把語句拷貝到SQL Window能正常運行,用@執行文件卻報錯。 假如要執行execute_query,注重要go_block到適當的Block,但是go_block是個受限過程,并不一定都能成功 Master-detail關系: block both are database blockeach block has one item based on database displayed在PL/SQL Develop中沒有環境變量,所以假如要查詢多組織的View,需要先執行設置環境變量函數: BEGINfnd_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-commitTrigger順序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里面取主塊的任何東西,居然是主塊的上一次獲得焦點的記錄的東西;連用取塊的當前記錄也是上一次獲得焦點的記錄。 Trigger順序4: post-changed在when-validate-item之前。所有的when-validate事件是當forms自己驗證通過之后才促發的。 禁用Clear功能可以通過在Form的key-clrblk里面調用app_exception.disabled,其實只是用Bell覆蓋默認的執行。 直接放在TAB Page上的Item,和放在堆疊畫布上的Item在設計時是無法“所見即所得”,所以建議把所有的Item根據需要放在不同的堆疊畫布上再堆到TAB Page上偽列Rownum在排序之前就已經決定,假如想得到排序后的Rownum,應當在嵌套一個Select語句;另外Where語句中的rownum只能用<或者<=,不能有>或者>=。 在SQL中用Over的時候,假如整個語句沒有Order by語句,最后的結果還是會排序的,規則是先按Over里面的Partition排序,在按Over里面的Order by排序。原因可能和分析函數的處理順序有關(8ifunctions.pdf有具體介紹):先查詢到數據(Join/Where/Group By/Having),再運算分析函數(先分區,然后排序,再算Slide Windows,最后計算),最后是Order By。另外,一個疑問:我測試到的一個結果Group By似乎無法影響Partition,可是按照8ifunctions.pdf的說法,應該先執行Group By的,是不是因為Group By只是在第一階段的處理時作用在集合函數上,之后進入第二階段的處理就沒用了。 同事在裝8i的時候,連安裝界面都沒出來,而我機器可以裝,后來才知道原來他的機器是P4,無法正常安裝。 實際執行的Where條件,是我們設置DEFAULT_WHERE,再加上通過賦過值的Item。 注重:APP_FIND.query_range已經重載過,我們調用的時候可以不區分query_number_range或者query_date_range;觀察其代碼,發現也是通過給Item賦值來影響查詢的,只不過是賦值的時候,可能是加上 # between,# >=或# <=;這樣導致的一個結果是:Date類型的Item長度默認是11,被query_range這樣一搞,長度根本不夠,于是就導致諸如where REQUEST_DATE >= to_dat的錯誤,所以記得把字段長度加長,比如1000;總的來說,碰到From to的要小心長度。 當修改子類的時候,會自動更改很多屬性,非凡是Required,一定要注重。 當對塊進行刷新時,會修改很多Item的屬性,別以為你設置過了,Oracle就會記住。我碰到的情況是Insert Allowed等被自動改掉了!即使我的子類設置為Text_Item_Display_Only。 兩個變量,假如都為Null,判定還是不相等,所以必須用 a1 is null and a2 is null。所以在On-lock里面的if條件,我們可以把所以不可以為空的字段都寫成答應為空的形式。 一般來說,系統變量是很好用的。然而有時候并非如此,比如Current_Record,get_block_property('blockname',Current_Record)的結果并非總是一樣的,后者更加保險!非凡是剛打開Form的時候,在WHEN-NEW-RECORD-INSTANCE里面,前者是0,后者是1。 ''''表示一個單引號,''''''表示兩個單引號。應該是這樣理解,一個單引號表示轉義字符,首尾兩個單引號里面的內容表示字符串。 重啟Application: cd $APPLCSFcd scriptscd PROD./adstpall.sh apps/apps./adstrtal.sh apps/appsTrigger順序5: post-query,只有在界面可見的記錄才會促發,記錄從不可見變為可見時促發,促發過的記錄不再促發; 保存的時候會引發Post Item/Record/Block事件,因為要Navigate到Form。 數據庫org_id初始值to_number(decode(substrb(userenv('CLIENT_INFO'),1,1),' ',null,substrb(userenv('CLIENT_INFO'),1,10)))。 給非數據庫Item賦值;new記錄會變成insert(所以就不能按F11了);query/changed記錄不變;new塊會變成query;query/changed塊不變。 對On-lock的理解,由于先入為主的緣故,開始一直很苦惱,為什么If里面只用了一個Return,Form怎么知道要鎖否?后來才知道On類型的數據庫觸發器是替換型的,On-lock也不例外,所以只要On-lock不Raise什么東西出來,Form就認為是鎖成功了,至于實際的鎖,我們有Select……For Update來完成,至于If判定只是進行更加嚴格的判定。 對Find的理解,開始也很納悶,為什么在Pre-query里面直接給Item賦值就可,不用自己拼語句,現在也逐漸發現里面大有文章。回想F11,這個時候的block其實是處于Enter-query狀態,輸入的東西Form會自動拼成Where語句(當然還要加上原來的default where,假如有Copy from item,也要加上),對于每個Item上輸入的值,一般是用 = ,假如有,就解析為like,假如有#,則把后邊的表達式(比如between,甚至是子查詢)直接作為條件;而當form內部執行堆棧Navigate到Pre-query時,block也是處于Enter-query狀態,道理和F11一樣,我們只管按業務查詢要求對Item賦值,剩下的就交給Form去處理了;需要注重的是當處于enter-query狀態的block,是使用query length屬性來限制輸入的數據長度,而不是通常的maximum lengh,只不過query length默認是0,即等于maximum lengh,所以會出現當用app_find.query_range時長度不夠的情況。
標簽: Oracle 數據庫
主站蜘蛛池模板: 光伏家 - 太阳能光伏发电_分布式光伏发电_太阳能光伏网 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 硫化罐-胶管硫化罐-山东鑫泰鑫智能装备有限公司 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 定坤静电科技静电消除器厂家-除静电设备| 手持式3d激光扫描仪-便携式三维立体扫描仪-北京福禄克斯 | 中控室大屏幕-上海亿基自动化控制系统工程有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 电动高压冲洗车_价格-江苏速利达机车有限公司 | 北京乾茂兴业科技发展有限公司| 缓蚀除垢剂_循环水阻垢剂_反渗透锅炉阻垢剂_有机硫化物-郑州威大水处理材料有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 江西自考网-江西自学考试网| 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 乐泰胶水_loctite_乐泰胶_汉高乐泰授权(中国)总代理-鑫华良供应链 | 元拓建材集团官方网站| 西门子气候补偿器,锅炉气候补偿器-陕西沃信机电工程有限公司 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 天然气分析仪-液化气二甲醚分析仪|传昊仪器 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 警方提醒:赣州约炮论坛真的安全吗?2025年新手必看的网络交友防坑指南 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | 隔爆型防爆端子分线箱_防爆空气开关箱|依客思 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 导电银胶_LED封装导电银胶_半导体封装导电胶厂家-上海腾烁 |