自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)經(jīng)驗(yàn)淺談

數(shù)據(jù)庫(kù) Oracle
Oracle數(shù)據(jù)庫(kù)是甲骨文公司的一款關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。到目前仍在數(shù)據(jù)庫(kù)市場(chǎng)上占有主要份額。Oracle數(shù)據(jù)庫(kù)憑借著自身的強(qiáng)大功能性,贏得了廣大用用戶(hù)的芳心。

導(dǎo)讀:Oracle數(shù)據(jù)庫(kù)作為大型數(shù)據(jù)庫(kù)管理系統(tǒng),近年來(lái)一直占有世界上高端數(shù)據(jù)庫(kù)的***份額,其強(qiáng)大而完善的數(shù)據(jù)庫(kù)管理功能,以及ORACLE公司推陳出新的不斷努力,一直成為IT業(yè)界矚目的焦點(diǎn)。嶺澳核電站的數(shù)據(jù)庫(kù)平臺(tái)采用了ORACLE7.3作為后端平臺(tái),前端選擇了ORACLE公司的DEVELOPER 2000 及DESIGNER 2000作為開(kāi)發(fā)工具,采用了目前流行的CLIENT/SERVER模式。下文中是開(kāi)發(fā)人員在平時(shí)的開(kāi)發(fā)工作中總結(jié)出的經(jīng)驗(yàn),現(xiàn)在拿出來(lái)供大家參考學(xué)習(xí)。

一. ORACLE SQL PLUS 使用技巧:

----①查找重復(fù)記錄:

[pre]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);

[/pre]

----執(zhí)行上述SQL語(yǔ)句后就可以顯示所有DRAWING和DSNO相同且重復(fù)的記錄。

----刪除重復(fù)記錄:

[pre]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);

[/pre]

----執(zhí)行上述SQL語(yǔ)句后就可以刪除所有DRAWING和DSNO相同且重復(fù)的記錄。

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

----當(dāng)在把數(shù)據(jù)庫(kù)倒入到新的服務(wù)器上后(數(shù)據(jù)庫(kù)重建),需要將視圖重新編譯一遍,因?yàn)樵摫砜臻g視圖到其它表空間的表的連接會(huì)出現(xiàn)問(wèn)題,可以利用PL/SQL的語(yǔ)言特性,快速編譯。

[pre]SQL >SPOOL ON.SQL

SQL >SELECT ‘ALTER VIEW ‘||TNAME||’COMPILE;’ FROM TAB;

SQL >SPOOL OFF

[/pre]

然后執(zhí)行ON.SQL即可。SQL >@ON.SQL

當(dāng)然,授權(quán)和創(chuàng)建同義詞也可以快速進(jìn)行,如:

[pre]SQL >SELECT ‘GRANT SELECT ON ’

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

SQL >SELECT ‘CREATE SYNONYM

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

[/pre]

③ 用外聯(lián)接提高表連接的查詢(xún)速度

在作表連接(常用于視圖)時(shí),常使用以下方法來(lái)查詢(xún)數(shù)據(jù):

[pre]SELECT PAY_NO, PROJECT_NAME

FROM A

WHERE A.PAY_NO NOT IN (SELECT PAY_

NO FROM B WHERE VALUE >=120000);

[/pre]

----但是若表A有10000條記錄,表B有10000條記錄,則要用掉30分鐘才能查完,主要因?yàn)镹OT IN要進(jìn)行一條一條的比較,共需要10000*10000次比較后,才能得到結(jié)果。該用外聯(lián)接后,可以縮短到1分左右的時(shí)間。

----⑤ 怎樣在數(shù)據(jù)庫(kù)觸發(fā)器中使用列的新值與舊值

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

#p#

二.ORACLE DEVELOPER 2000使用技巧:

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

----DEVELOPER2000中FMX默認(rèn)題頭為:Developer/2000 Forms Runtime for Windows 95 / NT 你可以改為自己定義的標(biāo)題,

----1. 在Form級(jí)觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCE

----2. 在此觸發(fā)器中寫(xiě)如下代碼:

[pre]set_window_property(FORMS_MDI_WINDOW,TITLE,'POINT

SYSTEM 歡迎使用');

[/pre]

 

----② 如何隱藏菜單中的window選項(xiàng):

----在創(chuàng)建自己的菜單時(shí),***選項(xiàng)總有window項(xiàng),下面介紹如何去掉它,

----1. 創(chuàng)建一個(gè)Menu

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

----3. 設(shè)置該Item屬性如下:

----Menu Item Type:Magic

Command Type:Null

Magic Item:Window

Lable:為空

----③ 怎樣創(chuàng)建動(dòng)態(tài)下拉列表List

----Developer 2000 中的列表是通過(guò)設(shè)置相關(guān)屬性而完成數(shù)據(jù)項(xiàng)的列表設(shè)置的,但那只是靜態(tài)的,有時(shí)你想讓某項(xiàng)成為動(dòng)態(tài)的列表,隨輸入數(shù)據(jù)的改變而改變,就需要?jiǎng)邮秩ゾ巶€(gè)小程序。下面詳細(xì)介紹怎樣去做:

----有塊EBOP_CABLE_ACCOUNT,下有SPECIFICATION數(shù)據(jù)項(xiàng),當(dāng)一進(jìn)入該模塊時(shí),就將SPECIFICATION項(xiàng)在數(shù)據(jù)庫(kù)中存儲(chǔ)的值動(dòng)態(tài)顯示出來(lái),先在Form4.5中建立一個(gè)PRCEDURE,命名為DYN_LIST:

然后在FORM的WHEN-NEW

-FORM-INSTANCE觸發(fā)子中加入一行:

DYN_LIST;

----這樣一進(jìn)入該FMX,就會(huì)動(dòng)態(tài)刷新該列表。除此之外,SPECIFICATION數(shù)據(jù)項(xiàng)改為列表項(xiàng)。

----④ 當(dāng)顯示多條記錄且數(shù)據(jù)項(xiàng)特別多時(shí),如何組織錄入及顯示界面:

---- PRN代碼及設(shè)備代碼在畫(huà)布1(CONTENT型)上,其它數(shù)據(jù)項(xiàng)在畫(huà)布2(STACK型)上,所有數(shù)據(jù)項(xiàng)為一個(gè)表的列或一個(gè)塊的數(shù)據(jù)項(xiàng)。在拉動(dòng)水平滾動(dòng)條時(shí)或用TAB或敲回車(chē)鍵時(shí),將看到全部數(shù)據(jù)項(xiàng)。這種排布方法適用于數(shù)據(jù)項(xiàng)特別多又想顯示多條記錄時(shí)用。主要制作順序?yàn)椋合冉蓚€(gè)畫(huà)布,畫(huà)布1(CONTENT型),畫(huà)布2(STACK型),然后建立塊,選畫(huà)布時(shí)用畫(huà)布1,這樣所有項(xiàng)都顯示在畫(huà)布1上,然后選中除PRN代碼及設(shè)備代碼之外的所有數(shù)據(jù)項(xiàng),選TOOLS菜單下的PROPERTIES選項(xiàng),將這些數(shù)據(jù)項(xiàng)的CANVAS屬性選為畫(huà)布2(STACK型),然后調(diào)整整體位置就可以了。

----⑤ 如何在FORM的受限觸發(fā)子中提交保存數(shù)據(jù)

----在FORM中很多觸發(fā)子是不能用COMMIT WORK語(yǔ)句的,當(dāng)你在該觸發(fā)子中使用了UPDATE,DELETE等操作并想立即存盤(pán)時(shí),就需要COMMIT WORK語(yǔ)句了。首先在服務(wù)器端建立DB_SQL_COMMIT這個(gè)過(guò)程。

----然后在FORM中該觸發(fā)子中調(diào)用過(guò)程DB_SQL_COMMIT;就可以了,當(dāng)然你可以根據(jù)自己需要將該過(guò)程加入?yún)?shù),這樣通過(guò)參數(shù)可以得到執(zhí)行DML語(yǔ)句的權(quán)限。

----⑥ 如何在FORM中實(shí)現(xiàn)某數(shù)據(jù)項(xiàng)自動(dòng)按記錄序號(hào)加一操作

----設(shè)塊名為VO,要操作的數(shù)據(jù)項(xiàng)為VO_ID,在該塊中建立塊級(jí)觸發(fā)子WHEN-CREATE- RECORD,加入如下代碼:

:VO_ID:=:System.Trigger_Record;

----這樣每當(dāng)生成新記錄時(shí)VO_ID就會(huì)自動(dòng)加一了。

----⑦ 如何在一個(gè)FORM中調(diào)用另一個(gè)FORM,或在一個(gè)塊中調(diào)用另一個(gè)塊時(shí)顯示特定的記錄有時(shí)用戶(hù)會(huì)要求在調(diào)用另一個(gè)FORM時(shí),只顯示相關(guān)的記錄,舉例如下,在一個(gè)FORM的塊中有一個(gè)按鈕,在按鈕觸發(fā)子中加入如下代碼:

[pre]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=''支架預(yù)制''');

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

END;

[/pre]

----其中EM_NAME,EM_PROJECT_NAME為本FORM某塊的數(shù)據(jù)項(xiàng),PAYMENT為要調(diào)用的FORM模塊。這樣通過(guò)傳遞參數(shù)列表就可以得到想要的結(jié)果。在FORM. PAYMENT.FMB中,建立一參數(shù)THE_WHERE,CHAR型,長(zhǎng)1000,然后在PAYMENT.FMB中建立FORM級(jí)觸發(fā)子WHEN-NEW-FORM-INSTANCE,在該觸發(fā)子中加入以下語(yǔ)句:

[pre] IF :PARAMETER.THE_WHERE IS NOT NULL THEN

SET_BLOCK_PROPERTY('PAYMENT',

DEFAULT_WHERE,:PARAMETER.THE_WHERE);

END IF;

[/pre]

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

----⑧ 在FORM中當(dāng)有主從塊時(shí),連續(xù)輸入記錄如何避免被不斷的提示保存:

----每輸入一條主記錄和若干條該主記錄的從記錄后,此時(shí)再導(dǎo)航到主塊輸下一條記錄,F(xiàn)ORM就會(huì)提示你是否要保存記錄,而你并不希望FORM提示,讓它自動(dòng)保存,此時(shí)你可以到Program Units中找到過(guò)程PROCEDURE Clear_All_Master_Details,然后在這個(gè)過(guò)程中找到語(yǔ)句

#p#

三.數(shù)據(jù)庫(kù)管理

----① 在刪除一個(gè)表中的全部數(shù)據(jù)時(shí),須使用TRUNCATE TABLE 表名;因?yàn)橛肈ROP TABLE,DELETE * FROM 表名時(shí),TABLESPACE表空間該表的占用空間并未釋放,反復(fù)幾次DROP,DELETE操作后,該TABLESPACE上百兆的空間就被耗光了。

----② 數(shù)據(jù)庫(kù)文件的移動(dòng)方法

----當(dāng)想將數(shù)據(jù)庫(kù)文件移動(dòng)到另外一個(gè)目錄下時(shí),可以用ALTER DATABASE命令來(lái)移動(dòng)(比ALTER TABLESPACE適用性強(qiáng)):

----1. 使用SERVER MANAGER關(guān)閉實(shí)例.

[pre]SVRMGR > connect internal;

SVRMGR > shutdown;[/pre][pre]SVRMGR >exit;[/pre]

----2. 使用操作系統(tǒng)命令來(lái)移動(dòng)數(shù)據(jù)庫(kù)文件位置(假設(shè)這里操作系統(tǒng)為SOLARIS 2.6). 在UNIX中用 mv命令可以把文件移動(dòng)到新的位置,

[pre]#mv /ora13/orarun/document.dbf /ora12/orarun[/pre]

----3. 裝載數(shù)據(jù)庫(kù)并用alter database命令來(lái)改變數(shù)據(jù)庫(kù)中的文件名.

[pre]SVRMGR > connect internal;

SVRMGR > startup mount RUN73;SVRMGR > alter database rename file

> ‘/ ora13/orarun/document.dbf’

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

----4. 啟動(dòng)實(shí)例.

SVRMGR > alter database open;

----([email]huangfutong@china.com[/email])

[/pre]

這些就是我要為大家介紹的關(guān)于Oracle數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)的經(jīng)驗(yàn)的全部?jī)?nèi)容,更多的經(jīng)驗(yàn)還需要大家在以后的工作中區(qū)發(fā)現(xiàn)總結(jié),希望上文中講到的內(nèi)容對(duì)大家能夠有所幫助。

【編輯推薦】

  1. 三招輕松確定Oracle數(shù)據(jù)庫(kù)表中重復(fù)的記錄
  2. 一個(gè)進(jìn)入Oracle數(shù)據(jù)庫(kù)用戶(hù)的小訣竅
  3. Oracle數(shù)據(jù)庫(kù)中為什么會(huì)產(chǎn)生回滾與前退
  4. Oracle數(shù)據(jù)庫(kù)共享連接和專(zhuān)用連接方式比較

 

責(zé)任編輯:迎迎 來(lái)源: 賽迪網(wǎng)
相關(guān)推薦

2009-04-16 09:08:21

Oracle開(kāi)發(fā)經(jīng)驗(yàn)

2010-04-14 13:25:15

Oracle數(shù)據(jù)

2011-02-28 17:12:20

Oracle數(shù)據(jù)庫(kù)

2009-02-03 08:58:13

SQL*Net配置網(wǎng)絡(luò)應(yīng)用

2010-04-20 10:41:49

Oracle數(shù)據(jù)庫(kù)

2009-10-13 09:43:43

Oracle數(shù)據(jù)庫(kù)備份

2011-05-17 15:02:15

ORACLE數(shù)據(jù)庫(kù)備份

2009-04-13 10:06:58

Oracle安全管理

2011-08-02 13:37:17

2011-05-18 09:39:19

Oracle數(shù)據(jù)庫(kù)性能優(yōu)化

2020-08-31 07:00:00

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)同步

2009-09-02 18:52:38

Oracle數(shù)據(jù)庫(kù)并行

2011-07-27 08:56:32

Oracle數(shù)據(jù)庫(kù)綁定變量軟解析

2009-05-19 10:10:01

Oracle時(shí)間加減時(shí)間操作

2018-05-17 23:07:12

2011-06-07 17:14:15

關(guān)系型數(shù)據(jù)庫(kù)壓縮技術(shù)

2018-07-17 11:20:01

數(shù)據(jù)庫(kù)日常管理

2009-07-15 16:23:54

Java JDBC

2018-07-03 15:05:34

數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)提取

2010-04-02 18:22:33

Sun Oracle
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)