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

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

Oracle數據庫開發經驗淺談

瀏覽:30日期:2023-11-29 13:45:12
ORACLE數據庫作為大型數據庫管理系統,近年來一直占有世界上高端數據庫的最大份額,其強大而完善的數據庫管理功能,以及ORACLE公司推陳出新的不斷努力,一直成為IT業界矚目的焦點。嶺澳核電站的數據庫平臺采用了ORACLE7.3作為后端平臺,前端選擇了ORACLE公司的DEVELOPER 2000 及DESIGNER 2000作為開發工具,采用了目前流行的CLIENT/SERVER模式。本人在ORACLE系統的開發中,就ORACLE的整套開發工具提出一些自己的體會,供同行參考。

一. ORACLE SQL PLUS 使用技巧:

----①查找重復記錄:

SELECT DRAWING,DSNO FROM EM5_PIPE_PREFAB

WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5

_PIPE_PREFAB D

WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND

EM5_PIPE_PREFAB.DSNO=D.DSNO);

----執行上述SQL語句后就可以顯示所有DRAWING和DSNO相同且重復的記錄。

----刪除重復記錄:

DELETE FROM EM5_PIPE_PREFAB

WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5

_PIPE_PREFAB D

WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND

EM5_PIPE_PREFAB.DSNO=D.DSNO);

----執行上述SQL語句后就可以刪除所有DRAWING和DSNO相同且重復的記錄。

----② 快速編譯所有視圖

----當在把數據庫倒入到新的服務器上后(數據庫重建),需要將視圖重新編譯一遍,因為該表空間視圖到其它表空間的表的連接會出現問題,可以利用PL/SQL的語言特性,快速編譯。

SQL >SPOOL ON.SQL

SQL >SELECT ‘ALTER VIEW ‘||TNAME||’

COMPILE;’ FROM TAB;

SQL >SPOOL OFF

然后執行ON.SQL即可。SQL >@ON.SQL

當然,授權和創建同義詞也可以快速進行,如:

SQL >SELECT ‘GRANT SELECT ON ’

||TNAME||’ TO USERNAME;’ FROM TAB;

SQL >SELECT ‘CREATE SYNONYM

‘||TNAME||’ FOR USERNAME.’||TNAME||’;’ FROM TAB;

③ 用外聯接提高表連接的查詢速度

在作表連接(常用于視圖)時,常使用以下方法來查詢數據:

SELECT PAY_NO, PROJECT_NAME

FROM A

WHERE A.PAY_NO NOT IN (SELECT PAY_

NO FROM B WHERE VALUE >=120000);

----但是若表A有10000條記錄,表B有10000條記錄,則要用掉30分鐘才能查完,主要因為NOT IN要進行一條一條的比較,共需要10000*10000次比較后,才能得到結果。該用外聯接后,可以縮短到1分左右的時間。

----⑤ 怎樣在數據庫觸發器中使用列的新值與舊值

----在數據庫觸發器中幾乎總是要使用觸發器基表的列值,如果某條語句需要某列修改前的值,使用:OLD就可以了,使用某列修改后的新值,用:NEW就可以了。如:OLD.DEPT_NO,:NEW.DEPT_NO。

二.ORACLE DEVELOPER 2000使用技巧:

----① 改變FORM(FMX模塊)運行時的Runform4.5的題頭:

----DEVELOPER2000中FMX默認題頭為:Developer/2000 Forms Runtime for Windows 95 / NT 你可以改為自己定義的標題,

----1. 在Form級觸發器中添加觸發WHEN-NEW-FORM-INSTANCE

----2. 在此觸發器中寫如下代碼:

set_window_property(FORMS_MDI_WINDOW,TITLE,'POINT

SYSTEM 歡迎使用');

----② 如何隱藏菜單中的window選項:

----在創建自己的菜單時,最后選項總有window項,下面介紹如何去掉它,

----1. 創建一個Menu

----2. 在Menu中建立一個Item,命名為WINDOW。

----3. 設置該Item屬性如下:

----Menu Item Type:Magic

Command Type:Null

Magic Item:Window

Lable:為空

----③ 怎樣創建動態下拉列表List

----Developer 2000 中的列表是通過設置相關屬性而完成數據項的列表設置的,但那只是靜態的,有時你想讓某項成為動態的列表,隨輸入數據的改變而改變,就需要動手去編個小程序。下面詳細介紹怎樣去做:

----有塊EBOP_CABLE_ACCOUNT,下有SPECIFICATION數據項,當一進入該模塊時,就將SPECIFICATION項在數據庫中存儲的值動態顯示出來,先在Form4.5中建立一個PRCEDURE,命名為DYN_LIST:

然后在FORM的WHEN-NEW

-FORM-INSTANCE觸發子中加入一行:

DYN_LIST;

----這樣一進入該FMX,就會動態刷新該列表。除此之外,SPECIFICATION數據項改為列表項。

----④ 當顯示多條記錄且數據項特別多時,如何組織錄入及顯示界面:

---- PRN代碼及設備代碼在畫布1(CONTENT型)上,其它數據項在畫布2(STACK型)上,所有數據項為一個表的列或一個塊的數據項。在拉動水平滾動條時或用TAB或敲回車鍵時,將看到全部數據項。這種排布方法適用于數據項特別多又想顯示多條記錄時用。主要制作順序為:先建立兩個畫布,畫布1(CONTENT型),畫布2(STACK型),然后建立塊,選畫布時用畫布1,這樣所有項都顯示在畫布1上,然后選中除PRN代碼及設備代碼之外的所有數據項,選TOOLS菜單下的PROPERTIES選項,將這些數據項的CANVAS屬性選為畫布2(STACK型),然后調整整體位置就可以了。

----⑤ 如何在FORM的受限觸發子中提交保存數據

----在FORM中很多觸發子是不能用COMMIT WORK語句的,當你在該觸發子中使用了UPDATE,DELETE等操作并想立即存盤時,就需要COMMIT WORK語句了。首先在服務器端建立DB_SQL_COMMIT這個過程。

----然后在FORM中該觸發子中調用過程DB_SQL_COMMIT;就可以了,當然你可以根據自己需要將該過程加入參數,這樣通過參數可以得到執行DML語句的權限。

----⑥ 如何在FORM中實現某數據項自動按記錄序號加一操作

----設塊名為VO,要操作的數據項為VO_ID,在該塊中建立塊級觸發子WHEN-CREATE- RECORD,加入如下代碼:

:VO_ID:=:System.Trigger_Record;

----這樣每當生成新記錄時VO_ID就會自動加一了。

----⑦ 如何在一個FORM中調用另一個FORM,或在一個塊中調用另一個塊時顯示特定的記錄有時用戶會要求在調用另一個FORM時,只顯示相關的記錄,舉例如下,在一個FORM的塊中有一個按鈕,在按鈕觸發子中加入如下代碼:

DECLARE

PM

PARAMLIST;

BEGIN

PM:=GET_PARAMETER_LIST('PM');

IF NOT ID_NULL(PM) THEN

DESTROY_PARAMETER_LIST('PM');

END IF;

PM:=CREATE_PARAMETER_LIST('PM');

......................

ADD_PARAMETER(PM,'THE_WHERE',

TEXT_PARAMETER,'EM_NAME=''EM4''

AND EM_PROJECT_NAME=''支架預制''');

OPEN_FORM('PAYMENT',ACTIVATE,SESSION,PM);

END;

 ----其中EM_NAME,EM_PROJECT_NAME為本FORM某塊的數據項,PAYMENT為要調用的FORM模塊。這樣通過傳遞參數列表就可以得到想要的結果。在FORM. PAYMENT.FMB中,建立一參數THE_WHERE,CHAR型,長1000,然后在PAYMENT.FMB中建立FORM級觸發子WHEN-NEW-FORM-INSTANCE,在該觸發子中加入以下語句:

IF :PARAMETER.THE_WHERE IS NOT NULL THEN

SET_BLOCK_PROPERTY('PAYMENT',

DEFAULT_WHERE,:PARAMETER.THE_WHERE);

END IF;

----其中PAYMENT為要顯示的塊,這樣通過參數傳遞就得到想要的某些特定條件的數據了。

----⑧ 在FORM中當有主從塊時,連續輸入記錄如何避免被不斷的提示保存:

----每輸入一條主記錄和若干條該主記錄的從記錄后,此時再導航到主塊輸下一條記錄,FORM就會提示你是否要保存記錄,而你并不希望FORM提示,讓它自動保存,此時你可以到Program Units中找到過程PROCEDURE Clear_All_Master_Details,然后在這個過程中找到語句

三.數據庫管理

----① 在刪除一個表中的全部數據時,須使用TRUNCATE TABLE 表名;因為用DROP TABLE,DELETE * FROM 表名時,TABLESPACE表空間該表的占用空間并未釋放,反復幾次DROP,DELETE操作后,該TABLESPACE上百兆的空間就被耗光了。

----② 數據庫文件的移動方法

----當想將數據庫文件移動到另外一個目錄下時,可以用ALTER DATABASE命令來移動(比ALTER TABLESPACE適用性強):

----1. 使用SERVER MANAGER關閉實例.

SVRMGR > connect internal;

SVRMGR > shutdown;

SVRMGR >exit;

----2. 使用操作系統命令來移動數據庫文件位置(假設這里操作系統為SOLARIS 2.6). 在UNIX中用 mv命令可以把文件移動到新的位置,

#mv /ora13/orarun/document.dbf /ora12/orarun

----3. 裝載數據庫并用alter database命令來改變數據庫中的文件名.

SVRMGR > connect internal;

SVRMGR > startup mount RUN73;

SVRMGR > alter database rename file

> ‘/ ora13/orarun/document.dbf’

> ‘/ ora12/orarun/document.dbf’;

----4. 啟動實例.

SVRMGR > alter database open;

----(huangfutong@china.com)

標簽: Oracle 數據庫
相關文章:
主站蜘蛛池模板: 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 茶叶百科网-茶叶知识与茶文化探讨分享平台| 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 电动液压篮球架_圆管地埋式篮球架_移动平箱篮球架-强森体育 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | CNC机加工-数控加工-精密零件加工-ISO认证厂家-鑫创盟 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 方源木业官网-四川木门-全国木门专业品牌 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 防爆电机_ybx3系列电机_河南省南洋防爆电机有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 单锥双螺旋混合机_双螺旋锥形混合机-无锡新洋设备科技有限公司 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 |