oracle
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為瑪曲等服務建站,瑪曲等地企業(yè),進行企業(yè)商務咨詢服務。為瑪曲企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
存儲過程的基本語法
1.基本結構
CREATE
OR
REPLACE
PROCEDURE
存儲過程名字
(
參數(shù)1
IN
NUMBER,
參數(shù)2
IN
NUMBER
)
IS
變量1
INTEGER
:=0;
變量2
DATE;
BEGIN
END
存儲過程名字
2.SELECT
INTO
STATEMENT
將select查詢的結果存入到變量中,可以同時將多個列存儲多個變量中,必須有一條
記錄,否則拋出異常(如果沒有記錄拋出NO_DATA_FOUND)
例子:
BEGIN
SELECT
col1,col2
into
變量1,變量2
FROM
typestruct
where
xxx;
EXCEPTION
WHEN
NO_DATA_FOUND
THEN
xxxx;
END;
...
3.IF
判斷
IF
V_TEST=1
THEN
BEGIN
do
something
END;
END
IF;
4.while
循環(huán)
WHILE
V_TEST=1
LOOP
BEGIN
XXXX
END;
END
LOOP;
5.變量賦值
V_TEST
:=
123;
6.用for
in
使用cursor
...
IS
CURSOR
cur
IS
SELECT
*
FROM
xxx;
BEGIN
FOR
cur_result
in
cur
LOOP
BEGIN
V_SUM
:=cur_result.列名1+cur_result.列名2
END;
END
LOOP;
END;
7.帶參數(shù)的cursor
CURSOR
C_USER(C_ID
NUMBER)
IS
SELECT
NAME
FROM
USER
WHERE
TYPEID=C_ID;
OPEN
C_USER(變量值);
LOOP
FETCH
C_USER
INTO
V_NAME;
EXIT
FETCH
C_USER%NOTFOUND;
do
something
END
LOOP;
CLOSE
C_USER;
8.用pl/sql
developer
debug
連接數(shù)據(jù)庫后建立一個Test
WINDOW
在窗口輸入調用SP的代碼,F9開始debug,CTRL+N單步調試
Oracle數(shù)據(jù)庫的三種標準的備份方法:
1.導出/導入(EXP/IMP)。
2.熱備份。
3.冷備份。
注釋:導出備件是一種邏輯備份,冷備份和熱備份是物理備份。
一、導出/導入(Export/Import)
利用Export可將數(shù)據(jù)從數(shù)據(jù)庫中提取出來,利用Import則可將提取出來的數(shù)據(jù)送回到Oracle數(shù)據(jù)庫中去。
1、簡單導出數(shù)據(jù)(Export)和導入數(shù)據(jù)(Import)
Oracle支持三種方式類型的輸出:
(1)、表方式(T方式),將指定表的數(shù)據(jù)導出。
(2)、用戶方式(U方式),將指定用戶的所有對象及數(shù)據(jù)導出。
(3)、全庫方式(Full方式),瘵數(shù)據(jù)庫中的所有對象導出。
數(shù)據(jù)導入(Import)的過程是數(shù)據(jù)導出(Export)的逆過程,分別將數(shù)據(jù)文件導入數(shù)據(jù)庫和將數(shù)據(jù)庫數(shù)據(jù)導出到數(shù)據(jù)文件。
2、增量導出/導入
增量導出是一種常用的數(shù)據(jù)備份方法,它只能對整個數(shù)據(jù)庫來實施,并且必須作為SYSTEM來導出。在進行此種導出時,系統(tǒng)不要求回答任何問題。導出文件名缺省為export.dmp,如果不希望自己的輸出文件定名為export.dmp,必須在命令行中指出要用的文件名。
增量導出包括三種類型:
(1)、“完全”增量導出(Complete)
即備份三個數(shù)據(jù)庫,比如:
expsystem/managerinctype=completefile=040731.dmp
(2)、“增量型”增量導出
備份上一次備份后改變的數(shù)據(jù),比如:
expsystem/managerinctype=incrementalfile=040731.dmp
(3)、“累積型”增量導出
累計型導出方式是導出自上次“完全”導出之后數(shù)據(jù)庫中變化了的信息。比如:
expsystem/managerinctype=cumulativefile=040731.dmp
數(shù)據(jù)庫管理員可以排定一個備份日程表,用數(shù)據(jù)導出的三個不同方式合理高效的完成。
比如數(shù)據(jù)庫的被封任務可以做如下安排:
星期一:完全備份(A)
星期二:增量導出(B)
星期三:增量導出(C)
星期四:增量導出(D)
星期五:累計導出(E)
星期六:增量導出(F)
星期日:增量導出(G)
如果在星期日,數(shù)據(jù)庫遭到意外破壞,數(shù)據(jù)庫管理員可按一下步驟來回復數(shù)據(jù)庫:
第一步:用命令CREATEDATABASE重新生成數(shù)據(jù)庫結構;
第二步:創(chuàng)建一個足夠大的附加回滾。
第三步:完全增量導入A:
impsystem/managerinctype=RESTOREFULL=yFILE=A
第四步:累計增量導入E:
impsystem/managerinctype=RESTOREFULL=YFILE=E
第五步:最近增量導入F:
impsystem/managerinctype=RESTOREFULL=YFILE=F
二、冷備份
冷備份發(fā)生在數(shù)據(jù)庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數(shù)據(jù)庫。冷備份時將關鍵性文件拷貝到另外的位置的一種說法。對于備份Oracle信息而言,冷備份時最快和最安全的方法。冷備份的優(yōu)點是:
1、是非??焖俚膫浞莘椒ǎㄖ恍杩轿募?/p>
2、容易歸檔(簡單拷貝即可)
3、容易恢復到某個時間點上(只需將文件再拷貝回去)
4、能與歸檔方法相結合,做數(shù)據(jù)庫“最佳狀態(tài)”的恢復。
5、低度維護,高度安全。
但冷備份也有如下不足:
1、單獨使用時,只能提供到“某一時間點上”的恢復。
2、再實施備份的全過程中,數(shù)據(jù)庫必須要作備份而不能作其他工作。也就是說,在冷備份過程中,數(shù)據(jù)庫必須是關閉狀態(tài)。
3、若磁盤空間有限,只能拷貝到磁帶等其他外部存儲設備上,速度會很慢。
4、不能按表或按用戶恢復。
如果可能的話(主要看效率),應將信息備份到磁盤上,然后啟動數(shù)據(jù)庫(使用戶可以工作)并將備份的信息拷貝到磁帶上(拷貝的同時,數(shù)據(jù)庫也可以工作)。冷備份中必須拷貝的文件包括:
1、所有數(shù)據(jù)文件
2、所有控制文件
3、所有聯(lián)機REDOLOG文件
4、Init.ora文件(可選)
值得注意的使冷備份必須在數(shù)據(jù)庫關閉的情況下進行,當數(shù)據(jù)庫處于打開狀態(tài)時,執(zhí)行數(shù)據(jù)庫文件系統(tǒng)備份是無效的。
下面是作冷備份的完整例子。
(1)關閉數(shù)據(jù)庫
sqlplus/nolog
sqlconnect/assysdba
sqlshutdownnormal;
(2)用拷貝命令備份全部的時間文件、重做日志文件、控制文件、初始化參數(shù)文件
sqlcpfilebackupdirectory
(3)重啟Oracle數(shù)據(jù)庫
sqlstartup
三、熱備份
熱備份是在數(shù)據(jù)庫運行的情況下,采用archivelogmode方式備份數(shù)據(jù)庫的方法。所以,如果你有昨天夜里的一個冷備份而且又有今天的熱備份文件,在發(fā)生問題時,就可以利用這些資料恢復更多的信息。熱備份要求數(shù)據(jù)庫在Archivelog方式下操作,并需要大量的檔案空間。一旦數(shù)據(jù)庫運行在archivelog狀態(tài)下,就可以做備份了。熱備份的命令文件由三部分組成:
1.數(shù)據(jù)文件一個表空間一個表空間的備份。
(1)設置表空間為備份狀態(tài)
(2)備份表空間的數(shù)據(jù)文件
(3)回復表空間為正常狀態(tài)
2.備份歸檔log文件
(1)臨時停止歸檔進程
(2)log下那些在archiveredelog目標目錄中的文件
(3)重新啟動archive進程
(4)備份歸檔的redolog文件
3.用alterdatabasebachupcontrolfile命令來備份控制文件
熱備份的優(yōu)點是:
1.可在表空間或數(shù)據(jù)庫文件級備份,備份的時間短。
2.備份時數(shù)據(jù)庫仍可使用。
3.可達到秒級恢復(恢復到某一時間點上)。
4.可對幾乎所有數(shù)據(jù)庫實體做恢復
5.恢復是快速的,在大多數(shù)情況下愛數(shù)據(jù)庫仍工作時恢復。
熱備份的不足之處:
1.不能出錯,否則后果不堪設想。
2.假如熱備份不成功,所得結果則不能用于時間點的恢復。
3.因為難于維護,所以需要特別仔細小心,不允許在操作時半途而廢。
關于Oracle數(shù)據(jù)庫的備份方式就為大家講解到這里,以后大家需要進行數(shù)據(jù)庫備份工作時可以參照上文中講解的,從上文中任選一種,就可以完成Oracle數(shù)據(jù)庫的備份,希望上文中涉及到的內容對大家能夠有所幫助。
oracle中執(zhí)行了insert、update、delete這三個DML語句后,結果在未提交前實際上是保存在undo空間內,只有提交之后,才會真正寫入到表中。所以會發(fā)生你的問題。在未做提交前,其他人是無法select到你處理的數(shù)據(jù)的,看到的是未處理前的數(shù)據(jù)。在一個用戶下update了表,但沒有commit的時候, 用另一個用戶登錄查看該表應該是沒有修改前的? 注意上面寫的,用另一個用戶登錄 估計你是update后,直接又運行select了吧 在同一個窗口,運行的sql是屬于同一個事務的,所以雖然沒有提交,但是看見了也是改后的數(shù)據(jù)。
Oracle公司是全球最大的信息管理軟件及服務供應商,成立于1977年,總部位于美國加州 Redwood shore。2000財年(99年6月到2000年5月)營業(yè)額達101億美元,再創(chuàng)Oracle公司銷售額歷史新高,比去年增長了13億美元,盈利增長61%,達到21億美元。Oracle公司現(xiàn)有員工超過三萬六千人,服務遍及全球145個國家。Oracle公司擁有世界上唯一一個全面集成的電子商務套件Oracle Applications R11i,它能夠自動化企業(yè)經營管理過程中的各個方面,深受用戶的青睞,促使Oracle應用軟件在2000財年第四季度的銷售額達4.47億美元,與SAP公司的同期應用軟件銷售額3.52億美元相比,多出近1億美元,這一事實表明,Oracle已經是世界最大的應用軟件供應商。
Oracle電子商務套件涵蓋了企業(yè)經營管理過程中的方方面面,雖然它在不同的方面分別面對不同的競爭對手,而Oracle電子商務解決方案的核心優(yōu)勢就在于它的集成性和完整性,用戶完全可以從Oracle公司獲得任何所需要的應用功能,更重要的是,它們具有一致的基于Internet技術的應用體系結構,而如果用戶想從其它廠商處獲得Oracle電子商務所提供的完整功能,不僅需要從多家廠商分別購買不同的應用,而且需要另請咨詢公司把這些不同的應用裝配起來,還必須確保它們能夠協(xié)同地工作。
先進的產品和高效率的企業(yè)運作,是Oracle公司利潤得以繼續(xù)增長的重要原因,一年前,Oracle公司確定了通過采用自身的Internet電子商務解決方案,實現(xiàn)每年節(jié)省10億美元企業(yè)日常運作費用的目標,這一數(shù)據(jù)相當于將年度利潤率提高10%。
sqlplus 中直接敲入存儲過程代碼(create or replace procedure ...), / 結束,\x0d\x0a如果代碼沒有錯誤,該過程就被保存到數(shù)據(jù)庫中。 \x0d\x0a可以用 exec 過程名 運行。\x0d\x0a\x0d\x0a如果是plsql developer之類的工具,那更簡單,編輯完存儲過程后,有運行按鈕,點擊即可。
先確認oracle服務器上oracle如下截圖中標紅的相關的服務是否已經正常啟動。
請點擊輸入圖片描述
要斷開數(shù)據(jù)庫的所有連接,如果數(shù)據(jù)庫中有正在連接客戶端,備份的時候可能會出現(xiàn)異常,比如PLSQL的連接先退出一下。
請點擊輸入圖片描述
在開始菜單中輸入“cmd”命令后回車,打開dos命令窗口,如下截圖1和2所示。
請點擊輸入圖片描述
請點擊輸入圖片描述
在cmd窗口中,輸入以下命令:
exp 用戶名/密碼@SID file=d:\xx.dmp owner=用戶名,按下回車鍵,界面如下截圖所示。
請點擊輸入圖片描述
導出的時間是根據(jù)數(shù)據(jù)庫的大小決定的,如果數(shù)據(jù)庫中表比較多,數(shù)據(jù)量比較大速度就會比較慢,請耐心等待。當數(shù)據(jù)完成導出之后,cmd窗口中會出現(xiàn)如下圖所示的提示語,這就表示已經完成了數(shù)據(jù)庫備份導出的動作。
請點擊輸入圖片描述
這時候在計算機中找到第四步中設定的文件保存路徑,如下截圖,你會發(fā)現(xiàn)多了一個dmp的文件,這個文件就是我們需要的備份文件了。
請點擊輸入圖片描述
可以在控制面板的管理工具中,找到任務計劃程序,設置一個定時任務,每天執(zhí)行一遍exp 用戶名/密碼@SID file=d:\xx.dmp owner=用戶名這個命令,這樣就能實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的定時備份了。
請點擊輸入圖片描述
請點擊輸入圖片描述
1、首先先確認oracle服務器上oracle中標紅的相關的服務是否已經正常啟動。
2、然后要把PLSQL關閉,讓連接先退出一下,確保斷開數(shù)據(jù)庫的所有連接,如果數(shù)據(jù)庫中有正在連接客戶端,備份的時候可能會出現(xiàn)異常。
3、接著打開cmd命令提示符窗口,輸入備份數(shù)據(jù)庫的命令,xp命令的后面跟用戶名和密碼,file是備份的路徑,owner則是數(shù)據(jù)庫的用戶名,按下回車鍵等待備份。
4、耐心等待。當數(shù)據(jù)完成導出之后,cmd窗口中會出現(xiàn)的提示語,這就表示已經完成了數(shù)據(jù)庫備份導出的動作。
5、這時候在計算機中找到第四步中設定的文件保存路徑,如下截圖,你會發(fā)現(xiàn)多了一個dmp的文件,這個文件就是我們需要的備份文件了。