Oralce的图形化界面----plsql developer涉及到的知识点总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37169103/article/details/82883394

先截个屏展示一下plsql developer的工程的大概界面吧

目前接触的(项目经理老是挂在嘴边的:存储过程,触发器,别的似乎也有,但是这两个词出现的频率不是一般的高 )

一。存储过程(这里我把存储函数也放在这儿,因为太重要了!)

存储过程的语法书写:

create or replace procedure 存储过程名

在这里说一下存储过程的带参数存储(in,out,in out)

存储函数的语法书写:

create or replace function 函数名

1.in 传参(简单理解:输入)


create or replace procedure p_name( param_name  in param_type) is

--声明了一个调用时传进来的参数 和 它的类型 

验证:

create or replace procedure p_name( param_name  in number) is

begin

dbms_output.put_line(param_name);--打印param_name

param_name:=33;

end p_name;


调用此过程

declare

aaa number:=30;

begin

p_name(aaa);

dbms_output.put_line(aaa);--打印aaa

end;

结果:打印2次30

2.out 传参(简单理解:输出)

create or replace procedure p_name(param_name out param_type) is

--声明了一个调用后返回的参数和它的类型

验证:

create or replace procedure p_name( param_name  out number) is

begin

dbms_output.put_line(param_name);--打印param_name

param_name:=33;

end p_name;


调用此过程

declare

aaa number:=30;

begin

p_name(aaa);

dbms_output.put_line(aaa);--打印aaa

end;

结果:打印一次null ---因为aaa 根本传不进去  只是接收返回值而已

            打印一次33   ----过程将33返回并赋值给aaa

3.in out 传参(简单理解:输入输出时)

create or replace procedure p_name(param_name in out param_type) is

--声明了一个调用时传进来调用后返回的参数及类型

验证:

create or replace procedure p_name( param_name  in out number) is

begin

dbms_output.put_line(param_name);--打印param_name

param_name:=33;

end p_name;


调用此过程

declare

aaa number:=30;

begin

p_name(aaa);

dbms_output.put_line(aaa);--打印aaa

end;

结果:打印一次30  ---30 通过 in 传了进去

            打印一次33 -----33通过out 返回并赋值给aaa

注:参数类型也可以这样定义  表明.列明%type  --参数类型为表中的那个列的参数类型  声明参数时也可以给他赋值 如 param_name in varchar2(10):='aaa'

这个概念性的东西自己百度,我理解的存储过程是sql代码块组成的,它的出现解决了现在的项目中复杂的业务逻辑难以处理的问题,

至于特点吗, 有很多,先说缺点吧,我们大量使用的话,会给数据库带来巨大的压力

调用方便,已经编译过了,节省时间,也就是执行效率高,更重要的是安全性高,可维护性高

二。包以及包体(类似java中的类)

语法书写

create or replace package 包名

在oracle数据库中,package包如同java中package中的作用大致类似。

在oracle中,包里面可以写存储过程,写方法,写sql语句,定义一个结构体等等。

包有包头和包体,包头和包体的名称要相同

三。触发器

语法书写

create or replace triggers 触发器名

猜你喜欢

转载自blog.csdn.net/qq_37169103/article/details/82883394