當前位置:首頁 » 存儲配置 » oracle備份存儲過程

oracle備份存儲過程

發布時間: 2022-05-21 05:19:09

『壹』 oracle 存儲過程備份整個資料庫

exp username/password@dbname file=d:\db.dmp log=d:\db.log
username和password 是你的用戶名和密碼
dbname是你要備份的資料庫名
file後是你備份的文件存放的路徑 db.dmp是備份獲得的資料庫文件
db.log是日誌文件

如果你要備份的資料庫很大的話還有另一個方法就是使用sqluldr2工具導出資料庫,不過這個稍微麻煩一些,如果還有疑問,再問吧

『貳』 如何備份oracle存儲過程

拷貝出來粘貼到一個文本文件
然後
create PROCEDURE 新存儲過程名
下邊的內容不變




就行了

是的,直接出來就行,也可以起個別名備份到資料庫上,也不是很麻煩

『叄』 如何備份oracle的存儲過程

拷貝出來粘貼到一個文本文件
然後
create
PROCEDURE

存儲過程

下邊的內容不變



就行了
是的,直接出來就行,也可以起個別名備份到資料庫上,也不是很麻煩

『肆』 Oracle 觸發器和存儲過程需要單獨備份嗎

看你具體需求了。無論是觸發器還是存儲過程,都是資料庫的一個對象,所以你可以備份在一起,也可以分開。都可以的。

『伍』 Oracle怎麼導出存儲過程

1、首先登錄到資料庫中,點擊右上角有個工具欄,點擊工具欄上的tools。

『陸』 oracle 通過job數據備份的存儲過程誰幫忙講解一下都什麼意思。

CREATE OR REPLACE PROCEDURE P_BACKUP_SQL AS -- 創建存儲過程
V_INPUT VARCHAR2(32767); --說明:這三行BEGIN前的是聲明變數
V_OUTPUT VARCHAR2(32767);
V_OUT NUMBER;
BEGIN --將命令腳本保存到V_INPUT變數中
V_INPUT := 'RUN -- 運行。。
{ -- 下面三行是分配通道,類型是磁碟(如果是磁帶則為type tape,format後是格式)
ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT ''/data/backup/member/%U'';
ALLOCATE CHANNEL C2 DEVICE TYPE DISK FORMAT ''/data/backup/member/%U'';
ALLOCATE CHANNEL C3 DEVICE TYPE DISK FORMAT ''/data/backup/member/%U'';
BACKUP DATABASE; --備份資料庫
}'; --腳本結束,以上內容保存在V_INPUT變數中
DBMS_PIPE.PACK_MESSAGE(V_INPUT); -- 調用DBMS_PIPE包管道通信,將V_INPUT中命令壓入管道消息(隊列)中
V_OUT := DBMS_PIPE.SEND_MESSAGE('ORA$RMAN_PJOB_IN'); --調用SEND_MESSAGE的ORA$RMAN_PJOB_IN是變數,將剛壓入的傳送給管道並執行ORA$RMAN_PJOB_IN中變數,消息傳送的結果保存到V_OUT變數中
COMMIT;
V_OUT := 0; -- V_OUT變數賦值為0

WHILE (V_OUT = 0) LOOP -- 當V_OUT為0時執行循環
V_OUT := DBMS_PIPE.RECEIVE_MESSAGE('ORA$RMAN_PJOB_OUT', 3600); -- 接收管道命令的消息,接收結果保存到V_OUT中
IF V_OUT = 0 THEN
DBMS_PIPE.UNPACK_MESSAGE(V_OUTPUT); -- 釋放管道命令的消息,結果保存到V_OUTPUT
INSERT INTO BACKUP_LOG (END_DATE, OUTPUT_LOG) VALUES (SYSDATE, SUBSTRB(V_OUTPUT, 1, 4000)); -- 將管道命令結果保存到BACKUP_LOG表中
END IF;
END LOOP;
COMMIT;
END;

『柒』 Oracle存儲過程及舉例(幾種參數情況的存儲

create table TESTTABLE
(
id1 VARCHAR2(12),
name VARCHAR2(32)
)
select t.id1,t.name from TESTTABLE t
insert into TESTTABLE (ID1, NAME)
values ('1', 'zhangsan');

insert into TESTTABLE (ID1, NAME)
values ('2', 'lisi');

insert into TESTTABLE (ID1, NAME)
values ('3', 'wangwu');

insert into TESTTABLE (ID1, NAME)
values ('4', 'xiaoliu');

insert into TESTTABLE (ID1, NAME)
values ('5', 'laowu');
---創建存儲過程
create or replace procere test_count
as
v_total number(1);
begin
select count(*) into v_total from TESTTABLE;
DBMS_OUTPUT.put_line('總人數:'||v_total);
end;
--准備
--線對scott解鎖:alter user scott account unlock;
--應為存儲過程是在scott用戶下。還要給scott賦予密碼
---alter user scott identified by tiger;
---去命令下執行
EXECUTE test_count;
----在ql/spl中的sql中執行
begin
-- Call the procere
test_count;
end;

create or replace procere TEST_LIST
AS
---是用游標
CURSOR test_cursor IS select t.id1,t.name from TESTTABLE t;
begin
for Test_record IN test_cursor loop---遍歷游標,在列印出來
DBMS_OUTPUT.put_line(Test_record.id1||Test_record.name);
END LOOP;
test_count;--同時執行另外一個存儲過程(TEST_LIST中包含存儲過程test_count)
end;
-----執行存儲過程TEST_LIST
begin
TEST_LIST;
END;
---存儲過程的參數
---IN 定義一個輸入參數變數,用於傳遞參數給存儲過程
--OUT 定義一個輸出參數變數,用於從存儲過程獲取數據
---IN OUT 定義一個輸入、輸出參數變數,兼有以上兩者的功能
--這三種參數只能說明類型,不需要說明具體長度 比如 varchar2(12),defaul 可以不寫,但是作為一個程序員最好還是寫上。

---創建有參數的存儲過程
create or replace procere test_param(p_id1 in VARCHAR2 default '0')
as v_name varchar2(32);
begin
select t.name into v_name from TESTTABLE t where t.id1=p_id1;
DBMS_OUTPUT.put_line('name:'||v_name);
end;
----執行存儲過程
begin
test_param('1');
end;

default '0'

---創建有參數的存儲過程
create or replace procere test_paramout(v_name OUT VARCHAR2 )
as
begin
select name into v_name from TESTTABLE where id1='1';
DBMS_OUTPUT.put_line('name:'||v_name);
end;
----執行存儲過程
DECLARE
v_name VARCHAR2(32);
BEGIN
test_paramout(v_name);
DBMS_OUTPUT.PUT_LINE('name:'||v_name);
END;
-------IN OUT
---創建存儲過程
create or replace procere test_paramINOUT(p_phonenumber in out varchar2)
as
begin
p_phonenumber:='0571-'||p_phonenumber;
end;

----
DECLARE
p_phonenumber VARCHAR2(32);
BEGIN
p_phonenumber:='26731092';
test_paramINOUT(p_phonenumber);
DBMS_OUTPUT.PUT_LINE('新的電話號碼:'||p_phonenumber);
END;
-----sql命令下,查詢當前用戶的存儲過程或函數的源代碼,
-----可以通過對USER_SOURCE數據字典視圖的查詢得到。USER_SOURCE的結構如下:

SQL> DESCRIBE USER_SOURCE ;
Name Type Nullable Default Comments

---- -------------- -------- -------
-------------------------------------------------------------------------------------------------------------
NAME VARCHAR2(30) Y Name of the object

TYPE VARCHAR2(12) Y Type of the object: "TYPE", "TYPE BODY", "PROCEDURE", "FUNCTION",
"PACKAGE", "PACKAGE BODY" or "JAVA SOURCE"
LINE NUMBER Y Line number of this line of
source

TEXT VARCHAR2(4000) Y Source text

SQL>
---查詢出存儲過程的定義語句
select text from user_source WHERE NAME='TEST_COUNT';
----查詢存儲過程test_paramINOUT的參數
SQL> DESCRIBE test_paramINOUT;
Parameter Type Mode Default?
------------- -------- ------ --------
P_PHONENUMBER VARCHAR2 IN OUT
SQL>
---查看當前的存儲過程的狀態是否正確,
---VALID為正確,INVALID表示存儲過程無效或需要重新編譯
SELECT STATUS FROM USER_OBJECTS WHERE OBJECT_NAME='TEST_COUNT';
-----如果要檢查存儲過程或函數的依賴性,可以通過查詢數據字典USER_DENPENDENCIES來確定,該表結構如下:
SQL> DESCRIBE USER_DEPENDENCIES;
Name Type Nullable Default Comments
-------------------- ------------- -------- ------- ----------------------------------------------------------
NAME VARCHAR2(30) Name of the object
TYPE VARCHAR2(17) Y Type of the object
REFERENCED_OWNER VARCHAR2(30) Y Owner of referenced object (remote owner if remote object)
REFERENCED_NAME VARCHAR2(64) Y Name of referenced object
REFERENCED_TYPE VARCHAR2(17) Y Type of referenced object
REFERENCED_LINK_NAME VARCHAR2(128) Y Name of dblink if this is a remote object
SCHEMAID NUMBER Y
DEPENDENCY_TYPE VARCHAR2(4) Y
SQL>
---查詢存儲過程TEST_COUNT的依賴關系
SELECT REFERENCED_NAME,REFERENCED_TYPE FROM USER_DEPENDENCIES WHERE NAME='TEST_COUNT';

『捌』 oracle在做資料庫備份時存儲過程會一起備份嗎

會的。
按用戶做邏輯備份,會備份用戶的所有對象;
物理備份表空間或者資料庫,更會備份所有的對象。

『玖』 Oracle資料庫的存儲過程怎麼寫

1 CREATE OR REPLACE PROCEDURE 存儲過程名
2 IS
3 BEGIN
4 NULL;
5 END;

行1:
CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle資料庫去創建一個叫做skeleton存儲過程, 如果存在就覆蓋它;
行2:
IS關鍵詞表明後面將跟隨一個PL/SQL體。
行3:
BEGIN關鍵詞表明PL/SQL體的開始。
行4:
NULL PL/SQL語句表明什麼事都不做,這句不能刪去,因為PL/SQL體中至少需要有一句;
行5:
END關鍵詞表明PL/SQL體的結束.
存儲過程創建語法:
create or replace procere 存儲過程名(param1 in type,param2 out type)
as
變數1 類型(值范圍); --vs_msgVARCHAR2(4000);
變數2 類型(值范圍);
Begin
Select count(*) into 變數1 from 表A where列名=param1;

If (判斷條件) then
Select 列名 into 變數2 from 表A where列名=param1;
Dbms_output。Put_line(『列印信息』);
Elsif (判斷條件) then
Dbms_output。Put_line(『列印信息』);
Else
Raise 異常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
End;

『拾』 Oracle備份問題:Oracle如何完整備份,包括現有的存儲過程及視圖,表,記錄等全部信息

最簡單的完整備份:
停掉Oracle的服務,然後把數據文件拷貝一個備份,再重新啟動Oracle的服務,就好了。

熱點內容
前海開源新經濟靈活配置混合是什麼板塊 發布:2024-11-15 07:45:33 瀏覽:556
數據結構基本演算法 發布:2024-11-15 07:45:09 瀏覽:289
安卓怎麼調60幀和平精英 發布:2024-11-15 07:28:58 瀏覽:733
404跳轉php 發布:2024-11-15 07:28:56 瀏覽:674
蘋果緩存視頻在哪裡 發布:2024-11-15 07:23:31 瀏覽:921
車解壓密碼 發布:2024-11-15 07:23:30 瀏覽:87
linux編譯錯誤 發布:2024-11-15 07:16:14 瀏覽:540
水仙花編譯題 發布:2024-11-15 07:16:12 瀏覽:478
java編譯器中文版 發布:2024-11-15 07:11:56 瀏覽:248
伺服器請求慢怎麼排查 發布:2024-11-15 06:55:35 瀏覽:321