当前位置:首页 » 存储配置 » 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的服务,就好了。

热点内容
linux网卡设置网关 发布:2024-09-21 01:34:52 浏览:991
电脑虚拟缓存 发布:2024-09-21 01:24:11 浏览:98
ava编译器怎么样 发布:2024-09-21 01:22:36 浏览:655
国家反诈中心app登录密码是什么 发布:2024-09-21 01:06:42 浏览:138
华为云服务器公网ip 发布:2024-09-21 01:06:31 浏览:346
web服务器面板搭建 发布:2024-09-21 00:44:23 浏览:543
ubuntu交叉编译链 发布:2024-09-21 00:39:36 浏览:14
优酷缓存视频导出 发布:2024-09-21 00:31:37 浏览:874
有线电视的二级密码是多少 发布:2024-09-21 00:31:28 浏览:779
安卓i管家在哪里 发布:2024-09-21 00:29:05 浏览:692