亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜索
oracle知識 ORACLE的數(shù)據(jù)類型 Oracle技術(shù)網(wǎng)—DBMS_Job包的用法 Oracle技術(shù)網(wǎng)—Oracle for NT系統(tǒng)實用工具介紹 Oracle技術(shù)網(wǎng)—Oracle常見錯誤代碼 Oracle技術(shù)網(wǎng)—Oracle常用Script Oracle技術(shù)網(wǎng)—Oracle常用數(shù)據(jù)字典 Oracle技術(shù)網(wǎng)—ORACLE數(shù)據(jù)庫簡介 Oracle技術(shù)網(wǎng)—Oracle特殊包 Oracle技術(shù)網(wǎng)—Oracle相關(guān)站點 Oracle技術(shù)網(wǎng)—哪些初始化參數(shù)最影響Oracle系統(tǒng)性能 PL/SQL DBA Oracle7 7.3.2.2 Oracle技術(shù)網(wǎng)—listener.log的內(nèi)容增長很快,是否可以刪除重建 Oracle技術(shù)網(wǎng)—ORACLE表空間恢復(fù)方案 Oracle技術(shù)網(wǎng)—Oracle常用系統(tǒng)文件有哪些 Oracle技術(shù)網(wǎng)—ORACLE回滾段管理(上) Oracle技術(shù)網(wǎng)—ORACLE回滾段管理(下) Oracle技術(shù)網(wǎng)—Oracle如何決定使用哪個回退段 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫的空間管理技巧 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫碎片整理 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫有哪幾種關(guān)閉方式 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫有哪幾種啟動方式 Oracle技術(shù)網(wǎng)—Oracle預(yù)定義角色有哪些 Oracle技術(shù)網(wǎng)—ROLLBACK不能回滾的命令 Oracle技術(shù)網(wǎng)—查看哪些session正在使用哪些回滾段 Oracle技術(shù)網(wǎng)—存儲參數(shù)(storage子句)含義及設(shè)置技巧 Oracle技術(shù)網(wǎng)—和權(quán)限有關(guān)的表有哪些 Oracle技術(shù)網(wǎng)—漫談數(shù)據(jù)庫的啟動和關(guān)閉 Oracle技術(shù)網(wǎng)—哪些初始化參數(shù)最影響Oracle系統(tǒng)性能 Oracle技術(shù)網(wǎng)—如何備份控制文件 Oracle技術(shù)網(wǎng)—如何查出前臺正在發(fā)出的sql語句 Oracle技術(shù)網(wǎng)—如何查看Oracle版本及安裝了哪些選項 Oracle技術(shù)網(wǎng)—如何查看Oracle數(shù)據(jù)表的建表語句 Oracle技術(shù)網(wǎng)—如何查看SGA區(qū)剩余可用內(nèi)存 Oracle技術(shù)網(wǎng)—如何查看各個表空間占用磁盤情況 Oracle技術(shù)網(wǎng)—如何查看后臺進程 Oracle技術(shù)網(wǎng)—如何查看什么時間有哪些數(shù)據(jù)庫對象結(jié)構(gòu)被修改過 Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)庫的各種數(shù)據(jù)文件 Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)庫的字符集 Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)文件是否自動擴展 Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)文件所在的路徑 Oracle技術(shù)網(wǎng)—如何查看用戶表上的約束內(nèi)容 Oracle技術(shù)網(wǎng)—如何查看用戶表所占空間的大小 Oracle技術(shù)網(wǎng)—如何查詢出primary key和forgen key的關(guān)系表 Oracle技術(shù)網(wǎng)—如何改變當前聯(lián)機日志文件的大小 Oracle技術(shù)網(wǎng)—如何利用DBMS_SQL包和游標計算當前用戶下所有表的行數(shù) Oracle技術(shù)網(wǎng)—如何啟動ARCHIVELOG模式 Oracle技術(shù)網(wǎng)—如何取出某一用戶的密碼,再原封不動的改回去 Oracle技術(shù)網(wǎng)—如何設(shè)置BLOCK_SIZE大于2K,如:4K、16K Oracle技術(shù)網(wǎng)—如何手工指定使用哪個回退段 Oracle技術(shù)網(wǎng)—如何修改internal的口令 Oracle技術(shù)網(wǎng)—如何移動控制文件到新的目錄中 Oracle技術(shù)網(wǎng)—如何移數(shù)據(jù)庫文件 Oracle技術(shù)網(wǎng)—如何增加表空間的大小 Oracle技術(shù)網(wǎng)—怎樣查看init.ora文件 Oracle技術(shù)網(wǎng)—怎樣查看SGA值 Oracle技術(shù)網(wǎng)—怎樣查看哪些用戶擁有SYSDBA、SYSOPER權(quán)限? Oracle技術(shù)網(wǎng)—怎樣快速查出Oracle 數(shù)據(jù)庫中的鎖等待 Oracle技術(shù)網(wǎng)—怎樣識別IO競爭和負載平衡 Exp vs Imp Oracle技術(shù)網(wǎng)—EXP、IMP 命令詳解 Oracle技術(shù)網(wǎng)—Exp/Imp大量數(shù)據(jù) Oracle技術(shù)網(wǎng)—Export/Import 使用技巧與常見錯誤 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫的備份與恢復(fù) Oracle技術(shù)網(wǎng)—如何把數(shù)據(jù)exp到Sql loader里 Oracle技術(shù)網(wǎng)—如何單獨備份一個或多個表 Oracle技術(shù)網(wǎng)—如何單獨備份一個或多個用戶 Oracle技術(shù)網(wǎng)—如何導(dǎo)入指定表 Oracle技術(shù)網(wǎng)—如何建立一個與現(xiàn)存數(shù)據(jù)庫相同,但不包含數(shù)據(jù)的空庫 Oracle技術(shù)網(wǎng)—如何在oracle7和oracle8之間exp/imp數(shù)據(jù) Oracle技術(shù)網(wǎng)—提高ORACLE數(shù)據(jù)庫系統(tǒng)import性能 Oracle技術(shù)網(wǎng)—為何我的導(dǎo)出文件只有500K Oracle技術(shù)網(wǎng)—自動備份Oracle數(shù)據(jù)庫 Oracle技術(shù)網(wǎng)—作Export或Import時,如何記錄LOG信息? SQL技巧 Oracle技術(shù)網(wǎng)—LONG數(shù)據(jù)類型使用上的一些說明 Oracle技術(shù)網(wǎng)—Oracle8 PL/SQL編程風格與系統(tǒng)性能的提高 Oracle技術(shù)網(wǎng)—Oracle8中用戶名、表名、列名、索引名...可以用中文命名嗎 Oracle技術(shù)網(wǎng)—Oracle中如何實現(xiàn)某一字段自動增加1 Oracle技術(shù)網(wǎng)—SQL(Structured Query Language)語句分哪幾類 Oracle技術(shù)網(wǎng)—SQL*PLUS常用命令列表 Oracle技術(shù)網(wǎng)—SQL*Plus系統(tǒng)環(huán)境變量有哪些?如何修改? Oracle技術(shù)網(wǎng)—SQL*Plus中緩沖區(qū)命令列表 Oracle技術(shù)網(wǎng)—SQL*Plus中能運行哪幾種命令 Oracle技術(shù)網(wǎng)—SQLPlus中的復(fù)制和粘貼技巧 Oracle技術(shù)網(wǎng)—查看本用戶下的各種對象的SQL腳本 Oracle技術(shù)網(wǎng)—查找a表中有,而在b表中沒有的記錄 Oracle技術(shù)網(wǎng)—利用PL/SQL打印ASCII表 Oracle技術(shù)網(wǎng)—如何查找、刪除表中重復(fù)的記錄 Oracle技術(shù)網(wǎng)—如何對CLOB行字段執(zhí)行全文檢索 Oracle技術(shù)網(wǎng)—如何對CLOB字段進行全文檢索? Oracle技術(shù)網(wǎng)—如何改變表中列的名字 Oracle技術(shù)網(wǎng)—如何改變一個字段初始定義的Check范圍 Oracle技術(shù)網(wǎng)—如何給表、列加注釋 Oracle技術(shù)網(wǎng)—如何將 primary key 建在其它的表空間上 Oracle技術(shù)網(wǎng)—如何刪除表中的列 Oracle技術(shù)網(wǎng)—如何使‘CREATE TABLE AS SELECT’能支持ORDER BY ? Oracle技術(shù)網(wǎng)—如何通過 SQL*PLUS 將符號 & 、'號(單引號) 插入Oracle數(shù)據(jù)庫的表中 Oracle技術(shù)網(wǎng)—如何用SQL生成SQL批處理文件 Oracle技術(shù)網(wǎng)—如何在PL_SQL中讀寫文件 Oracle技術(shù)網(wǎng)—如何自動生成一個含有20000101至20500101共50年日期的表 Oracle技術(shù)網(wǎng)—如何自動生成一個含有2000年01月至2050年01月共50年月份的表 Oracle技術(shù)網(wǎng)—刪除a表中和b表相同的數(shù)據(jù) Oracle技術(shù)網(wǎng)—在Oracle快速進行數(shù)據(jù)行存在性檢查 Oracle技術(shù)網(wǎng)—怎樣查看表的結(jié)構(gòu) Oracle技術(shù)網(wǎng)—怎樣改變SQL*Plus啟動時默認路徑 Oracle技術(shù)網(wǎng)—怎樣計算表中的記錄數(shù) Oracle技術(shù)網(wǎng)—怎樣在SQL*Plus中使用 '&' 來實現(xiàn)自定義參數(shù)變量? Oracle技術(shù)網(wǎng)—怎樣在查詢記錄時給記錄加鎖 Oracle錯誤 Oracle7 7.3.2.2 Oracle技術(shù)網(wǎng)—Oracle 816中如何啟動Enterprise Manager Oracle技術(shù)網(wǎng)—Oracle Enterprise Manager(OEM)工具中如何以SYSOPER、SYSDBA方式登錄 Oracle技術(shù)網(wǎng)—ORACLE數(shù)據(jù)庫應(yīng)用開發(fā)常見問題及排除 Oracle技術(shù)網(wǎng)—監(jiān)聽器錯誤 Oracle技術(shù)網(wǎng)—聯(lián)機熱備份失敗后,如何打開數(shù)據(jù)庫 Oracle技術(shù)網(wǎng)—沒有備份、只有歸檔日志,如何恢復(fù)數(shù)據(jù)文件 Oracle技術(shù)網(wǎng)—某個數(shù)據(jù)文件損壞,如何打開數(shù)據(jù)庫 Oracle技術(shù)網(wǎng)—如何使用歸檔日志進行完全恢復(fù) Oracle技術(shù)網(wǎng)—如何正確建立TYPE、partition(分區(qū)) Oracle技術(shù)網(wǎng)—一個控制文件被損壞,如何啟動 Oracle技術(shù)網(wǎng)—在SQL*Plus中insert進的都是中文的,為什么一存入服務(wù)器后,再select出的就是???了 Oracle技術(shù)網(wǎng)—重裝Oracle服務(wù)器后,以前的數(shù)據(jù)可以恢復(fù)嗎 Oracle初學者入門 Oracle技術(shù)網(wǎng)—Oracle 8.1.6 for Win2000 系統(tǒng)文件解釋 Oracle技術(shù)網(wǎng)—Oracle 基本知識 Oracle技術(shù)網(wǎng)—Oracle8 數(shù)據(jù)類型 Oracle技術(shù)網(wǎng)—what is sql? Oracle技術(shù)網(wǎng)—安裝、配置后,SQL*Plus操作初步 Oracle技術(shù)網(wǎng)—安裝Oracle后,經(jīng)常使用的修改表空間的SQL代碼 Oracle安裝、刪除 Oracle技術(shù)網(wǎng)—Oradim工具的用法 Oracle技術(shù)網(wǎng)—WINDOWS NT上,如何刪除ORACLE SERVICE Oracle技術(shù)網(wǎng)—如何連接兩臺Oracle服務(wù)器 Oracle技術(shù)網(wǎng)—如何在Windows 2000下將Oracle完全卸載 Oracle技術(shù)網(wǎng)—如何在WINDOWS NT上刪除所有的Oracle安裝? Oracle技術(shù)網(wǎng)—手工安裝數(shù)據(jù)庫時需要安裝那些系統(tǒng)包 Oracle技術(shù)網(wǎng)—手工創(chuàng)建數(shù)據(jù)庫的全部腳本及說明 Oracle安全性問題 Oracle技術(shù)網(wǎng)—Linux ORACLE 8.1.5漏洞 Oracle技術(shù)網(wǎng)—Oracle 8.1.6的oidldapd中的漏洞 Oracle技術(shù)網(wǎng)—Oracle8的不安全因素及幾點說明 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫的安全策略 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫密碼文件的使用和維護 Oracle技術(shù)網(wǎng)—提高Oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)安全的舉例與分析 數(shù)據(jù)庫安全性策略 Oracle系統(tǒng)設(shè)置、優(yōu)化、連接 《Oracle8 優(yōu)化技術(shù)》摘錄 (第一章 安裝) 《Oracle8 優(yōu)化技術(shù)》摘錄 (第二章 內(nèi)存/CPU) 《Oracle8 優(yōu)化技術(shù)》摘錄 (第三章 輸入/輸出) Oracle技術(shù)網(wǎng)—ASP 中通過OLEDB訪問 Oracle 的代碼 Oracle技術(shù)網(wǎng)—Delphi5 企業(yè)版使用BDE訪問 Oracle方法 Oracle技術(shù)網(wǎng)—oracle database access object Oracle技術(shù)網(wǎng)—Oracle基于Client/Server的性能調(diào)整 Oracle技術(shù)網(wǎng)—PB7 連接 Oracle 的配置方法 Oracle技術(shù)網(wǎng)—PB內(nèi)置Oracle數(shù)據(jù)庫接口的使用方法 Oracle技術(shù)網(wǎng)—PHP+Oracle(OCI) 初步 Oracle技術(shù)網(wǎng)—PHP4連接Oracle 8i的方法(轉(zhuǎn)譯) Oracle技術(shù)網(wǎng)—多個數(shù)據(jù)庫時,如何設(shè)置默認數(shù)據(jù)庫 Oracle技術(shù)網(wǎng)—如何備份Oracle設(shè)置 Oracle技術(shù)網(wǎng)—如何讓你的SQL運行得更快 Oracle技術(shù)網(wǎng)—如何修改 SQL*Plus 的啟動參數(shù) Oracle技術(shù)網(wǎng)—如何在Windosws 2000中安裝JSP并訪問Oracle Oracle技術(shù)網(wǎng)—如何在Windosws 2000中安裝perl并訪問Oracle Oracle技術(shù)網(wǎng)—如何在Windosws 2000中安裝PHP4并訪問Oracle Oracle技術(shù)網(wǎng)—如何在Windosws NT中使用批處理命令自動啟動或關(guān)閉Oracle Services Oracle技術(shù)網(wǎng)—如何在客戶端省略輸入數(shù)據(jù)庫串,而只輸入用戶名、密碼即可 Oracle技術(shù)網(wǎng)—使用Database Configuration Assistant安裝第二個數(shù)據(jù)庫 Oracle技術(shù)網(wǎng)—修改Oracle7數(shù)據(jù)庫maxdatafiles參數(shù)的方法 索引、序列、快照、數(shù)據(jù)庫鏈路、觸發(fā)器 Oracle技術(shù)網(wǎng)—觸發(fā)器的幾種應(yīng)用 Oracle技術(shù)網(wǎng)—建立觸發(fā)器時最容易忽略的兩個地方 Oracle技術(shù)網(wǎng)—快照和觸發(fā)子結(jié)合使用的例子 Oracle技術(shù)網(wǎng)—能否通過視圖更新表中的數(shù)據(jù) Oracle技術(shù)網(wǎng)—如何創(chuàng)建一個簡單的JAVA存儲過程? Oracle技術(shù)網(wǎng)—如何創(chuàng)建隱藏IP地址的最后一項的函數(shù)? Oracle技術(shù)網(wǎng)—如何加密Oracle中的存儲過程 Oracle技術(shù)網(wǎng)—為什么有時ORACLE數(shù)據(jù)庫不用索引來查找數(shù)據(jù) Oracle技術(shù)網(wǎng)—我的數(shù)據(jù)庫鏈路為什么不工作 Oracle技術(shù)網(wǎng)—一個建立快照的簡單例子 Oracle技術(shù)網(wǎng)—怎樣創(chuàng)建一個簡單的自定義過程并引用 Oracle技術(shù)網(wǎng)—怎樣手工刷新快照 oracle與其他數(shù)據(jù)庫的比較 MySQL 測試 Oracle技術(shù)網(wǎng)—Oracle 和 mysql 的一些簡單命令對比參照 Oracle技術(shù)網(wǎng)—Oracle8i和Microsoft SQL Server7.0比較 Oracle技術(shù)網(wǎng)—比較SQL Server與Oracle、DB2 Oracle技術(shù)網(wǎng)—各種數(shù)據(jù)類型的比較 Oracle技術(shù)網(wǎng)—戲說SQL—幾種SQL 服務(wù)器的比較 關(guān)鍵任務(wù)      在Internet上運作公司是一項艱苦的任務(wù) 其它知識 OEM常見問題及其解決辦法 Oracle 8 資料庫函式庫 Oracle 資料庫函式庫 Oracle技術(shù)網(wǎng)—Decode()函數(shù)使用技巧(NT+IIS+ASP+ORACLE) Oracle技術(shù)網(wǎng)—Dual偽列 Oracle技術(shù)網(wǎng)—NULL 使用詳解 Oracle技術(shù)網(wǎng)—OLAP及其多維數(shù)據(jù)分析 Oracle技術(shù)網(wǎng)—Oracle for NT系統(tǒng)實用工具介紹 Oracle技術(shù)網(wǎng)—ORACLE 用戶的規(guī)范化管理 Oracle技術(shù)網(wǎng)—user、uid偽列 Oracle技術(shù)網(wǎng)—大型數(shù)據(jù)庫設(shè)計原則 Oracle技術(shù)網(wǎng)—留言簿(帶Oracle數(shù)據(jù)庫分頁的顯示功能) Oracle技術(shù)網(wǎng)—漫談oracle中的空值 Oracle技術(shù)網(wǎng)—如何正確利用Rownum來限制查詢所返回的行數(shù) Oracle技術(shù)網(wǎng)—什么是ROWID,為什么需要它 Oracle技術(shù)網(wǎng)—數(shù)據(jù)庫技術(shù)考試大綱(中級) Oracle技術(shù)網(wǎng)—數(shù)據(jù)庫行業(yè)的現(xiàn)狀和展望 Oracle技術(shù)網(wǎng)—在客戶端處理Oracle的數(shù)據(jù)行加鎖問題 如何對CLOB行字段執(zhí)行全文檢索 Developer 2000 Oracle技術(shù)網(wǎng)—Developer/2000中各鍵盤觸發(fā)子所對應(yīng)的“按鍵” Oracle技術(shù)網(wǎng)—FORM調(diào)用REPORT時,如何去掉report server Oracle技術(shù)網(wǎng)—FORM中,Exception(例外)都有哪些,如何書寫 Oracle技術(shù)網(wǎng)—FORM中,F(xiàn)ORM中,如何引入圖像 Oracle技術(shù)網(wǎng)—FORM中,WINDOW標題的設(shè)置 Oracle技術(shù)網(wǎng)—FORM中,常用快捷鍵有哪些 Oracle技術(shù)網(wǎng)—FORM中,觸發(fā)子exit_form的兩種功能是什么 Oracle技術(shù)網(wǎng)—FORM中,當光標走到塊的最后一項時,如何讓按“enter回車”鍵時,光標自動走到下一條記錄的第一項? Oracle技術(shù)網(wǎng)—FORM中,當用鼠標點擊標簽畫布的某一“標簽頁”時,如何判斷點擊的是哪一頁 Oracle技術(shù)網(wǎng)—FORM中,如何屏蔽默認的功能鍵 Oracle技術(shù)網(wǎng)—FORM中,如何實現(xiàn)屏幕同步刷新? Oracle技術(shù)網(wǎng)—FORM中,如何使用警告 Oracle技術(shù)網(wǎng)—FORM中,如何通過 ODBC 訪問 Acress 數(shù)據(jù)? Oracle技術(shù)網(wǎng)—FORM中 Oracle技術(shù)網(wǎng)—FORM中,設(shè)置應(yīng)用特性(光標類型) Oracle技術(shù)網(wǎng)—FORM中,怎樣創(chuàng)建動態(tài)下拉列表List Oracle技術(shù)網(wǎng)—FORM中如何存取聲音 Oracle技術(shù)網(wǎng)—FORM中如何存取圖象?如何把圖象從一個表中導(dǎo)到另一個表中? Oracle技術(shù)網(wǎng)—MIS中的圖像應(yīng)用技術(shù) Oracle技術(shù)網(wǎng)—MIS中的圖像應(yīng)用技術(shù) Oracle技術(shù)網(wǎng)—從FORM中調(diào)用REPORT時,如何使打印結(jié)果直接輸出到打印機上 Oracle技術(shù)網(wǎng)—如何從FORM中調(diào)用REPORT程序 Oracle技術(shù)網(wǎng)—如何改變FORM(FMX模塊)運行時的title? Oracle技術(shù)網(wǎng)—如何在FORM運行中,使定制菜單中的“窗口(W)”菜單項不顯示 Oracle技術(shù)網(wǎng)—如何在啟動FORM程序時直接登錄到Oracle數(shù)據(jù)庫上? Oracle技術(shù)網(wǎng)—運行FORM時,如何使按鈕變灰(即無效) Oracle技術(shù)網(wǎng)—運行FORM時,如何使窗口(runtime窗口、畫布窗口)自動變成最大化、最小化? Oracle技術(shù)網(wǎng)—在Developer/2000中如何讀寫文本型操作系統(tǒng)文件 Oracle技術(shù)網(wǎng)—在Oracle中實現(xiàn)報表的定長輸出 linux vs Unix How To Install Oracle 8.0.5 onto RedHat Linux 6 HOWTO: OAS for Linux on FreeBSD HOWTO: Oracle for Linux on FreeBSD Oracle 7.3.4 Enterprise Edition for SCO UNIX 安裝步驟 Oracle技術(shù)網(wǎng)—Oracle .com 套件在TurboLinux上的安裝 Oracle技術(shù)網(wǎng)—ORACLE 7.3 Enterprise在SCO OPEN SERVER 5.02 及 5.04 的安裝過程 Oracle技術(shù)網(wǎng)—ORACLE 7.3.4.2 for SCO Unix 安裝說明 Oracle技術(shù)網(wǎng)—Oracle 8 for solaris 2.6 安裝步驟 Oracle技術(shù)網(wǎng)—Oracle 8(8.0.5)標準版安裝指南 Oracle技術(shù)網(wǎng)—Oracle 8i(8.1.5)企業(yè)版安裝指南 Oracle技術(shù)網(wǎng)—ORACLE FOR SUN SOLARIS 安裝手冊 Oracle技術(shù)網(wǎng)—ORACLE FOR SUN SOLARIS 維護手冊 Oracle技術(shù)網(wǎng)—ORACLE V.7.3.4.3 FOR AIX 安裝說明 Oracle技術(shù)網(wǎng)—ORACLE8I FOR SUN SOLARIS2.7 安裝說明 Oracle技術(shù)網(wǎng)—RedHat 6.1 Step-by-step Install notes for Oracle 8i Oracle技術(shù)網(wǎng)—RedHat Linux 6.0 上 Oracle 8(8.0.5)標準版 安裝實例 Oracle技術(shù)網(wǎng)—RedHat Linux 6.0 上 Oracle 8i R2 (8.1.6) 企業(yè)版安裝實例 Oracle技術(shù)網(wǎng)—如何集成Linux/Apache/PHP4/FastCGI/Oracle/MySQL環(huán)境 Oracle技術(shù)網(wǎng)—如何在你的Linux機器上安裝運行Oracle Oracle技術(shù)網(wǎng)—為Linux配備Oracle 8 Oracle技術(shù)網(wǎng)—在RedHat 6.0上安裝Oracle 8i(全攻略)
文字

????
Oracle8 PL/SQL編程風格與系統(tǒng)性能的提高
來源:http://www.info365.com.cn/
作者:楊延廣 曹素麗

  摘 要:介紹了Oracle 8 PL/SQL程序設(shè)計中,提高系統(tǒng)性能的編程風格的幾種方法,和存儲過程及觸發(fā)器的使用、錯誤處理等。
  關(guān)鍵詞:Oracle;SQL;存儲過程;觸發(fā)器;錯誤處理
  中圖分類號:TP311.11  文獻標識碼:B
文章編號:1001-9081(2000)02-0073-02

  Oracle是C/S(Client/Server)結(jié)構(gòu)的大型數(shù)據(jù)庫,主要語言是4GLSQL語言,具有功能強大而簡單易學的優(yōu)點。C/S結(jié)構(gòu)的工作過程是:當客戶端(C端)輸入并發(fā)送一條SQL語句后,便通過網(wǎng)絡(luò)送到服務(wù)器端(S端),在那里被分析執(zhí)行然后再將結(jié)果通過網(wǎng)絡(luò)返回到客戶端,此時客戶端可以再發(fā)下一條SQL語句??梢?,客戶端是一條語句一條語句的發(fā)送,服務(wù)器端是一條一條的分析執(zhí)行,結(jié)果再一次次的返回。但是,這樣單個的SQL語句引起了頻繁的網(wǎng)絡(luò)通信,大大降低了系統(tǒng)性能。PL/SQL是擴展SQL后的語言,PL/SQL塊作為一個單位發(fā)送,使用了較少的網(wǎng)絡(luò)通信,而且在運行中能根據(jù)條件,決定執(zhí)行或重復(fù)執(zhí)行什么語句,既保留了SQL的強大性,又彌補了不足。

1 提高程序的運行速度

1.1 使用存儲過程
  存儲過程是Oracle數(shù)據(jù)庫的一種對象,是一種帶名的PL/SQL過程程序塊,它在創(chuàng)建后,被數(shù)據(jù)庫服務(wù)器進行語法和句法分析,以編譯了的形式存儲在數(shù)據(jù)庫中,可以被有權(quán)用戶在任何需要的地方調(diào)用。當客戶端應(yīng)用程序調(diào)用時,只需發(fā)送一條調(diào)用命令,數(shù)據(jù)庫服務(wù)器就會執(zhí)行該過程。與一般的PL/SQL塊主要的不同是:無需在網(wǎng)上傳送大量的源程序代碼,只傳送一條調(diào)用命令,這就大大降低了網(wǎng)絡(luò)通信的負擔;而且只在剛創(chuàng)建時分析編譯一次,每次調(diào)用直接執(zhí)行編譯了的代碼,因此運行速度較快。
  在實際開發(fā)時,對于具有共同特性的功能模塊最好使用存儲過程,調(diào)用時通過使用不同的實際參數(shù)值來實現(xiàn)某一具體的處理。如果能充分利用存儲過程來完成應(yīng)用系統(tǒng)的操作與處理,則可大大提高系統(tǒng)的運行性能。
1.2 編寫可重用共享池中已有語句的SQL語句
  共享內(nèi)存緩沖區(qū)和后臺進程合稱為一個Oracle實例。當啟動一個Oracle實例時,會有許多的Oracle后臺進程被啟動,每個進程都負責運行數(shù)據(jù)庫的不同方面的處理,各進程通過共享內(nèi)存彼此之間進行通信,該塊內(nèi)存就是系統(tǒng)全局區(qū)SGA。SGA被分隔為不同的區(qū)域,其中一個稱作共享池(Shared Pool)的區(qū)域中包含了發(fā)送給數(shù)據(jù)庫的SQL語句的正文和PL/SQL塊,以及它們經(jīng)過分析后的表示形式與執(zhí)行方案,其中執(zhí)行方案是數(shù)據(jù)庫實際處理該語句的方法,例如,需要訪問哪些表和索引、是否需要執(zhí)行排序操作等等。
  因為要執(zhí)行一條SQL 語句,數(shù)據(jù)庫就必須確定其執(zhí)行方案。當數(shù)據(jù)庫從客戶應(yīng)用程序接收到一條SQL語句時,它首先檢查是否該語句在共享池中。若在,那么不重新對其分析而是重復(fù)使用已經(jīng)在共享池中的形式及執(zhí)行方案;若不在,則對該語句進行分析,得到新的分析形式與執(zhí)行方案并進行存儲,覆蓋共享池中以前的內(nèi)容。
  由此可以看出,編寫可重用共享池中語句的SQL語句就顯得十分必要,因為避免不必要的重新分析,會很大程度上減小服務(wù)器所承擔的工作量。要想重復(fù)使用共享池中的語句,就應(yīng)該編寫與其格式一致的語句,包括字母的大小寫、標點符號、換行的位置等都要一致。下面推薦一種有效實用的方法。
1.2.1 SQL語句各部分的格式
  一條語句可以一行也可以分多行書寫,但最好換行書寫,每一子句一行,且每行的第一個關(guān)鍵字與第一行的關(guān)鍵字的尾部對齊,這樣做以確保每次使用同一條語句時分行的位置一致,而不要讓語句在第80列偶然溢出到下一行,例如下面的格式中字母T、M、E、D、P是對齊的,一子句占了一行:
  SELECT col1,col2
  FROM tablename1
  WHERE col1 > col2
  AND col2 > col3
  GROUP BY col1;
  當剛執(zhí)行過上述語句后,若又接收到下面的語句:
  SELECT col1,col2
  FROM tablename2
  WHERE col1 > col2
  AND col2 > col3
  GROUP BY col2;
  則通過檢查認為與共享池中的語句一致,可重復(fù)使用共享池中的執(zhí)行方案,不必重新分析。
  而下面的的語句被認為是不同的,因為分行的位置不同,需要重新進行分析。
  SELECT col1,col2 FROM tablename2
  WHERE col1 > col2
  AND col2 > col3
  GROUP BY col1 ;
1.2.2 字母大小寫采用一致約定
  關(guān)鍵字、保留字大寫,用戶聲明的標識符小寫。請看下面的兩條語句:
  SELECT xm
  FROM student;
  與
  select xm
  FROM student;
  比較的結(jié)果是這兩句不匹配或者說不等價,因為第一句中的SELECT是大寫的,而第二句的是小寫的。
1.2.3 其它,如運算符兩側(cè)各留一個空格等
  總之,設(shè)計自己的編寫約定并遵守這些約定,使要處理的語句與共享池中的相一致,有助于運行性能的提高。

2 提高可維護性

2.1 編寫觸發(fā)器
  對表中數(shù)據(jù)進行修改、刪除或插入是非常常見的操作。當表被修改時,應(yīng)該自動給其他需要執(zhí)行操作的程序發(fā)信號。觸發(fā)器可以完成這一功能。在Oracle8中,觸發(fā)器是一段程序,但是這段程序是當發(fā)生INSERT、UPDATE或DELETE操作時被自動執(zhí)行的,與過程的調(diào)用(是通過調(diào)用語句調(diào)用執(zhí)行)不同,因此當某事件的發(fā)生引起連環(huán)更新或其他的相應(yīng)操作時,通過自動執(zhí)行觸發(fā)器代碼實現(xiàn)而不用人工干預(yù),大大減輕了維護工作,同時也很好的保證了數(shù)據(jù)的一致性。
  觸發(fā)器的優(yōu)點是自動激發(fā),不管什么引起數(shù)據(jù)修改(來自程序的或是來自用戶的),它們都工作,所以常常用于不同數(shù)據(jù)表中的相關(guān)數(shù)據(jù)的串接修改。采用這種方法實現(xiàn)數(shù)據(jù)表間接的數(shù)據(jù)關(guān)聯(lián)可由數(shù)據(jù)庫集中維護控制,規(guī)則變化時只需修改相應(yīng)的觸發(fā)器即可,這樣系統(tǒng)易于維護,提高了工作效率。
2.2 使用%TYPE、%ROWTYPE方式聲明變量
  程序設(shè)計中常常要通過變量來實現(xiàn)程序間的數(shù)據(jù)傳遞,即將表中數(shù)據(jù)賦值給變量,或是把變量值插入到表中。而要完成這些操作的前提就是,表中數(shù)據(jù)與變量類型要一致。然而在實際中,表中數(shù)據(jù)或類型、或?qū)挾扔袝r要變化,一旦變化,就必須去修改程序中的變量聲明部分,否則程序?qū)⒉荒苷_\行。為了減少這部分程序的修改,編程時使用%TYPE、%ROWTYPE方式聲明變量,使變量聲明的類型與表中的保持同步,隨表的變化而變化,這樣的程序在一定程度上具有更強的通用性。

3 提高程序自檢能力

  一個好的應(yīng)用系統(tǒng)不僅要有好的用戶界面、齊全的功能處理模塊,而且要有很強的錯誤處理能力。因此要求編程人員要預(yù)測可能的各種情況(聲明異常情態(tài)并引發(fā)),并盡可能從錯誤中恢復(fù)過來(編寫相應(yīng)異常情態(tài)處理器代碼),這就是Oracle8中的異常部分的程序設(shè)計內(nèi)容。然而這部分的設(shè)計絕非易事。在異常部分的最后設(shè)置OTHERS異常情態(tài)處理器是個很好的編程習慣,因為它為運行時刻捕捉到的其它錯誤指明了處理去向,從而保證了程序的正常運行。格式如下:
  BEGIN
  …
  EXCEPTION
   WHEN excepname1 THEN
   …
   WHEN excepname2 THEN
   …
   WHEN OTHERS THEN
   …
  END;
  但是對程序中出現(xiàn)的錯誤要做到正確的處理(即正確選擇異常處理器并執(zhí)行它),還必須弄清楚異常情態(tài)的傳播問題。
  異常情態(tài)的傳播指的是當在程序塊的聲明、執(zhí)行、異常部分分別出現(xiàn)異常情態(tài)時,或在本塊中沒有相應(yīng)的異常處理器時會將這個異常情態(tài)傳播到哪里,會去激發(fā)那個塊中的處理器。傳播規(guī)則是這樣的:
  當一個異常情態(tài)是在塊的執(zhí)行部分引發(fā)的(最常見的),PL/SQL使用下面的規(guī)則確定激活哪個異常處理器。(1)若當前塊對該異常情態(tài)設(shè)置了處理器,則執(zhí)行它并成功完成該塊的執(zhí)行,然后控制轉(zhuǎn)給包含塊。(2)若當前塊沒有該處理器,則通過在包含塊中引發(fā)它來傳播異常情態(tài)。然后對包含塊執(zhí)行步驟1。另外,無論是在聲明部分引發(fā)了一個異常情態(tài),還是在異常處理部分引發(fā),則該異常情態(tài)將立即傳播給包含塊。在包含塊引用上述規(guī)則進行異常情態(tài)的處理,即使在當前塊設(shè)置了OTHERS處理器也不會被執(zhí)行。

4 易于閱讀

  .對于子程序、觸發(fā)器、包等帶名的程序塊,使用結(jié)束標識。例如:
  CREATE OR REPLACE PROCEDURE addstud IS
  …
  BEGIN
  …
  END addstud;   
  .采用統(tǒng)一的標識符命名規(guī)則。對于諸如變量名、子程序名、觸發(fā)器名等數(shù)據(jù)庫對象命名時,應(yīng)盡量能表示其功能用途或含義。
  .對于過程性語句與程序塊采用縮進書寫風格,會使得程序結(jié)構(gòu)清晰、層次分明、易閱讀。
  .采用統(tǒng)一的字母大小寫。盡管PL/SQL程序中不區(qū)分大小寫,但是采用統(tǒng)一的字母大小寫(如前文敘述的大小寫約定)將在很大程度上提高程序的可閱讀性。
  .加注釋。
  .一條語句分多行書寫,不讓其自動分行。
  這方面的內(nèi)容大家都已很熟悉,不再詳述了。
  總之,良好的程序設(shè)計風格,可以在多個方面提高系統(tǒng)的性能,提高開發(fā)效率,很值得我們在工作中給以重視。

作者簡介:楊延廣 (1965-),男,講師,主要研究方向:計算機應(yīng)用;
     曹素麗 女,工程師,主要研究方向:計算機應(yīng)用。

作者單位:楊延廣(石家莊郵政高等??茖W?!『颖?strong>.石家莊050011)
     曹素麗(石家莊郵政高等??茖W?!『颖?strong>.石家莊050011)

上一篇: 下一篇: