導航:首頁 > 編程語言 > oracle資料庫編程總結

oracle資料庫編程總結

發布時間:2022-11-05 17:58:38

① Oracle開發藝術的序

本書是ITPUB技術叢書中第一本專注於Oracle開發的書籍。長久以來,資料庫後台開發一直是應用開發行業的一項核心工作,能否正確設計一個資料庫的架構,並寫出合理、高效的SQL,決定了一個應用的效能,也在相當大的程度上影響了項目的成敗。而在表象的背後,資料庫開發又遠遠不止表面看到的那麼簡單,用作者們的話來說只是冰山一角。除了SQL或PL/SQL以外,我們還可能面對演算法、架構、規范等問題。作者們都曾經在各行業的第一線戰斗過,長期從事資料庫開發各個方面各種細節的工作,由他們去分享10多年來的心得,對於讀者來說是極好的知識共享。以前ITPUB技術叢書中有許多關於資料庫管理的內容,由於所提供的案例許多屬於極端而難以重現,但這本書里的很多例子,讀者都可以很簡單地重現並且自我嘗試,領會其中的精粹,這也是本書和以前DBA方面書籍的一大差異之處。
我和本書的作者們大多在ITPUB上相識了很長時間,他們都是具有豐富行業經驗的專家,也非常熱心。蘇旭暉(newkid)和盧濤(〇〇)Oracle是開發方面的行家,記得當初我在社區里推崇Joe Celko的《SQL puzzles and Answers》一書,結果newkid很快指出這本書里的例子的很多錯誤或者愚笨之處,還專門給出一個帖子來指出書中的錯誤,讓人嘆服。他對技術精益求精,非常關心國內的開發社團,解決了許多網友提出的疑難的實際問題,還經常訂購國內原創的技術書籍。有一次newkid君在論壇上出了一道用SQL去求解四皇後問題的題,不久〇〇就給出了答案,我才第一次知道SQL除了可以用來查詢數據外,還可以有這樣的用途。王保強(bq_wang)、懷曉明(lastwinner)是ITPUB中的元老級會員,bq_wang在項目管理、資料庫、數據倉庫、系統架構應用上很有經驗,在過去幾年中一直擔任大型開發項目的manager,而lastwinner在應用測試和編碼上的能力讓人印象深刻,他是那種天生對問題有靈敏嗅覺的人,解決問題的能力非常強,並帶隊完成了幾個大型開發項目。丁俊(dingjun123)在電信領域有多年系統架構設計和管理經驗,對Oracle資料庫開發很有研究,梁敬彬(wabjtam123)對資料庫管理、設計、開發均有較為深入的研究,同時有著多年的電信行業相關經驗和豐富的培訓經驗,二人在社區中積極熱心幫助別人解決疑難問題,並總結了很多精華內容,得到社區大眾的認可。賈書民則早在20年前就開始使用Oracle資料庫,參加了多個國家級項目的設計和開發,技術功底與行業經驗相當豐厚。由這么多高手嘔心瀝血寫出來的經驗之作,我相信一定能讓讀者讀後有所裨益。
最後我要說從2004年ITPUB第一本技術圖書面世以來,6年過去了,叢書也出版到第10本。2001年9月ITPUB剛剛建立的時候,會員只有一萬多人,經過9年的發展,ITPUB已擁有技術板塊100多個,注冊會員數量超過240萬,每天更新的討論帖數以萬計。感謝蘇旭暉、盧濤、王保強、懷曉明、梁敬彬、丁俊、賈書民在ITPUB即將步入第10個年頭的時候,創作了這本重量級的技術圖書。ITPUB的發展與這樣的專家、第一線技術工作者的長期支持是分不開的,真摯感謝你們對ITPUB的支持!
——ITPUB 創始人 tigerfish 這是一本我期待已久的書,ITPUB論壇已經出版了一系列的資料庫管理書籍,但是開發書籍還是第一本,我一直關注著開發板塊關於SQL方面的技術討論,其涉及技術內容的往往極其精深、有趣、廣泛,將技術玩得有趣是一門藝術,這本書在我看來就是一本關於開發和SQL的藝術之書。
——蓋國強(eygle) Oracle ACE Director,恩墨科技創始人,ITPUB論壇超級版主
開發,總被很多人當做是一個簡單的事情,其實,若干年前我也是這么認為的,但這么多年與各種應用軟體打交道,發現原來我們所需要診斷、調整、處理的大部分問題,其實,基本上都源於開發,開發看來並不是我們想像中那麼淺顯,就像書中所說,我們所用的,其實僅僅是浮在水面上的冰山一角,如果真的認為開發如此簡單,遲早會如泰坦尼克號一般撞得頭破血流,而如果早些挖掘出開發深藏的礦脈,就會找到傳說中的開發寶典,而這本書,應該是我們開始尋寶之旅的鑰匙了。
——李軼楠(ora-600) Oracle ACE,ITPUB Oracle入門與認證版資深版主
如果有人問我學習Oracle的經驗,我會告訴他先去看Oracle的官方文檔,但是如果是學習Oracle開發方面的知識,那麼我會建議他找本好書去讀。一本好的開發方面的書籍會包括大量生動的例子和實用的案例,這是枯燥和晦澀的官方文檔所不能比擬的。
可惜國內資料庫開發方面的書籍很少,精品更是鳳毛麟角。幸運的是,ITPUB上幾位資深的版主聯手帶來了這本《劍破冰山——Oracle開發藝術》,書中涵蓋了開發各個方面的內容;介紹了開發易犯的錯誤;展示了如何合理利用現有功能來巧妙地解決復雜問題。更難得的是書中很多例子都是真實的案例,閱讀的過程彷佛就是在與高手一起解決問題的過程,自然受益匪淺。
——楊廷琨(yangtingkun) Oralce ACE,海虹醫葯電子商務有限公司首席DBA,ITPUB Oracle資料庫管理版資深版主
盡管與本書的諸位作者大多從未見過面,但幾乎每天都能在Oracle開發版見到他們的身影,最深的印象就是他們對Oracle開發的沉迷,從對每個問題的認真回復、深入討論,到在問題不多時甚至組織一些趣味開發比賽的活動,不難看出他們在Oracle開發方面沉浸多年,功力非凡。虛擬平台里交流的點點滴滴已經讓諸多朋友受益匪淺,這次能夠聯袂出書,更是廣大網友早就期待的事。
有幸在本書出版之前先睹為快,看到部分精彩章節,本書有別於目前市面上能夠買到的Oracle開發類的書籍,該書並未著眼於普通開發的SQL語法、數據結構等方面,而是從作者多年來對Oracle開發技術的研究及實際開發工作經驗中,選取了一些具有較強代表性的案例,比如where IN LIST、號段選取應用等這些大家在開發中都會遇到的開發需求來進行詳細分解。對於IN LIST問題我們也曾詳細考慮過多種處理方案,最終因資料庫兼容問題選擇了臨時表替代方案,此案例中的cardinality HINT與Oracle版本的問題也曾困擾過我。號段選取應用實際上對應於我們應用中的斷號管理,也是ERP系統中單據號管理的一個常用需求,盡管由於資料庫兼容考慮我們沒有使用分析函數,但本書中對分析函數的使用及處理也能為其他解決方案提供有益的參考。看似每個案例處理了一個問題,實際包含了諸多的知識點、設計思想和技巧,作者通過對這些案例的詳細分析與讀者分享了自己的心得、體會與技能技巧,相信每一位從事資料庫開發的讀者都能從中找到自己想要的信息。希望早日看到全書。
——李奎陽(anlinew) 用友資深資料庫專家、產品性能主設計師,ITPUB Oracle專題深入討論版資深版主
你很幸運拿到這本書,從本書你可以學到幾位作者的資料庫開發經驗、開發技巧及資料庫編程思想。幾位作者均是ITPUB開發版資深版主,我深知他們的開發功底相當雄厚,幾位作者聚在一起將自己多年工作中積累總結的精髓分享給大家,這是件值得我們欣喜的事兒。此書包括資料庫開發規范、開發方法,以及資料庫開發設計和資料庫優化等精彩內容。作者們以通俗易懂、幽默風趣的語言將自己多年的工作經驗展示給我們。除開發知識外,作者們還詳細講解了 AWR、SQL Trace等Oracle資料庫優化工具。相信作者,相信此書,能給Oracle資料庫開發者很好的幫助。不要猶豫了!拿起這本書,按照書中所分享的去實踐吧,相信聰明的你一定會有所收獲的!
——楊向勇(yxyup) 51JOB系統經理兼首席DBA,ITPUB Oracle資料庫管理版資深版主

② Oracle資料庫開發基礎教程的目錄

第1章Oracle基礎1
1.1關系資料庫概述1
1.1.1目前主流的兩類關系資料庫1
1.1.2關系資料庫的基本資料庫
對象1
1.2Oracle簡介2
1.2.1Oracle的發展簡史2
1.2.2Oracle的特點2
1.2.3Oracle的工作模式2
1.3安裝與配置Oracle3
1.3.1安裝Oracle的環境需求3
1.3.2Oracle的安裝工具3
1.3.3Oracle伺服器的安裝與配置3
1.3.4Oracle客戶端的安裝8
1.3.5為客戶端配置網路服務連接9
1.4Oracle的常用工具11
1.4.1企業管理器11
1.4.2SQLPlus12
1.4.3SQLPlusWorksheet13
1.5Oracle常用對象的創建與管理14
1.5.1Oracle表空間與常用
對象簡介14
1.5.2數據表14
1.5.3數據完整性約束16
1.5.4索引的管理17
1.5.5視圖的管理與使用18
1.5.6存儲過程與觸發器19
1.6Oracle的數據類型20
1.6.1數據類型的分類20
1.6.2字元數據類型20
1.6.3數字數據類型21
1.6.4日期數據類型21
1.6.5其他數據類型21
1.7SQL語言基礎22
1.7.1基本的SELECT查詢22
1.7.2用WHERE子句設定數據
篩選條件23
1.7.3用ORDERBY子句排序
結果集23
1.7.4多表連接查詢24
1.7.5用UNION子句連接兩個
結果集24
1.7.6統計函數24
1.7.7用GROUPBY子句分組
統計數據25
1.7.8使用子查詢25
1.7.9用INSERT語句向表中
插入數據26
1.7.10用UPDATE語句修改表中
的數據26
1.7.11用DELETE語句刪除表中
的數據27
1.8PL/SQL簡介27
1.8.1PL/SQL的基本特性27
1.8.2在PL/SQL中使用SELECT27
1.8.3PL/SQL中的常用SQL函數28
1.8.4游標29
1.8.5PL/SQL中的子程序30
1.9Oracle的安全性管理31
1.9.1用戶31
1.9.2角色32
1.9.3概要文件33
1.10Oracle資料庫的備份與恢復34
1.10.1Oracle資料庫備份簡介34
1.10.2EXP命令與IMP命令34
1.11Oracle與高級語言37
1.11.1使用ADO連接Oracle37
1.11.2使用Oracle的專有介面
連接Oracle38
1.12小結38
第2章考勤管理系統39
2.1系統設計39
2.1.1系統的設計目標39
2.1.2設計思想39
2.1.3系統功能模塊劃分39
2.2資料庫設計40
2.2.1資料庫需求分析40
2.2.2資料庫結構設計41
2.3資料庫對象的創建44
2.3.1創建考勤類型表44
2.3.2創建員工表45
2.3.3創建考勤管理表45
2.4設計系統的界面46
2.4.1窗口的設計46
2.4.2菜單的設計51
2.5系統的編程實現52
2.5.1員工信息的管理模塊53
2.5.2考勤類型的設定模塊57
2.5.3員工考勤信息手工錄入模塊61
2.5.4經考勤機生成並處理過的
考勤信息導入模塊64
2.5.5員工出勤情況統計報表
生成模塊66
2.5.6資料庫維護模塊69
2.6系統的測試運行70
2.7小結73
第3章費用收繳管理系統74
3.1系統設計74
3.1.1系統的設計目標74
3.1.2設計思想74
3.1.3系統功能模塊劃分74
3.2資料庫設計75
3.2.1資料庫需求分析76
3.2.2資料庫結構設計76
3.3資料庫對象的創建80
3.3.1收費員信息表80
3.3.2收費員任務表81
3.3.3燃氣價格表82
3.3.4預存款表82
3.3.5居民區信息表83
3.3.6住戶信息表83
3.3.7收繳情況表84
3.4設計系統的界面86
3.4.1窗口的設計86
3.4.2菜單的設計93
3.5系統的編程實現94
3.5.1住戶信息管理模塊94
3.5.2收費員所轄范圍及收費
任務設定模塊99
3.5.3燃氣價格管理模塊103
3.5.4住戶預存款管理模塊104
3.5.5收費情況錄入模塊107
3.5.6查詢及報表模塊112
3.5.7資料庫維護模塊115
3.6系統的測試運行117
3.7小結119
第4章倉庫管理系統120
4.1系統設計120
4.1.1系統的設計目標120
4.1.2設計思想120
4.1.3系統功能模塊劃分120
4.2資料庫設計121
4.2.1資料庫需求分析121
4.2.2資料庫結構設計122
4.3資料庫對象的創建125
4.3.1物品表125
4.3.2提貨部門表126
4.3.3入庫單表127
4.3.4出庫單表127
4.3.5物品庫存表128
4.4設計系統的界面129
4.4.1窗口的設計129
4.4.2菜單的設計135
4.4.3數據窗口的設計136
4.5系統的編程實現141
4.5.1倉庫物品設定模塊142
4.5.2提貨部門設定模塊144
4.5.3物品出庫模塊145
4.5.4查詢及作廢出庫單模塊149
4.5.5出庫單匯總查詢模塊152
4.5.6物品庫存查詢模塊153
4.5.7單品明細賬查詢模塊154
4.5.8數據維護模塊156
4.6系統的測試運行157
4.7小結160
第5章人事管理系統161
5.1系統設計161
5.1.1系統的設計目標161
5.1.2設計思想161
5.1.3系統功能模塊劃分162
5.2資料庫設計162
5.2.1資料庫需求分析162
5.2.2資料庫結構設計164
5.3資料庫對象的創建168
5.3.1系統用戶表168
5.3.2員工資料表169
5.3.3部門資料表170
5.3.4崗位資料表170
5.3.5狀態資料表171
5.3.6員工調動記錄表172
5.3.7員工狀態調整記錄表172
5.4設計系統的界面174
5.4.1窗口的設計174
5.4.2菜單的設計180
5.4.3數據窗口的設計181
5.5系統的編程實現186
5.5.1用戶及許可權管理模塊187
5.5.2基本資料管理模塊190
5.5.3錄用新員工模塊192
5.5.4員工調動模塊193
5.5.5信息查詢模塊195
5.6系統的測試運行199
5.7小結204
第6章論壇系統205
6.1系統設計205
6.1.1系統的設計目標205
6.1.2設計思想205
6.1.3系統功能模塊劃分205
6.2資料庫設計206
6.2.1資料庫需求分析206
6.2.2資料庫結構設計207
6.3資料庫對象的創建211
6.3.1用戶信息表211
6.3.2版面信息表212
6.3.3等級稱號表213
6.3.4內容信息表213
6.3.5改動記錄表214
6.4系統頁面的編程實現217
6.4.1論壇首頁及用戶注冊
與登錄218
6.4.2版面管理222
6.4.3等級稱號管理226
6.4.4論壇內容的查詢發布
與管理230
6.4.5查詢內容改動記錄242
6.5系統的測試運行244
6.5.1建立運行的環境244
6.5.2系統測試245
6.6小結248
第7章采購訂單管理系統249
7.1系統設計249
7.1.1系統的設計目標249
7.1.2設計思想249
7.1.3系統功能模塊劃分249
7.2資料庫設計250
7.2.1資料庫需求分析250
7.2.2資料庫結構設計251
7.3資料庫對象的創建254
7.3.1用戶信息表254
7.3.2供應商信息表255
7.3.3商品信息表256
7.3.4采購訂單表頭表256
7.3.5采購訂單明細表257
7.4系統頁面的編程實現258
7.4.1首頁及用戶登錄259
7.4.2用戶管理263
7.4.3供應商管理266
7.4.4商品管理269
7.4.5訂單錄入272
7.4.6訂單查詢列印278
7.4.7密碼修改284
7.5系統的測試運行287
7.5.1建立運行的環境287
7.5.2系統測試287
7.6小結290
第8章招聘求職管理系統291
8.1系統設計291
8.1.1系統的設計目標291
8.1.2設計思想291
8.1.3系統功能模塊劃分291
8.2資料庫設計292
8.2.1資料庫需求分析292
8.2.2資料庫結構設計293
8.3資料庫對象的創建298
8.3.1個人用戶資料表298
8.3.2企業用戶資料表299
8.3.3求職信息表300
8.3.4招聘信息表301
8.3.5交流意向信息表301
8.4系統頁面的編程實現302
8.4.1系統首頁及用戶注冊303
8.4.2用戶資料修改311
8.4.3信息發布317
8.4.4信息搜索及意向投遞320
8.4.5用戶自有信息管理324
8.5後台數據管理程序的編制331
8.6系統的測試運行333
8.6.1建立運行的環境333
8.6.2系統測試333
8.6.3後台數據維護程序測試335
8.7小結336
第9章供求信息發布系統337
9.1系統設計337
9.1.1系統的設計目標337
9.1.2設計思想337
9.1.3系統功能模塊劃分337
9.2資料庫設計338
9.2.1資料庫需求分析338
9.2.2資料庫結構設計339
9.3資料庫對象的創建342
9.3.1用戶資料表342
9.3.2版面資料表343
9.3.3供求信息表343
9.3.4回復信息表344
9.4系統頁面的編程實現345
9.4.1系統首頁及用戶注冊348
9.4.2用戶資料修改356
9.4.3信息發布359
9.4.4信息搜索及回復360
9.4.5自有信息管理365
9.5後台版面管理程序的編制367
9.6系統的測試運行370
9.6.1建立運行的環境370
9.6.2系統測試371
9.6.3後台數據維護程序測試374
9.7小結375
……

③ Oracle開發藝術的內容簡介

一個好的Oracle開發人員不僅要知道一些基本語法和常見用法,還需要知道何時用、如何用、怎麼避免相關誤區、寫出高質量的代碼。本書面向有Oracle使用經驗或有其他資料庫使用經驗的人,重點講述利用好Oracle的特色功能進行高效開發的思路和技巧,幫助讀者快速掌握中高級Oracle開發技術。
本書主要覆蓋Oracle開發必備的重要知識點:資料庫編程規范、Oracle開發常用工具及使用、MERGE方法、神秘的NULL和討厭的CHAR、擴展GROUP BY、Oracle自動類型轉換、Oracle分析函數、Oracle層次查詢、11g R2新特性之遞歸WITH編程、動態SQL擴展。此外還有大量案例:Where In List問題解析,資料庫設計和大數據量處理、數據審核、號段選取應用、分析SQL執行計劃的關注點、Oracle開發誤區探索、提升PL/SQL開發性能漫談、管道函數的學習與實戰應用、巧用鎖特性避免重復啟動同一程序、不可能的任務?超越Oracle等。
本書作者均有多年Oracle開發管理實戰經驗,他們期望以自己的經驗和教訓,分享分析和解決問題的方法,探討如何用相關的技術去解決特定的需求。希望讀者在看完本書後,能受到良好的啟迪,進而能極大地提升自己在Oracle資料庫開發方面的能力!

④ 關於Oracle資料庫編程題的解答。謝謝各位!

1、查詢姓「李」的老師的個數;
SELECT COUNT(Tno) FROM Teacher WHERE Tname LIKE '李%'

2、查詢學過「c001」並且也學過編號「c002」課程的同學的學號、姓名;

SELECT Sno, Sname
FROM Student
WHERE sno IN(SELECT sno
FROM (SELECT Sno FROM SC WHERE Cno = 'c001') t1
(SELECT Sno FROM SC WHERE Cno = 'c002') t2
WHERE t1.sno = t2.sno)

3、查詢學過「葉平」老師所教的所有課的同學的學號、姓名;
SELECT Sno, Sname
FROM student
WHERE Sno IN(SELECT SC
FROM SC
WHERE CNO IN (SELECT CNO FROM Course WHERE Cname = '葉平')
GROUP BY SC HAVING COUNT(CNO) = (SELECT COUNT(CNO) FROM Course WHERE Cname = '葉平'))

4、查詢「c001」課程比「c002」課程成績高的所有學生的學號

SELECT C1.SC
FROM (SELECT SC, Score FROM SC WHERE Cno = 'c001') c1
(SELECT SC, Score FROM SC WHERE Cno = 'c002') c2
WHERE c1.SC = c2.SC
AND c1.Score > c2.Score
如果只有C1,而沒有C2成績,用這個好一點
SELECT SC
FROM (SELECT SC, Score FROM SC WHERE Cno = 'c001') c1
left join (SELECT SC, Score FROM SC WHERE Cno = 'c002') c2
ON c1.SC = c2.SC AND c1.Score > c2.Score

5、查詢平均成績大於60分的同學的學號和平均成績;
SELECT Sno, AVG(score)
FROM SC GROUP BY Sno Having AVG(score) > 60

6、查詢所有同學的學號、姓名、選課數、總成績;
SELECT stu.Sno, stu.Sname, COUNT(Cno), SUM(score)
FROM Student stu, SC
WHERE stu.Sno = Sc.sno
GROUP BY stu.sno, stu.Sname

7、查詢沒有學全所有課的同學的學號、姓名;
SELECT Sno, Sname
FROM SC
WHERE Sno NOT IN (SELECT Sno
FROM SC
GROUP BY SC
HAVING COUNT(CNO) < (SELECT COUNT(DISTINCT CNO) FROM SC))

⑤ oracle資料庫在開發中用到最多的幾個知識點.我學java的.

知識點太多了啊
增刪改查最基本的要會,還有復雜的要會
其實這里最主要的就是查,多學習點oracle里的各種函數吧還有各種連接查詢,各種統計查詢(網路文庫里搜索:oracle函數大全)
還有觸發器,存儲過程,函數得自己會寫會看

存儲過程里特別需要知道的是變數、游標、數組、循環、動態sql的執行等等
至於索引,不太屬於資料庫開發范疇吧,需要了解,譬如一個查詢怎麼用到索引這樣子,其實這個最主要是dba的工作

⑥ oracle怎樣創建樣例資料庫

Oracle資料庫實例的創建、刪除、修改
以SUSE10SP2、Oracle10gR2為例。
本文中的資料庫實例這一稱謂應該換做資料庫更為准確,資料庫可以理解為是一個物理的靜態概念,主要包括一些物理存在的資料庫文件,而資料庫實例則是一個動態概念,包括一些內存區域以及若干進程,資料庫實例是對資料庫進行操作的執行者。(20090714修改)
安裝完Oracle資料庫系統的安裝後,需要創建資料庫實例才能真正開始使用Oracle資料庫服務。
總結起來,Oracle有三種創建資料庫實例的方法。
第一種,最常用也最簡單,那就是通過DBCA(Database Configuration Assistant),這是Oralce提供的一個圖形界面的資料庫實例配置工具,通過它可以創建、刪除和修改資料庫實例,它的使用也比較簡單、易懂,互動式的圖形界面操作,非常准確有效的提示與配置,是一個比較方便的創建資料庫實例的方式。
按照DBCA給出的提示,很容易創建一個新資料庫實例。
在創建資料庫的時候,DBCA還提供了兩個選項,讓你可以根據剛剛設置好的參數生成一個資料庫實例模板和一份資料庫實例創建腳本。這兩個東西是非常好,非常有用的東西,資料庫模板由Oracle自己管理維護,已經創建好的資料庫實例模板可以在DBCA圖形程序新建資料庫實例時作為模板來使用,另外在DBCA使用responseFile文件或者命令行參數創建資料庫時也需要用到(見後面介紹);資料庫創建腳本是一組腳本,包括shell腳本和sql腳本,這些腳本共同實現一個功能,那就是按照你之前在DBCA中設置好的那樣創建一個資料庫實例(後面也會有介紹),你需要做的只是將這些腳本在你的代碼中調用起來。當然,你也可以選擇只生成資料庫模板或者資料庫腳本,而不用去創建一個真的資料庫(這通常很費時間)。
Oracle資料庫實例的創建、刪除、修改
DBCA是一個非常強大的工具,上面看到的只是DBCA最常用的創建一個資料庫實例的使用,其實DBCA還提供另外兩種使用方法,分別是responseFile和命令行帶參調用。
先說DBCA的responseFile使用方法,responseFile這個東東並不陌生,前文講的Oracle自動安裝就是使用responseFile完成的,DBCA的responseFile使用方法和Oracle安裝程序的responseFile使用方法基本一致。但DBCA的responseFile的來源只能是Oracle安裝包中提供的模板文件,而不能向Oracle安裝程序的responseFile一樣,先自己record一個,然後再用這個record去指導Oracle的自動安裝。從Oracle安裝包中獲取到DBCA的responseFile模板文件後,你可以根據自己的需要編輯修改該模板文件,以完成對資料庫實例的某些參數設置(DBCA圖形界面所提供的參數設置,responseFile中都可以設置,而且該responseFile模板文件的注釋寫的很好,你完全不用擔心無法搞定那些繁雜的資料庫實例參數設置,贊Oralce一個!)。該模板文件在Oracle安裝包中的位置一般在${ORACLE_PACKAGE}/response目錄下。
有了responseFile之後,你只需在調用DBCA的時候指定responseFile的位置和另外一些參數:
dbca [-silent|-progressOnly] -responseFile responseFile名稱
其中-silent|-progressOnly選項意義和Oracle安裝程序命令行參數中的同名選項一樣,表示完全字元界面自動安裝或者帶圖形提示界面的半自動化安裝。
responseFile名稱當然就是responseFile的具體位置了。
但是,有一點不是很好,那就是使用DBCA的responseFile方式創建Oracle資料庫實例,需要事先已經存在一個資料庫實例模板了,在responseFile中再指定該資料庫實例模板名,然後DBCA再依據這個已有的資料庫實例模板完成新資料庫實例的創建,所以就會有前面講到的DBCA圖形界面創建資料庫實例時提供生成資料庫實例模板的選項(資料庫實例模板也可以從一個已有資料庫實例生成),就是在這要用到的。
從上面調用DBCA使用responseFile的命令中,應該已經看到了DBCA是提供一些命令行參數選項的,其實DBCA提供的命令行參數選項遠比你想像的強大,甚至可以這么說,所有DBCA圖形界面和responseFile能夠辦到的事,通過DBCA豐富的命令行參數選項都可以辦到。你在DBCA圖形界面上設置的參數或者在responseFile中指定的參數值都可以通過DBCA的命令行參數選項來進行設置,所以你完全可以只通過DBCA的命令行帶參調用來完成一個資料庫實例的創建(當然也包括刪除、修改資料庫實例等所有DBCA圖形界面所能提供的功能)。其實,我更願意這樣認為,DBCA的responseFile應用也是一種DBCA命令行帶參調用的使用。需要注意的是,當DBCA的命令行參數和responseFile同時設置一個參數時,命令行參數的優先順序是比responseFile要高的。另外,使用DBCA命令行帶參調用新建資料庫實例和使用responseFile新建資料庫實例一樣,也是需要事先已經存在一個資料庫實例模板,才能完成新資料庫實例的創建。一份非常詳細的DBCA所有命令行參數選項列表,你可以通過執行dbca -help獲得。
到現在你可能已經發現,DBCA圖形界面、DBCA的responseFile使用以及DBCA的命令行帶參調用,其實是三個分別具備完全資料庫實例設置功能的工具或者介面,分別對應不同的應用場景,它們可以滿足你幾乎所有的應用需求(使用這樣的工具來幫助構建自己的軟體真是非常愜意的一件事情,再贊Oracle一個!)。
第二種是通過腳本(是否稱為命令行方式更合適,下文描述的腳本方式其實都是命令行方式的非互動式方法,或者說命令行的自動化方式,但其實所有腳本方式都可以將shell腳本或sql腳本中的shell命令、sqlplus命令拆分出來,手工在shell中或者sqlplus界面中進行互動式的輸入執行,這可以稱為命令行的手工方式)來完成資料庫實例的代碼中自動創建。這里說的腳本包括shell腳本和sql腳本,這種方式可以說是最適合與編程結合的,因為這些shell腳本或者sql腳本都可以直接在shell命令中調用執行,所以可以很好與shell編程相結合。而這其實是基於一個非常重要的事實,即Oracle提供了一個互動式的命令行工具sqlplus(類似與DB2的db2cmd),這個工具可以認為是一個Oracle資料庫管理工具,通過它可以執行一些Oracle的資料庫管理命令,來完成一些資料庫管理工作(這當然就包括資料庫實例的創建),同時你也可以把它當作一個SQL語句執行器,直接在里邊執行你想要執行的SQL語句或者存儲過程等,並獲取執行結果。並且,更重要的是,sqlplus可以直接在shell命令行中進行非互動式的調用執行(通常是調用執行一段sqlplus語句,或者是一個由一些sqlplus語句組成的sql腳本,我所說的sqlplus語句包括Oracle資料庫管理維護命令、SQL語句和存儲過程等),這就為在shell編程中使用sqlplus完成資料庫實例自動創建工作提供了可能。
shell命令行中非互動式調用sqlplus執行一段sqlplus語句是利用shell編程中重定向命令的一個特性,即分隔符重定向輸入。一般用法如下:
command<<任意自定義分隔符
>(換行)內容
>(換行)內容
>自定義分隔符
shell中遇到<<則會自動將下一個單詞認作分隔符,並將分隔符後面的文本當作command命令執行的內容傳遞給command依次全部執行直至遇到下一個分隔符單詞才結束。這里的分隔符可以是任意自定義的單詞,通常使用EOF,舉例:
sqlplus / as sysdba<<EOF
startup nomount;
select * from v$version;
shutdown immediate;
exit;
EOF
這段shell程序調用sqlplus執行了若干sqlplus語句,用來啟動資料庫實例,查詢資料庫版本信息,然後關閉資料庫實例,退出sqlplus。
shell命令行中非互動式調用sqlplus執行一個sql腳本是利用sqlplus本身提供的命令行參數。在sqlplus界面中可以通過start命令和@命令來執行一個sql腳本,兩者功效相同,用法如下:
SQL>start sql腳本絕對路徑;
SQL>@sql腳本絕對路徑;
而在shell命令行中可以使用@來完成sqlplus對sql腳本的調用執行,舉例:
sqlplus / as sysdba @./MySQL.sql
以上命令會調用sqlplus執行當前目錄下的MySQL.sql腳本。
使用腳本來完成資料庫實例的創建工作,也分為兩種情況。
一種是誠如前文所述的那樣,在使用DBCA圖形工具創建資料庫實例的同時生成一份資料庫實例創建腳本(包括若干shell腳本和sql腳本),那麼你就可以使用這份腳本,在shell中進行調用,完成資料庫實例的代碼自動創建。使用這份資料庫實例創建腳本創建的新資料庫實例和原資料庫實例是完全一樣,當然,你可以將生成的腳本進行修改,以完成你對資料庫實例的某些設置,但是請在你對腳本內容已經足夠了解,並且知道你自己在干什麼的情況下修改腳本,否則你很有可能使用修改後的腳本無法正確創建資料庫實例。這種方法中shell腳本對sqlplus的使用,更多的是使用sqlplus來執行一些Oracle生成的sql腳本(這些sql腳本的內容是就是一些sqlplus語句的集合,它們的任務就是完成資料庫實例的創建以及設置)。
另一種情況則是不依靠DBCA生成的腳本,完全由自己來編寫實現一份shell腳本,在腳本中你可以調用sqlplus執行一段sqlplus語句或者其它一些sql腳本,以完成資料庫實例的創建和設置,這完全取決於你的實現;而最常用的用來創建資料庫實例的一個方法就是在sqlplus中使用create database語句,create database語句提供了許多豐富的選項和參數設置,確保你能完全創建一個自己所需要的資料庫實例。當然,還有一些其它方法可以創建資料庫實例,比如調用執行oracle提供某些存儲過程等。
至於create database語句的詳細介紹可以參考oracle的sql reference。
第三種嚴格來說不能算作一種創建Oracle資料庫實例的方法,它是通過已有的資料庫實例為基礎來完成新資料庫實例的創建的。這種方法是首先通過第一種或者第二種方法來創建好一個資料庫實例,然後將該資料庫實例的物理文件進行備份,然後直接使用備份的物理文件恢復出一個與原資料庫實例完全一樣新的資料庫實例,所以這種方法需要和第一、二種方法相配合才能使用。這種方法其實已經屬於Oracle數據備份與恢復的范疇了,就是Oracle數據備份恢復方式中的物理備份恢復,所以這種方法可以叫做物理恢復法。
簡單介紹物理恢復法,首先將一個已經存在資料庫實例(最好已關閉)進行物理備份,所謂物理備份其實就是復制該資料庫實例所使用的操作系統文件,這些文件主要包括DataFiles、RedoLogs、ControlFiles和UndoFiles(這些文件一般存在於$ORACLE_HOME/oradata目錄下),進行資料庫實例恢復的時候只需將備份的操作系統文件復制到新的oradata目錄下即可,可以直接啟動使用恢復後的該資料庫實例。不難看出,這種備份恢復是依賴於操作系統平台的。
詳細的物理備份和恢復介紹可以參考oracle的backup and recovery basics以及backup and recovery advanced user's guide。
說完了資料庫實例的創建,現在來說說資料庫實例的刪除和修改。其實介紹完了資料庫實例的創建,資料庫實例的刪除和修改就非常簡單了。基本和前文資料庫實例創建的內容相一致,且比較而言更簡單。
資料庫實例的刪除從上文中資料庫實例的創建不難得到,大致有兩種方法,DBCA工具和命令行方式。
DBCA工具除了能夠用來創建資料庫實例,當然也能夠用來刪除資料庫實例了,且同樣可以用使用responseFile或者命令行帶參調用等方法來完成資料庫實例的刪除,請參考資料庫實例創建部分。
命令行刪除資料庫實例的方式,嚴格來講,是使用一組sqlplus命令來完成資料庫實例的刪除,這組sqlplus命令可以組織在一個sql腳本中,然後在shell命令行中調用sqlplus程序來執行該sql腳本,或者直接在shell命令行中利用shell程序重定向特性調用sqlplus依次完全執行這組sqlplus命令,再或者使用手工的互動式輸入執行,使用方法請參考資料庫實例創建部分。
其中涉及到的sqlplus命令參考以下:
SQL>startup restrict mount;
SQL>drop database;
使用sqlplus命令刪除資料庫實例,必須先以restrict mount方式將資料庫實例載入(但不打開),然後使用drop database語句刪除該資料庫實例。
資料庫實例的修改和資料庫實例的創建,情況類似,DBCA方式或者命令行方式。只要是DBCA方式能夠修改的資料庫實例參數,命令行方式也都能辦到。

⑦ oracle 有哪些知識點呀 該怎麼使用呀

基本操作的軟體嘛, oracle sql developer 基本上也夠用了。

如果是用於開發操作的話,如果 SQL Server 學得差不多了。
學 Oracle 問題不大。
只要找個 Oracle SQL Server 操作對比的文檔, 就可以了。
也就是 某個功能, SQL Server 裡面是這么處理, 而 Oracle 是這么處理。 這樣的文檔。
基本上就夠了。

你要是需要的話, 發一個 電子郵件地址給我, 我發郵件給你。

⑧ Oracle資料庫有哪些知識點,請講全面,不用詳細介紹每個知識點。

Oracle的體系
Oracle的體系很龐大,要學習它,首先要了解Oracle的框架。在這里,簡要的講一下Oracle的架構,讓初學者對Oracle有一個整體的認識。

1、物理結構(由控制文件、數據文件、重做日誌文件、參數文件、歸檔文件、密碼文件組成)

控制文件:包含維護和驗證資料庫完整性的必要信息、例如,控制文件用於識別數據文件和重做日誌文件,一個資料庫至少需要一個控制文件.

數據文件:存儲數據的文件.

重做日誌文件:含對資料庫所做的更改記錄,這樣萬一出現故障可以啟用數據恢復。一個資料庫至少需要兩個重做日誌文件.

參數文件:定義Oracle常式的特性,例如它包含調整SGA中一些內存結構大小的參數.

歸檔文件:是重做日誌文件的離線副本,這些副本可能對於從介質失敗中進行恢復很必要。

密碼文件:認證哪些用戶有許可權啟動和關閉Oracle常式.

2、邏輯結構(表空間、段、區、塊)

表空間:是資料庫中的基本邏輯結構,一系列數據文件的集合。
段:是對象在資料庫中佔用的空間.
區:是為數據一次性預留的一個較大的存儲空間.
塊:ORACLE最基本的存儲單位,在建立資料庫的時候指定.

3、內存分配(SGA和PGA)

SGA:是用於存儲資料庫信息的內存區,該信息為資料庫進程所共享。它包含Oracle 伺服器的數據和控制信息,它是在Oracle伺服器所駐留的計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。

PGA:包含單個伺服器進程或單個後台進程的數據和控制信息,與幾個進程共享的SGA 正相反PGA 是只被一個進程使用的區域,PGA 在創建進程時分配在終止進程時回收.

4、後台進程(數據寫進程、日誌寫進程、系統監控、進程監控、檢查點進程、歸檔進程、服務進程、用戶進程)

數據寫進程:負責將更改的數據從資料庫緩沖區高速緩存寫入數據文件
日誌寫進程:將重做日誌緩沖區中的更改寫入在線重做日誌文件
系統監控:檢查資料庫的一致性如有必要還會在資料庫打開時啟動資料庫的恢復
進程監控:負責在一個Oracle 進程失敗時清理資源
檢查點進程:負責在每當緩沖區高速緩存中的更改永久地記錄在資料庫中時,更新控制文件和數據文件中的資料庫狀態信息。
歸檔進程:在每次日誌切換時把已滿的日誌組進行備份或歸檔
服務進程:用戶進程服務。
用戶進程:在客戶端,負責將用戶的SQL語句傳遞給服務進程,並從伺服器段拿回查詢數據。

5、Oracle常式:Oracle常式由SGA內存結構和用於管理資料庫的後台進程組成。常式一次只能打開和使用一個資料庫。

6、SCN(System ChangeNumber):系統改變號,一個由系統內部維護的序列號。當系統需要更新的時候自動增加,他是系統中維持數據的一致性和順序恢復的重要標志。

⑨ 使用oracle資料庫總結

去ORACLE的網站下載一個個人版本的ORACLE安裝程序,下個10G版本吧
然後安裝,全點下一步,或者你看他給你的中文提示下一步安裝就可
建立資料庫的話安裝會給你裝的
裝完要配置NET MANAGER里的監聽程序 點添加資料庫 輸服務名和路徑
然後還要配置服務名
然後就可以用SQL PLUS登陸了
默認的帳戶
sys 密碼 change_on_install
system密碼 manager
裝完cmd sqlplus /nolog 然後conn sys/change_on_stall as sysdba
默認的話會有個樣本用戶scott下面有一些表 裡面還有數據,但是scott用戶默認是鎖定的,上面conn sys/change_on_stall as sysdba以後,再輸alter user scott account unlock;然後就可以conn scott/tiger了,然後就可以select * from emp;了記得連接完後一般SQL語句都要用『;』分號結束。

簡單說了下,裡面還有很多細節,可以加我HI BAIDU
最好找本oracle 10g入門的書看看

⑩ Oracle資料庫編程問題

1.在你自己的oracle資料庫上建一個目標資料庫的dblink。
2.在你直接的資料庫里寫一個procere,用dblink將目標資料庫的數據讀取並插入你自己的資料庫表中
3.在你的資料庫里定義一個job來定時執行你所編寫的procere即可

附:以上所涉及到的dblink和job的建立方法可以直接網路下或給我留言!

閱讀全文

與oracle資料庫編程總結相關的資料

熱點內容
非科班程序員自學 瀏覽:799
壓縮泡沫鞋底底材 瀏覽:217
程序員職場第一課2正確的溝通 瀏覽:677
遇到不合法app應該怎麼辦 瀏覽:90
匯編程序編譯後的文件 瀏覽:77
大智慧均線源碼 瀏覽:371
單片機排阻的作用 瀏覽:213
滴滴金融app被下架如何還款 瀏覽:210
jpg轉換成pdf免費軟體 瀏覽:741
范里安pdf 瀏覽:443
偽造pdf 瀏覽:75
能刪除android文件夾嗎 瀏覽:446
LINUX使用V2ray 瀏覽:797
找人幫忙注冊app推廣是什麼 瀏覽:820
獨立伺服器如何恢復初始化 瀏覽:11
優秀到不能被忽視pdf 瀏覽:316
導遊程序員家政 瀏覽:586
22乘28的快速演算法 瀏覽:338
軟通動力程序員節2021 瀏覽:847
安卓系統如何卸載安裝包 瀏覽:872