第一篇:oracle學習心得
一、定位
oracle分兩大塊,一塊是開發(fā),一塊是管理。開發(fā)主要是寫寫存儲過程、觸發(fā)器什么的,還有就是用Oracle的Develop工具做form。有點類似于程序員,需要有較強的邏輯思維和創(chuàng)造能力,個人覺得會比較辛苦,是青春飯J;管理則需要對oracle數(shù)據(jù)庫的原理有深刻的認識,有全局操縱的能力和緊密的思維,責任較大,因為一個小的失誤就會down掉整個數(shù)據(jù)庫,相對前者來說,后者更看重經(jīng)驗。
因為數(shù)據(jù)庫管理的責任重大,很少公司愿意請一個剛剛接觸oracle的人去管理數(shù)據(jù)庫。對于剛剛畢業(yè)的年輕人來說,可以先選擇做開發(fā),有一定經(jīng)驗后轉型,去做數(shù)據(jù)庫的管理。當然,這個還是要看人個的實際情況來定。
二、學習方法
我的方法很簡單,就是:看書、思考、寫筆記、做實驗、再思考、再寫筆記
看完理論的東西,自己靜下心來想想,多問自己幾個為什么,然后把所學和所想的知識點做個筆記;在想不通或有疑問的時候,就做做實驗,想想怎么會這樣,同樣的,把實驗的結果記下來。思考和做實驗是為了深入的了解這個知識點。而做筆記的過程,也是理清自己思路的過程。
學習的過程是使一個問題由模糊到清晰,再由清晰到模糊的過程。而每次的改變都代表著你又學到了一個新的知識點。
學習的過程也是從點到線,從線到網(wǎng),從網(wǎng)到面的過程。當點變成線的時候,你會有總豁然開朗的感覺。當網(wǎng)到面的時候,你就是高手了
很多網(wǎng)友,特別是初學的人,一碰到問題就拿到論壇上來問,在問前,你有沒有查過書,自己有沒有研究過,有沒有搜索一下論壇?這就叫思維惰性,沒有鉆研的學習態(tài)度,不管學什么東西,都不會成功的。
三、oracle的體系
oracle的體系很龐大,要學習它,首先要了解oracle的框架。在這里,簡要的講一下oracle的架構,讓初學者對oracle有一個整體的認識。
1、物理結構(由控制文件、數(shù)據(jù)文件、重做日志文件、參數(shù)文件、歸檔文件、密碼文件組成)
控制文件:包含維護和驗證數(shù)據(jù)庫完整性的必要信息、例如,控制文件用于識別數(shù)據(jù)文件和重做日志文件,一個數(shù)據(jù)庫至少需要一個控制文件
數(shù)據(jù)文件:存儲數(shù)據(jù)的文件
重做日志文件:含對數(shù)據(jù)庫所做的更改記錄,這樣萬一出現(xiàn)故障可以啟用數(shù)據(jù)恢復。一個數(shù)據(jù)庫至少需要兩個重做日志文件
參數(shù)文件:定義Oracle 例程的特性,例如它包含調(diào)整SGA 中一些內(nèi)存結構大小的參數(shù)
歸檔文件:是重做日志文件的脫機副本,這些副本可能對于從介質(zhì)失敗中進行恢復很必要。
密碼文件:認證哪些用戶有權限啟動和關閉Oracle例程
2、邏輯結構(表空間、段、區(qū)、塊)表空間:是數(shù)據(jù)庫中的基本邏輯結構,一系列數(shù)據(jù)文件的集合。段:是對象在數(shù)據(jù)庫中占用的空間
區(qū):是為數(shù)據(jù)一次性預留的一個較大的存儲空間
塊:ORACLE最基本的存儲單位,在建立數(shù)據(jù)庫的時候指定
3、內(nèi)存分配(SGA和PGA)
SGA:是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進程所共享。它包含Oracle 服務器的數(shù)據(jù)和控制信息, 它是在Oracle 服務器所駐留的計算機的實際內(nèi)存中得以分配,如果實際內(nèi)存不夠再往虛擬內(nèi)存中寫。
PGA:包含單個服務器進程或單個后臺進程的數(shù)據(jù)和控制信息,與幾個進程共享的SGA 正相反PGA 是只被一個進程使用的區(qū)域,PGA 在創(chuàng)建進程時分配在終止進程時回收
4、后臺進程(數(shù)據(jù)寫進程、日志寫進程、系統(tǒng)監(jiān)控、進程監(jiān)控、檢查點進程、歸檔進程、服務進程、用戶進程)
數(shù)據(jù)寫進程:負責將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文件
日志寫進程:將重做日志緩沖區(qū)中的更改寫入在線重做日志文件
系統(tǒng)監(jiān)控:檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時啟動數(shù)據(jù)庫的恢復進程監(jiān)控:負責在一個Oracle 進程失敗時清理資源
檢查點進程:負責在每當緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時,更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫狀態(tài)信息。
歸檔進程:在每次日志切換時把已滿的日志組進行備份或歸檔
服務進程:用戶進程服務。
用戶進程:在客戶端,負責將用戶的SQL 語句傳遞給服務進程,并從服務器段拿回查詢數(shù)據(jù)。
5、oracle例程:Oracle 例程由SGA 內(nèi)存結構和用于管理數(shù)據(jù)庫的后臺進程組成。例程一次只能打開和使用一個數(shù)據(jù)庫。
6、SCN(System Change Number):系統(tǒng)改變號,一個由系統(tǒng)內(nèi)部維護的序列號。當系統(tǒng)需要更新的時候自動增加,他是系統(tǒng)中維持數(shù)據(jù)的一致性和順序恢復的重要標志。
四、深入學習
管理:可以考OCP證書,對oracle先有一個系統(tǒng)的學習,然后看Oracle Concepts、oracle online document,對oracle的原理會有更深入的了解,同時可以開始進行一些專題的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。
開發(fā):對于想做Oracle開發(fā)的,在了解完Oracle基本的體系結構之后,可以重點關注PL/SQL及Oracle的開發(fā)工具這一部分。PL/SQL主要是包括怎么寫SQL語句,怎么使用Oracle本身的函數(shù),怎么寫存儲過程、存儲函數(shù)、觸發(fā)器等。Oracle的開發(fā)工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer這些),學會如何熟練使用這些工具。
資料引用:
第二篇:oracle學習心得
Oracle學習心得
轉眼之間學習oracle差不多已經(jīng)半年了,從開始的不了解,到現(xiàn)在熟悉oracle的基本使用和操作。Oracle的體系太龐大了,對于初學者來說,難免有些無從下手的感覺,好多地方不知道從何開始,有哪些注意事項,結果都是不能學好這門技術。,但是經(jīng)過老師的帶領總體上也打開了學習的大門,可以自己去學習,少走了很多的彎路。
學習一門技術首先從態(tài)度開始,如果你想學好這門技術,你首先要端正態(tài)度,要發(fā)自 內(nèi)心的去想學好這門技術,不要以開始就懈怠,要從嚴要求自己,一心一意的投入到學習當中,不要害怕學習中會遇到的困難。即使學習中遇到了困難和問題也不要害怕,不要放棄,要學會自己去解決問題,這樣才能從學習中收獲經(jīng)驗教訓,是自己的水平提高。如果放棄了,你就會害怕遇到困難,不去積極的努力,又何嘗去提高自己呢!
解決問題的途徑和發(fā)法有很多種。作為一個新一代的大學生,首先要學會自己解決問題,我們可以去圖書館去查閱資料,尋找在學習中遇到的困難,找到解決方法,另外,我們還可以去網(wǎng)上搜集資料,現(xiàn)在網(wǎng)絡技術十分發(fā)達,很多問題我們都可以在網(wǎng)上找到答案的,而且網(wǎng)上還有很多有學問的人,他們專業(yè)技術十分優(yōu)秀,我們可以請教他們,往往會有意想不到的結果的。現(xiàn)在我們在學校里閥門有著優(yōu)越的學習環(huán)境,有著優(yōu)秀的教師資源,上課時我們遇到學習中的困難,我們可以去請教老師。老師有著扎實的基本功底,他們總是非常熱情的該給我們?nèi)ブv解我們遇到的困難,幫助我們?nèi)W習、去提高。老師在課堂上會認真的講解我們在學習中要注意的事項,以及這門技術的只是點,幫助我們系統(tǒng)的學習oracle這門技術。我們不能總是聽講,而是要去實踐。以前總是說實踐才是檢驗真理的唯一標準。我們要自己動手去做,課上講,當堂練習,課下復習,這些都是學好一門技術的根本。
就像學習Java一樣,以前沒有認真聽老師的講解,現(xiàn)在自學起來,總是感覺有些吃力,好多不懂的地方也沒有人可以請教的。所以在開始學習這沒技術時,我就暗下決心要認真聽講,挺好老師講的每一個知識點,雖然這門學科知識選修的,但是還要努力學的,因為Oracle這門技術在很多方面都有很多重要應用,尤其是在以后的工作中。Oracle數(shù)據(jù)庫是一門非常重要的實踐課程,所以聽完課后,一定要多抽出時間來去聯(lián)系,只有在不斷的實踐過程中,才能夠深刻的了解它的原理和方法。所以學好Oracle,不斷的抽時間練習吧!因為,有工作經(jīng)驗的DBA和沒有工作經(jīng)驗的學院主要區(qū)別就在于兩者的熟練度不一樣,只要你的熟練度足夠,你也可以與工作幾年工作經(jīng)驗的人一腳高下!
說了一大堆主要說的有以下幾點:
1.在上課時老師講的一些經(jīng)驗教訓要細心的領會 2.課后練習也要深入,保持著一種深入研究的心態(tài) 3.做事情要認真,不要把問題相當然
4.遇到問題要學會用多種方法解決,上網(wǎng)查,去各種有關的社區(qū)論壇去與大家交流學習
5.培養(yǎng)自己的團隊合作精神處理好與大家的關系,因為oracle經(jīng)常需要一個團隊來開發(fā)一個項目的
6.最重要的的一點就是刻苦用功是學習不變的法寶
第三篇:ORACLE學習心得
Oracle RAC 學習心得
1.概念
RAC,全稱real application clusters,譯為“實時應用集群”,是Oracle新版數(shù)據(jù)庫中采用的一項新技術,是高可用性的一種,也是Oracle數(shù)據(jù)庫支持網(wǎng)格計算環(huán)境的核心技術。
在Oracle9i之前,RAC的名稱是OPS(Oracle parallel Server)。RAC 與 OPS 之間的一個較大區(qū)別是,RAC采用了Cache Fusion(高速緩存合并)技術。在 OPS 中,節(jié)點間的數(shù)據(jù)請求需要先將數(shù)據(jù)寫入磁盤,然后發(fā)出請求的節(jié)點才可以讀取該數(shù)據(jù)。使用Cache fusion時,RAC的各個節(jié)點的數(shù)據(jù)緩沖區(qū)通過高速、低延遲的內(nèi)部網(wǎng)絡進行數(shù)據(jù)塊的傳輸。
2.優(yōu)缺點
優(yōu)點:
Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的數(shù)據(jù)庫應用系統(tǒng),在低成本服務器上構建高可用性數(shù)據(jù)庫系統(tǒng),并且自由部署應用,無需修改代碼。在Oracle RAC環(huán)境下,Oracle集成提供了集群軟件和存儲管理軟件,為用戶降低了應用成本。當應用規(guī)模需要擴充時,用戶可以按需擴展系統(tǒng),以保證系統(tǒng)的性能。
(1)多節(jié)點負載均衡;
(2)提供高可用:故障容錯和無縫切換功能,將硬件和軟件錯誤造成的影響最小化;
(3)通過并行執(zhí)行技術提高事務響應時間----通常用于數(shù)據(jù)分析系統(tǒng);
(4)通過橫向擴展提高每秒交易數(shù)和連接數(shù)----通常對于聯(lián)機事務系統(tǒng);
(5)節(jié)約硬件成本,可以用多個廉價PC服務器代替昂貴的小型機或大型機,同時節(jié)約相應維護成本;(6)可擴展性好,可以方便添加刪除節(jié)點,擴展硬件資源。缺點:(1)相對單機,管理更復雜,要求更高;
(2)在系統(tǒng)規(guī)劃設計較差時性能甚至不如單節(jié)點;(3)可能會增加軟件成本(如果使用高配置的pc服務器,Oracle一般按照CPU個數(shù)收費)。
3.Rac 特點
每一個節(jié)點的linstance都有自己的SGA
每一個節(jié)點的linstance都有自己的background process 每一個節(jié)點的linstance都有自己的redo logs 每一個節(jié)點的linstance都有自己的undo表空間
所有節(jié)點都共享一份datafiles和controlfiles 4.Rac 組件
邏輯結構上看,每一個參加集群的節(jié)點有一個獨立的instance,這些instance訪問同一個數(shù)據(jù)庫。節(jié)點之間通過集群軟件的通訊層(communication layer)來進行通訊。同時為了減少IO的消耗,存在了一個全局緩存服務,因此每一個數(shù)據(jù)庫的instance,都保留了一份相同的數(shù)據(jù)庫cachel
5.UNDO和REDO讀書筆記
1)redo是什么?oracle的redo是如何工作的
redo是重做日志文件,是oracle數(shù)據(jù)庫的日志文件.oracle的重做日志有兩種:在線重做日志以及歸檔重做日志。
在線重做日志:主要用于由于數(shù)據(jù)庫主機掉電等原因?qū)е聦嵗?,此時oracle采用在線重做日志在數(shù)據(jù)庫啟動時將數(shù)據(jù)庫恢復到斷電之前的時間點上。
歸檔重做日志:主要用于介質(zhì)失敗,比如:磁盤受損。此時需要使用對磁盤上的數(shù)據(jù)備份的歸擋重做日志文件將該磁盤上的數(shù)據(jù)恢復到該歸檔文件數(shù)據(jù)所在的時間點上,然后再使用在線重做日志文件將適合的時間點上。
歸檔重做日志文件實質(zhì)是被添滿的舊的在線重做日志的副本。歸檔重做日志文件是數(shù)據(jù)庫的歷史數(shù)據(jù)。
在線重做日志在每個數(shù)據(jù)庫中至少有兩個重做日志組,每個日志組中至少有一個重做日志文件,這些在線重做日志組是循環(huán)使用的,當日志組1被寫到最后時,然后自動切換到日志組2;當日志組2也被寫滿時,再切換到日志組1。
2)undo是什么?oracle的undo是如何工作的
undo與redo相反,redo是恢復數(shù)據(jù),用于在事務失敗時重放事務,undo是撤消一條語句或者一組語句的作用。undo是存儲在數(shù)據(jù)庫內(nèi)部的段或者表空間中(undo如果是手動管理,則使用undo段來管理;如果undo使用AUM管理UNDO,則undo使用表空間來自動管理)。
注意:在undo并不是物理的恢復到執(zhí)行語句之前或者事務之前的樣子,只是邏輯的恢復到原來的樣子,所有修改只是邏輯的取消,但是數(shù)據(jù)結構和數(shù)據(jù)塊在回滾之后也大不相同。原因是在多用戶系統(tǒng)中,有很多事務是并發(fā)進行的,當一個事務修改一個數(shù)據(jù)并且被回滾,但是該數(shù)據(jù)在該用戶對該數(shù)據(jù)做過修改之后也有被其他用戶修改,這個時候如果是對該事務修改的數(shù)據(jù)塊回滾到原來數(shù)據(jù)的物理樣子,就有可能將后來的事務所做的修改給覆蓋掉。所以回滾不是一個簡單的物理的恢復,而是邏輯恢復。
3)undo和redo是如何協(xié)作工作的
4)
6.
第四篇:oracle學習心得
一、SQL SERVER的理解
SQL SERVER服務器就像一棟大樓,大樓里的機房就像服務器的數(shù)據(jù)庫,機房里的電腦如同數(shù)據(jù)庫里的表
1、登錄用戶可以登錄服務器——可以進大樓
2、登錄用戶成為數(shù)據(jù)庫用戶才能進指定的數(shù)據(jù)庫——進入大樓的人給了某個機房的鑰匙
才能進入機房
3、登錄用戶有權限使用表——進入機房的人有電腦的密碼才能使用電腦
二、ORACLE的理解
ORACLE服務器(全局數(shù)據(jù)庫)就像一個商場,商場的每一家公司是表空間,公司的業(yè)務是表
1、數(shù)據(jù)庫由多個表空間組成——商場里有多家公司組成2、表空間由段組成——公司要有自己的經(jīng)營業(yè)務,可以只有一個業(yè)務,就是一個表空
間中只有一個段,可以有多個業(yè)務,就是一個表空間有多個段
3、段由區(qū)組成——單個業(yè)務的細分類別。例如有家公司經(jīng)營三個業(yè)務,賣書,賣家電,賣衣服,則每個業(yè)務就是一個段。而每個業(yè)務又有細分,比如賣書的話要進行分類了。計算機區(qū),人文區(qū),小說區(qū)等,每一區(qū)都要放上書架存放書籍,則書架就是oracle塊,存放數(shù)據(jù)的三、數(shù)據(jù)庫,表空間,用戶(指定默認表空間),表統(tǒng)統(tǒng)由管理員管理
四、在OEM中管理數(shù)據(jù)庫的步驟
1、創(chuàng)建
1)存儲——表空間——創(chuàng)建表空間(TOMSPACE)(類似于在SQL中創(chuàng)建數(shù)據(jù)庫,通常可以省略,使用默認表空間為USERS,臨時表空間為TEMP)
2)首先展開安全性——創(chuàng)建新用戶(TOM,指定表空間)(類似于在SQL中指定
數(shù)據(jù)庫用戶)
3)創(chuàng)建表——指定方案(用戶)和表空間(列名不要帶<>)
4)設置約束
5)輸入信息:方案——用戶名——表——右擊——查看 /編輯目錄…
2、修改
1)方案——用戶名——表
2)修改表結構,添加約束
3、刪除: 右擊表——移去
五、注意事項
1、剛創(chuàng)建的用戶不會出現(xiàn)在方案中,只有創(chuàng)建了一個表指定方案和表空間,該用戶的方案名就會出現(xiàn)在方案中,此時就可以方便為該方案創(chuàng)建其他表
1)新創(chuàng)建的用戶能在SQLPLUS中登錄,為什么不能在企業(yè)管理器中登錄呢?
解答:需要授予 SELECT ANY DIRECTORY權限才能正常登錄企業(yè)管理器,但沒有其他權限
2)可以對創(chuàng)建的用戶在安全性中賦予角色權限,如DBA,則該用戶就是數(shù)據(jù)庫管理
員
3)SYS用戶主要用來維護系統(tǒng)信息和管理實例,只能以SYSOPER或SYSDBA角
色登錄
4)安裝oracle的用戶自動為ora-dba權限,自動是sys用戶,所以在登錄時不需要
用戶名和密碼,只要選中以sysdba登錄。其他用戶登錄計算機系統(tǒng),在使用oracle
時就是正常登錄狀態(tài)了。
2、向表中添加日期數(shù)據(jù):時間格式為DD-MM-YYYY怎么修改呢?如何插入時間數(shù)
據(jù)
1)先在SQLPLUS中SELECT SYSDATE FROM DUAL;就知道日期的格式
2)alter session set NLS_DATE_FORMAT='YYYY-MM-DD';修改當前輸入格式
3)oracle中的默認格式是:‘dd-mm-yyyy’ ;修改語句:alter session set
nls_date_format='yyyy-mm-dd';修改后輸入和顯示都為指定格式,缺點是只對當前會話起作用
假如你是要永久修改的話,改注冊表:
regedit->hkey_local_machine->oracle->homeo->
NLS_DATE_FORMAT值YYYY-MM-DD(經(jīng)驗證不管用)
默認日期:50年之前是當前世紀,50年之后是之前世紀,31-12月-49代表2049年01-1月-50 代表1950年
4)由于在表編輯器中to_date函數(shù)的格式是dd-mon-yyyy,輸入時為如下格式13-6
月-1983(代碼編輯時一樣,世紀可以省略,代表當前世紀)
5)to_char通常用于查詢語句; to_date通常用于增刪改語句
6)兩個’代表一個’
六、代碼編輯器
1、SQL PLUS2、SQL PLUS WORKSHEET3、isqlplus
設置列寬:set linesize 50;
七、與SQL2000中的查詢分析器不同,SQL plus worksheet執(zhí)行所有語句,不單單執(zhí)行選中語句
八、編輯——清除;可以清除查詢結果
九、查看環(huán)境變量:select * from v$nls_parameters;
十、示例用戶
1)scott/tigernormal登錄
2)hr : 需要解鎖和重設密碼(alter user hr account unlock;)
十一、查看和更改oracle http占用端口號,D:ora9ApacheApacheconf下,httpd.conf和httpd.conf.default中將80修改,然后重新啟動HTTP服務 加個字符串
六、工具的使用
1、net manager: 配置服務主機名和監(jiān)聽主機名
2、net configuration assistant:配置監(jiān)聽程序,本地服務名配置等
/*****************************************************************************/ oracle小知識點
1、數(shù)據(jù)操作時,字段區(qū)分大小寫
2、Oracle兩種認證模式:(1)操作系統(tǒng)認證(2)文件口令認證。
初始化參數(shù)的文件目錄為D:oracle_programdatabase3、sqlplus中使用 help index查看幫助信息目錄,? 命令:查看某個命令的詳細用法
連接數(shù)據(jù)庫后才能使用
5、當代碼中使用函數(shù)時,函數(shù)中固定的關鍵字必須寫正確,當放在字符串中的時候,編譯沒有錯誤,運行時才會出現(xiàn)錯誤,通常是SQL遞歸錯誤
第五篇:Oracle APEX 學習心得
APEX 簡介
這一部分主要使讀者熟悉 APEX 的基本概念、環(huán)境和使用。本部分介紹了APEX 主要特性,三個組件(應用程序構建器、SQL 工作室、實用工具)和四類用戶。本部分回答了以下問題:什么是 APEX? 用 APEX可以做什么?何時使用 APEX?
(所有貼出來的例子均可在http://apex.oracle.com登錄jjl/jjl.soft@gmail.com/jjl.soft查看)什么是APEX? 剛剛來到上海,叫我們研究學習一個APEX的東西,一聽很新鮮,畫面也比form好看,因為是在瀏覽器看,當時第一反應就是瀏覽器,那這個是個什么架構,數(shù)據(jù)會慢嘛 ?結果一看官方文檔發(fā)現(xiàn)
架構原來是這樣,看來擔心似乎多余了.Oracle 推薦的環(huán)境配置
查閱其他資料得到一下對于APEX的闡釋: ,APEX是一個用于 Oracle 數(shù)據(jù)庫的快速 Web 應用程序開發(fā)工具。APEX 結合了個人數(shù)據(jù)庫的品質(zhì)如生產(chǎn)效率、易用性和靈活性,企業(yè)數(shù)據(jù)庫的品質(zhì)如安全性、集成性、可伸縮性和可用性,以及針對Web構建三個方面的優(yōu)點。APEX 是一個構建 Web 應用程序的工具,而且應用程序開發(fā)環(huán)境也基于 Web,非常方便。只需在 apex.oracle.com 注冊一個帳戶即可試用 APEX。開發(fā)、部署或運行 APEX 應用程序無需客戶端軟件。
APEX 提供三大工具:
應用程序構建器(Application Builder)— 創(chuàng)建數(shù)據(jù)庫驅(qū)動的動態(tài) web 應用程序。SQL工作室(SQL Workshop)— 瀏覽數(shù)據(jù)庫對象,運行 SQL 查詢、PL/SQL程序以及圖形化的查詢構建器。
實用程序(Utilities)— 允許從純文本和電子表格上載和下載數(shù)據(jù)。所謂上載數(shù)據(jù)是指將文本文件或電子表格中的數(shù)據(jù)導入到數(shù)據(jù)庫中。所謂下載數(shù)據(jù)是指將數(shù)據(jù)庫中的數(shù)據(jù)保存到文本文件或電子表格中。
APEX可以做什么?
當然,看了一天文檔就在想APEX能做的東西能具體到哪兒,于是就開始做一些demo,最開始做的當然就是APEX很強大的報表,以及單一表的表單,以及一些列表啊.日期控件,還有就是關于對這個APEX的布局.這些都很簡單,只需要自己動手做做基本就可以了.比stepbysetp還要簡單,(所有貼出來的例子均可在http://apex.oracle.com登錄jjl/jjl.soft@gmail.com/jjl.soft查看,此處程序名稱是zhengwu_demo1)
接下來就在想 要是我是一個頭行結構的表單應該怎么弄,于是就把之前項目上的一個簡單的頭行的form拿來放在這apex環(huán)境下來實現(xiàn).最后也勉強做出來,存在的問題和form的比較有 : 1,值列表的返回,APEX只支持返回單個值,且select語句必須有且只有2個字段,當然顯示字段可以通過’||’拼接.2,沒有form那么豐富的觸發(fā)器,只能實現(xiàn)form的簡單基本的功能.(所有貼出來的例子均可在http://apex.oracle.com登錄jjl/jjl.soft@gmail.com/jjl.soft查看,此處程序名稱是主從_demo1)
做到這里就開始想,這個APEX能否處理復雜的邏輯或者其他的什么跟plsql相關的呢, 于是就又開始著手做了一個模擬plsql界面的sql_window.也就是我們做一個報表,上面開個文本框,我們可以在里面寫sql語句,對這個表的數(shù)據(jù)控制.支持批量執(zhí)行insert,update,delete語句.(所有貼出來的例子均可在http://apex.oracle.com登錄jjl/jjl.soft@gmail.com/jjl.soft查看,此處程序名稱是bruce_sqlcommand)
最后發(fā)現(xiàn)是可以的,具體就是,寫一個包寫好,包的內(nèi)容是關于如何處理這個文本框中文本,然后在點下’執(zhí)行sql’button的時候,調(diào)用下,就ok了.做完感覺貌似APEX還是很強大的.應該能夠支持動態(tài)sql來生成程序.查閱其他資料還有相關如下 : APEX 是構建數(shù)據(jù)庫數(shù)據(jù)報表應用程序的有效工具。報表通常與其他報表進行超文本鏈接,允許用戶以web 站點的導航方式瀏覽數(shù)據(jù)庫數(shù)據(jù)。報表中的列可輕松鏈接到其他報表、圖表和數(shù)據(jù)項表單,這都是以聲明方式完成的。一個全面的圖表引擎允許以圖形方式表示 SQL 查詢,從而可以更有效地進行數(shù)據(jù)通信。APEX 還非常適合編輯數(shù)據(jù)庫數(shù)據(jù)并支持大量聲明性表單控件,包括單選按鈕組、復選框、選擇列表、梭形按鈕、文本編輯器和日期選擇器。
何時使用APEX?
猶豫在這邊具體的開發(fā)項 還有具體的開發(fā)環(huán)境,所以一直推遲著,關于什么時候使用,也是模糊的.查閱其他資料 : 由于其易用性,APEX 旨在快速構建機會性和部門級應用程序。這些應用程序部署在web 上,具有優(yōu)越性能。以前,部門、原型和小項目依賴桌面數(shù)據(jù)庫提供快速的開發(fā)工具,以滿足這些規(guī)模較小的或部門級應用程序開發(fā)的需求。桌面數(shù)據(jù)庫可能非常零散,因為它們在多處保存數(shù)據(jù),它們可能非常脆弱或者不適用于敏感信息,而且它們通常不是 web 友好
的。基于瀏覽器的設計時界面(聲明式編程框架)和簡單的向?qū)?APEX 成為多用戶桌面數(shù)據(jù)庫應用程序(例如,Microsoft Access)的理想替代品。
SQL Savvy 應用程序開發(fā)人員還可以體會到易用性,因為您即使具有很少的 web 體驗甚至沒有該體驗也可以創(chuàng)建數(shù)據(jù)庫應用程序。無需學習腳本語言或復雜的部署框架,只需編寫幾個查詢并從已經(jīng)構建好的用戶界面主題和表單控件中選擇即可創(chuàng)建高度專業(yè)、安全且可伸縮的應用程序。
使用 APEX,開發(fā)是高度聲明式的。這意味著很多情況下,您不需要編寫任何代碼,而由您與向?qū)Ш蛯傩员磉M行交互,就可完成程序開發(fā)。SQL 語言用于定義報表和圖表,因此懂一些 SQL 知識很有幫助??蛇x擇使用 PL/SQL 編寫代碼段(如果需要過程邏輯)。聲明式開發(fā)給開發(fā)人員帶來較少的差異,該一致性使 APEX 應用程序易于維護和管理。
APEX 引擎從存儲在數(shù)據(jù)庫表中的數(shù)據(jù)實時呈現(xiàn)應用程序。當您創(chuàng)建或擴展應用程序時,APEX 創(chuàng)建或修改存儲在數(shù)據(jù)庫表中的元數(shù)據(jù)。當應用程序運行時,APEX 引擎讀取元數(shù)據(jù)并顯示應用程序。APEX 完全駐留在 Oracle 數(shù)據(jù)庫中。它僅由表中的數(shù)據(jù)和大量 PL/SQL 代碼組成。APEX 大約由 215 個表和 200 個 PL/SQL 對象(包含 300,000 多行代碼)組成。
為了在應用程序內(nèi)提供有會話狀態(tài)行為,APEX 以透明的方式在數(shù)據(jù)庫中管理會話狀態(tài)。應用程序開發(fā)人員可以使用簡單的替換以及標準的 SQL 綁定變量語法獲取和設置會話狀態(tài)。
APEX 主要特性
以下幾部分介紹了 APEX 的主要特性。
報表:使用 APEX,可快速生成顯示 SQL 查詢的 HTML 報表。還能以 HTML、PDF、RTF(兼容 Microsoft Word)和 XLS(兼容 Microsoft Excel)格式下載和打印報表。
可通過聲明方式將各個報表鏈接在一起提供下鉆報表,并使用綁定變量將信息從會話狀態(tài)傳遞至報表。報表支持聲明式列標題排序、分組控制、匯總以及分頁。報表排序和分頁可以使用部分頁面刷新(PPR)技術來避免刷新整個頁面。還可以向報表添加聲明式鏈接,以將報表數(shù)據(jù)下載為 CSV 或 XML 格式。此外,您可以使用模板對報表外觀進行自定義。
表單:使用向?qū)?,可以基于表或存儲過程輕松創(chuàng)建表單?;诒韯?chuàng)建表單時,這些向?qū)⒆詣庸芾聿迦?、更新、刪除以及缺失更新檢測等操作。一旦創(chuàng)建了表單,就可使用直觀顯示的界面重新排列表單域(稱為表單項),以快速獲得想要的布局。表單項提供了豐富的顯示選項,包括文本域、文本區(qū)、單選按鈕組、選擇列表、復選框、日期選 擇器、彈出式值列表等。
圖表:還可使用向?qū)?chuàng)建 HTML、SVG 或 Flash 圖表。此外,可創(chuàng)建圖表來支持用戶從一個圖表下鉆至另一個圖表或報表??墒褂貌糠猪撁嫠⑿?PPR)技術刷新圖表以避免刷新整個頁面。也可將圖表配置為按指定間隔刷新。此外,還可利用報表列模板向任意報表添加簡單的 HTML 條形圖。
電子表格上載:使用電子表格向?qū)е械?Create Application 可快速地將電子表格數(shù)據(jù)直接上載至數(shù)據(jù)庫中。您可以選擇將數(shù)據(jù)存儲在新的數(shù)據(jù)庫表中,或?qū)⑵涮砑又连F(xiàn)有數(shù)據(jù)庫表。一旦上載了數(shù)據(jù),就可以快速創(chuàng)建應用程序了。通過這個方便的向?qū)?,只需單擊幾下,就可以實現(xiàn)電子表格與共享應用程序之間的切換。
會話狀態(tài)管理:APEX 以透明的方式管理數(shù)據(jù)庫中的會話狀態(tài)(或應用程序上下文)。表單將自動保存會話狀態(tài),記住會話中應用程序的上下文。在 SQL 和 PL/SQL 內(nèi)引用會話狀態(tài)就像使用綁定變量般簡單。例如,請看以下 SELECT 語句:
SELECT * FROM EMP WHERE EMPNO = :P1_ID 在本例中,P1_ID 項中的值在運行查詢時自動進行綁定。還可通過給項名稱加上前綴 & 符號和后綴句點(.)在靜態(tài)上下文內(nèi)引用會話狀態(tài),例如:&P1_NAME.對于二維數(shù)據(jù)集的管理,APEX 提供了一個強健的集合基礎架構。最值得一提的是,會話管理是無會話狀態(tài)的,不會消耗內(nèi)存。
用戶界面主題:APEX 將顯示(或用戶界面主題)與應用程序邏輯相分離。您可以用一個主題設計應用程序,然后更改為另一個附帶主題,或者創(chuàng)建和使用自己的自定義的主題。通過將應用程序邏輯(如查詢、流程以及分支)與 HTML 呈現(xiàn)分離,應用程序可在第一時間利用新設計和其他技術,而無需重寫應用程序。
流控制和導航:每個 Web 應用程序都需要導航,而每個動態(tài)應用程序都需要流控制。APEX 提供了內(nèi)置的組件,簡化了導航控件的開發(fā)和維護。導航是通過使用聲明式選項卡(一級或二級)、路徑式導航項、樹控件以及鏈接列表來進行控制的。而流控制是通過使用可在特定事件以及一定條件下起作用的聲明式分支來實現(xiàn)的。由于導航控件的外觀通過模板控制,因此可輕松更改導航控件的外觀。
所有組件上的條件控制:創(chuàng)建動態(tài) Web 應用程序時,許多應用程序組件和處理都是具有條件的。換言之,您只能基于應用程序上下文、數(shù)據(jù)、事件或權限顯示或處理特定的信息。APEX 使您能夠以聲明方式指定所有組件的條件性。這使得您可以精確控制用戶可在選項卡、按鈕、項目、列表項等上看到的內(nèi)容。
外部接口和可擴展性:盡管 APEX 為構建應用程序提供了強健的聲明式環(huán)境,但您還是可以選擇開發(fā)自定義界面或控件。例如,如果一個組件不符合環(huán)境需要,您可以使用 PL/SQL 生成自己的自定義 HTML。您還可以使用 Web 服務調(diào)用外部服務。APEX 包含的 API 可以方便將電子郵件警報集成到應用程序中。此外,因為 APEX 駐留在 Oracle 數(shù)據(jù)庫中,所以您可以利用數(shù)據(jù)庫本身的功能,如外部表、PL/SQL、數(shù)據(jù)庫鏈接、網(wǎng)關以及數(shù)據(jù)庫 Java 來擴展應用程序功能。APEX中也允許使用JavaScript、CSS以及AJAX等技術。
安全性:利用 APEX,您可以創(chuàng)建無需用戶登錄的公共應用程序,或創(chuàng)建要求身份驗證的安全應用程序。APEX 提供了許多內(nèi)置的身份驗證模式(包括一次性登錄、數(shù)據(jù)庫帳戶證書)和一個易于使用的用戶管理系統(tǒng)。您還可使用可與任何身份驗證服務(包括 Microsoft Active Directory 和 Oracle Applications)交互的自定義模式。
此外,您可自定義身份驗證以滿足環(huán)境要求,并選擇性地對整個應用程序、頁面或頁面組件應用身份驗證。最后,您還可利用創(chuàng)新的會話狀態(tài)保護特性來防止 URL 篡改,利用內(nèi)置特性來保護應用程序免受 SQL 注入攻擊和跨站點腳本編寫(XSS)攻擊。
SQL Workshop 工具:SQL Workshop 提供的工具支持從 Web 瀏覽器查看和管理數(shù)據(jù)庫對象。使用 SQL 命令運行 SQL 和 PL/SQL 語句。Query Builder 支持通過拖放表格定義查詢,輕松創(chuàng)建對象間的關聯(lián)。Object Browser 提供了一個易于使用的圖形用戶界面,可用于查看、創(chuàng)建、瀏覽以及刪除數(shù)據(jù)庫對象。最后,您可使用 SQL 腳本工具創(chuàng)建、編輯、查看、運行以及刪除腳本文件。Supporting Objects 實用程序:通過創(chuàng)建一個打包應用程序,您可以簡化在另一個 APEX 中導出和安裝應用程序所需的步驟。使用 Supporting Objects 實用程序,您可以通過腳本處理應用程序定義,以創(chuàng)建數(shù)據(jù)庫對象、種子數(shù)據(jù)、圖像、層疊樣式表和 JavaScript。
打包的應用程序的創(chuàng)建可向應用程序用戶提供類似于安裝程序的體驗,并使在另一個開發(fā)、測試甚至是生產(chǎn)實例中導入并安裝應用程序的過程自動化。
性能:APEX 可為應用程序開發(fā)人員和應用程序用戶提供極高級別的性能。因為 APEX 駐留在 Oracle 數(shù)據(jù)庫中,所以其對網(wǎng)絡流量影響甚小。此外,Application Builder 還有許多監(jiān)視報表,使你能夠識別并調(diào)整應用程序性能。
打包的應用程序:打包的應用程序是一個可以使用和自定義的功能齊全的應用程序。打包的應用程序不僅闡釋 APEX 應用程序的有趣示例,還提供立即有用的戰(zhàn)術性業(yè)務應用程序。打包的應用程序可立即運行 — 它們提供數(shù)據(jù)庫模式、種子數(shù)據(jù)、圖像、應用程序定義以及您所需的一切,安裝只需使用向?qū)Ъ纯赏瓿伞?/p>
托管開發(fā):APEX 支持在單個數(shù)據(jù)庫中托管大量用戶。用戶在一個稱為工作區(qū)的專用工作區(qū)域中工作。這種靈活的體系結構使單個數(shù)據(jù)庫實例可以管理數(shù)千個應用程序。您可確定供應(或創(chuàng)建)工作區(qū)的過程的工作方式。在請求供應模式下,用戶在登錄頁面上使用鏈接來請求一個工作區(qū)。工作區(qū)請求批準后,用戶會收到一封包含鏈接的電子郵件,用戶必須單擊鏈接來驗證其電子郵件地址的有效性。然后他們收到一封具有其登錄憑據(jù)的電子郵件。
APEX 工作區(qū)和用戶類型
應用APEX來開發(fā)應用程序的準備工作可按如下步驟進行:
1)安裝Oracle數(shù)據(jù)庫
2)安裝 APEX,參見附錄1 3)登錄APEX管理界面,創(chuàng)建工作區(qū),創(chuàng)建工作區(qū)用戶 4)登錄APEX工作區(qū),開發(fā)應用程序
現(xiàn)在假設Oracle數(shù)據(jù)庫和Oracle APEX 已經(jīng)安裝,我們來看一下如何創(chuàng)建工作區(qū)及工作區(qū)用戶。
那么,什么是工作區(qū)(workspace)?簡單的說,工作區(qū)就是用戶用來開發(fā)應用程序的地方。工作區(qū)是一個虛擬的私有數(shù)據(jù)庫,它能使多個用戶同時使用相同的APEX實例,而能保持其數(shù)據(jù)庫對象和應用程序為私有,互不影響,互相看不到對方的工作從而也不會影響互相的工作。每一個工作區(qū)都有一個唯一的ID和名稱。
在一個APEX實例中,可以只創(chuàng)建一個工作區(qū),由所有開發(fā)人員共享使用。也可以創(chuàng)建多個工作區(qū),在每個工作區(qū)內(nèi)完成指定項目,并且只允許項目開發(fā)人員訪問其項目所在的工作區(qū)。項目開發(fā)人員要使用工作區(qū),必須先要有APEX用戶帳號,并且使用此用戶帳號登錄到工作區(qū)。
APEX用戶帳號分為4種不同的類型:
? APEX管理員:這是超級用戶,負責管理整個的APEX實例,其中既包括服務的管理,也包括工作區(qū)的管理。在安裝APEX時,默認創(chuàng)建了一個這樣的用戶,名為admin,口令是安裝APEX時設置的。? APEX開發(fā)人員:這是可以創(chuàng)建和修改應用程序的用戶。開發(fā)人員屬于某個工作區(qū)。一個工作區(qū)可以有多個開發(fā)人員。? APEX工作區(qū)管理員:當一個開發(fā)人員被授予對他所屬的工作區(qū)的管理權限時,他就成為了工作區(qū)管理員。工作區(qū)管理員可以在他的工作區(qū)中添加新的用戶、創(chuàng)建新的用戶組和查看使用報告。? APEX最終用戶:這是沒有開發(fā)和管理權限的用戶,只有運行應用程序的基本權限。要注意區(qū)分APEX用戶和Oracle數(shù)據(jù)庫用戶。這是完全不同的概念。Oracle數(shù)據(jù)庫用戶經(jīng)適當授權(用GRANT語句)后,可以登錄數(shù)據(jù)庫,創(chuàng)建、使用各種數(shù)據(jù)庫對象。但Oracle數(shù)據(jù)庫不能夠登錄APEX環(huán)境。APEX用戶也無權直接登錄數(shù)據(jù)庫(例如,使用CONNECT命令)。但是,APEX開發(fā)人員可以在自己的工作區(qū)內(nèi)通過SQL工作室訪問和使用工作區(qū)關聯(lián)模式(schema,有的書上也稱為方案)內(nèi)的數(shù)據(jù)庫對象。
首先,登錄APEX管理界面。在瀏覽器中輸入URL:http://127.0.0.1:8080/apex/apex_admin(參見附錄11.4確認安裝成功)。此時,會顯示登錄畫面:
使用admin用戶登錄APEX,可見下圖:
點擊“管理工作區(qū)”,可見下圖:
工作區(qū)是多個開發(fā)者創(chuàng)建應用程序的共享工作區(qū)域。每個工作區(qū)都具有作為一個或多個數(shù)據(jù)庫方案進行語法分析的權限。使用上圖中的“創(chuàng)建工作區(qū)”、“刪除工作區(qū)”鏈接,可進行工作區(qū)的創(chuàng)建和刪除。一個工作區(qū)可以關聯(lián)到一個或多個數(shù)據(jù)庫方案,使用上圖中的“管理工作區(qū)到方案的分配” 鏈接可以添加更多方案到工作區(qū)。使用上圖中的“管理開發(fā)者和用戶” 鏈接可以創(chuàng)建、刪除APEX用戶,也可重設APEX用戶口令,解鎖APEX用戶帳號。
以上操作都是基于向?qū)硗瓿傻模蛑苯油ㄟ^頁面操作完成,比較簡單,在這里就不再贅述,由讀者自己來探索完成。
安裝、運行演示程序
由于開發(fā)沒有具體的環(huán)境,所以項目經(jīng)理叫我們研究如何把apex安裝到一個新環(huán)境,但是由于沒有測試環(huán)境,所以這個任務我暫時就是在自己的虛擬機(培訓的時候用的syfdemo.ml.com),最后安裝失敗了,但是我覺得跟我的虛擬機有關.真想有個環(huán)境在弄一把,目前這個可憐的虛擬機被弄的面目全非了
安裝心得如下:總共我安裝了3次,前2次非常失敗,后面一次算好的,在第三次的基礎上又重新配置了5,6次rest data service.最后都是沒有成功,總結了下,前2次失敗的原因是因為 第一,原先自帶的apex刪掉比較好
第二,安裝apex的時候,還是強烈建議自己定義表空間
第三,在我的虛擬機安裝jdk(6.0以上,原本自帶的應該是4.0)之后,應該要刪掉原來的版本.否則java –version不對,而且最后執(zhí)行jar也會報錯
---參考文檔http://blog.sina.com.cn/s/blog_828efd6501019rl3.html---Application Express Installation Guide(e21673)(較詳細)---APEX_EBS_Extension_White_Paper_-_Revision_1b(概括性的)<都需要先切到apex所在目錄,因為這些腳本都在那里,如果默認裝了3.0,需要找到目錄,或者解壓一個其他版本運行相關腳本> 1,10g自帶3.0的apex, remove掉 @apxremov.sql
2,安裝: CONNECT SYS/SYS_password as SYSDBA @apexins.sql SYSAUX SYSAUX TEMP /i/ <此處強烈建議自己建立相應的表空間,否則可能會出現(xiàn)如下錯誤> //error WWV_FLOW_API.ERR_PAGE_CREATE ORA-01400: cannot insert NULL into(“APEX_040200”.“WWV_FLOW_STEPS”.“SECURITY_GROUP_ID”)declare * ERROR at line 1: ORA-02291: integrity constraint(APEX_040200.WWV_FLOW_PLUG_TO_PAGE_FK)violated-parent key not found ORA-06512: at “APEX_040200.WWV_FLOW_API”, line 9434 ORA-06512: at line 11
3,修改admin密碼(apex)@apxchpwd.sql(有復雜規(guī)則)4,此處應該有restartProcess(沒有做出來)
5,配置RESTful Services@apex_rest_config.sql(該命令讓你配置APEX_LISTENER和APEX_REST_PUBLIC_USER的密碼)可能會報錯<跟之前第二步有關> //ERROR at line 1: ORA-01400: cannot insert NULL into(“APEX_040200”.“WWV_FLOW_FND_USER_GROUPS”.“ID”)ORA-06512: at “APEX_040200.WWV_FLOW_LISTENER”, line 382 ORA-06512: at “APEX_040200.WWV_FLOW_LISTENER”, line 457 ORA-06512: at line 3 //
6,解鎖更改APEX_PUBLIC_USER的密碼
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK ALTER USER APEX_PUBLIC_USER IDENTIFIED BY SYS_bruce1
should be 6.5 安裝jdk.并設置路徑
7,安裝apex listener
java –jar apex.war(具體原因是因為漏掉一步,我們需要在對應的服務器安裝6.0以上的jdk,并設置路徑否則報錯如下)// Exception in thread “main” java.lang.NoClassDefFoundError: 簍Cjar
at gnu.gcj.runtime.FirstThread.run()(/usr/lib/libgcj.so.5.0.0)
at _Jv_ThreadRun(java.lang.Thread)(/usr/lib/libgcj.so.5.0.0)
at _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean)(/usr/lib/libgcj.so.5.0.0)
at __gcj_personality_v0(/home/oracle/java.version=1.4.2)
at __libc_start_main(/lib/tls/libc-2.3.4.so)
at _Jv_RegisterClasses(/home/oracle/java.version=1.4.2)// 8按照官方文檔應該如下: 9,Enable Network Services in Oracle Database 11g ■
我應該是坐到這里了
最后出現(xiàn)了GLASSFISh SERVERok的畫面
但是就是另外一個需要配置
另外一個我參照oracle官方文檔試了N多次 最后還是一個效果…不得其解(關于好多unix的都不是很懂,看來需要加強學習,等經(jīng)理安裝好了,一定要問問,how,why)
10,Security Considerations ■
11,About Running Oracle Application Express in Other Languages ■
12,About Managing JOB_QUEUE_PROCESSES ■
13,Create a Workspace and Add Oracle Application Express Users