ORACLE如何实现函数、包、存储过程的导入和导出

摘要:
1在cmd中使用exp导出为dmp格式。状态从红色变为黑色,表示导出成功。-˃Packagebody可以看到包体-˃在PL/SQL开发人员中选择存储过程,并且还会提示您是否是存储过程。MyDemo01:自定义存储过程的名称。带有参数的存储过程在传递参数时需要注意参数的一致性,并按顺序传递它们。

建 议可以用常规的检查,检查一下:数据字典信息/exp 导出结构检查

1.检查

SELECT * FROM ALL_SOURCE t WHERE T.OWNER = '要查询用户' AND t.TYPE = 'PACKAGE BODY'

select * from USER_SOURCE where type = 'PACKAGE'

2.exp 结构。检查方法如下:

http://blog.csdn.net/ideality_hunter/article/details/52087012

oracle怎么导出function和procedure,即函数和存储过程?

1通过在cmd中 使用exp,导出为dmp格 式。

2通过plsql工 具的Tools->export user objects,导出 为sql格式。状态由红变黑,表示导出成功了。

注 意不要导出owner、storage、privilege等。

3.关于存储过程加密也是一种可能。文档如下:

http://www.cnblogs.com/matrixworld/p/5446254.html

4.

请把procedure(HSDB_DB)发给我。

-> package 只可以到包的主体。

-> package bodies 可以看到包的bodys

->在PL/SQL developer 选择 存储过程,也会出现提示 是不是存储过程。

ORACLE如何实现函数、包、存储过程的导入和导出第1张

5.存储过程分析

https://www.cnblogs.com/dc-earl/articles/9260111.html

oracle存储过程(一):简单入门
 

一、定义

    存储过程是一组为了完成特定功能的SQL语句,经编译后存储在数据库中。

   点击查看优缺点。

二、存储过程简单入门

    第一个存储过程:打印hello word, my name is stored procedure内容

1
2
3
4
5
create or replace procedure myDemo01
as
begin
  dbms_output.put_line('hello word, my name is stored procedure');
end;

create or replace procedure:关键字用来创建或覆盖一个原有的存储过程。

myDemo01:自定义的存储过程的名字。
as:关键字。
    注:
        在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;

       在视图(VIEW)中只能用AS不能用IS;

       在游标(CURSOR)中只能用IS不能用AS。

begin:关键字。
dbms_output.put_line('hello word, my name is stored procedure'); 输出内容。
end;关键字。

    存储过程的调用

1
2
3
4
5
6
7
8
declare
begin
  myDemo01;
end;
 
begin
  myDemo01; --在此处也可使用myDemo01();完成存储过程的调用
end;
1
call myDemo01();--call 存储过程名可完成调用,注意括号不能少
1
2
3
4
SQL> set serveroutput on --可以再command命令窗口执行
SQL> exec mydemo01 --下面是输出结果
hello word, my name is stored procedure
PL/SQL procedure successfully completed

三种方式可以完成存储过程的调用,分别为声明declare关键字和不声明declare关键字;call和Commond窗口执行命令。执行的结果如下所示

ORACLE如何实现函数、包、存储过程的导入和导出第2张

第二个存储过程:变量声明,赋值

1
2
3
4
5
6
7
8
9
create or replace procedure myDemo02
as
name varchar(10);--声明变量,注意varchar需要指定长度
age int;
begin
  name:='xiaoming';--变量赋值
  age:=18;
  dbms_output.put_line('name='||name||', age='||age);--通过||符号达到连接字符串的功能
end;

第三个存储过程:带有参数的存储过程

1
2
3
4
5
6
7
8
9
create or replace procedure myDemo03(name in varchar,age in int)
as
begin
  dbms_output.put_line('name='||name||', age='||age);
end;
 
begin
  myDemo03('xiaoming',18);
end;

  在调用存储过程时,如果存储过程没有参数,调用时括号()可以不带。

        存储过程带参数需要注意参数的传递参数时的一致性,按顺序依次传递。

第四个存储过程:实参形参问题

1
2
3
4
5
6
7
8
9
10
11
12
13
create or replace procedure myDemo04(name in varchar,age in int)
as
begin
  dbms_output.put_line('name='||name||', age='||age);
end;
 
declare
 name varchar(10);
 age int;
begin
  name:='xiaoming';
  age:=18;
  myDemo04(name=>name,age=>18);--此时不能myDemo04(name=>name,18),不能完成调用。
1
end;

注;在调用存储过程时,=>前面的变量为存储过程的形参且必须于存储过程中定义的一致,而=>后的参数为实际参数。当然也不可以不定义变量保存实参

第五个存储过程:in,out参数问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
create or replace procedure myDemo05(name out varchar,age in int)
as
begin
       dbms_output.put_line('age='||age);
  select 'xiaoming' into name from dual;
end;
 
declare
 name varchar(10);
 age int;
begin
  myDemo05(name=>name,age=>10);
  dbms_output.put_line('name='||name);
end;

 注:in代表输入,out用于输出,参数默认类型是in类型。

第六个存储过程:异常问题,执行结果见下图

1
2
3
4
5
6
7
8
9
10
11
12
13
create or replace procedure mydemo0006
as
age int;
begin
  age:=10/0;
  dbms_output.put_line(age);
  exception when others   then
    dbms_output.put_line('error');
end;
 
begin
  mydemo0006();
end;

ORACLE如何实现函数、包、存储过程的导入和导出第3张

总结:简单学习oracle存储过程,在oracle存储过程(二)将对两种循环以及增删改查操作做进一步的认识。

作者: i孤独行者
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
 

免责声明:文章转载自《ORACLE如何实现函数、包、存储过程的导入和导出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python中urlretrieve函数Intellij IDEA Debug下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle非归档模式下的冷备份和恢复

查看归档的相关信息 SQL> archive log list数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 72当前日志序列 74 备份中常用的术语解释: 冷备份(脱机备份): 数据库处于关闭状态下所做的物理拷贝。数据库处于非归档模式下只能使用这种方法备份。 数据库全备份:备份...

数据安全:通过Oracle的基本函数实现简单加密脱敏函数

注我们获得更多精彩 作者 | 苏星开,云和恩墨南区交付技术顾问,曾服务过通信、能源生产、金融等行业客户,擅长 SQL 审核和优化,DataGuard 容灾等。  概述这里主要介绍两种操作简易的加密脱密函数,可能也是大家都比较常用。一个是内部 translate 函数,另外一个是利用 md5 算法创建的自定义函数。介绍这两个加密方法,主要还是在对一些...

oracle 在C# 中调用oracle的数据库时,出现引用库和当前客户端不兼容的问题解决方案

oracle 在C# 中调用oracle的数据库时,出现引用库和当前客户端不兼容的问题解决方案 解决方案 1、直接引用  Oracle.ManagedDataAccess.Client.dll动态库即可, 2、引用  Oracle.DataAccess.Client.dll动态库,但根目录下面要有这八个动态库才可以正常使用Oracle 数据库, (引用 O...

[转]ODAC 应用技巧 (一)使用 ODAC 的 Net 方式

原文地址:ODAC 应用技巧 (一)使用 ODAC 的 Net 方式 使用 ODAC 的 Net 方式 nxyc_twz@163.com 大多数应用程序使用 OCI 的ODAC 标准方式来连接 Oracle 数据库服务器。这是使用第三方开发语言设计 Oracle 应用程序最常用的方法。 所有的 OCI 接口都作为内部库来使用,使得编译生成的应用程序非常小...

利用dump函数理解oracle如何存储各种类型数据

1.dump函数介绍 1.1标准格式 DUMP(expr[,return_fmt[,start_position][,length]]) expr:需要dump的表达式 return_fmt:指返回参数的格式,有5种用法: 1)8:以8进制返回结果的值 2)10:以10进制返回结果的值(默认) 3)16:以16进制返回结果的值 4)17:以单字符的形式返回...

oracle 内置函数(一)数值函数

oracle内置函数主要分为四类: 数值函数 字符函数 日期函数 转换函数 本分析数值函数: 一、四舍五入round round(double,m) double:我们要处理的小数。 m: default:在不填写的情况下默认为0,也就是取整; m>0:四舍五入小数点后m位; m<0:四舍五入小数点前m位。 example: 二、取整 c...