我们都知道SQL语言是没有判断和过程控制语句的,而PL/SQL又很好的补充了SQL语言这方面的不足。而存储过程也是一种PL/SQL块,但是存储过程又跟传统的PL/SQL块不一样,存储过程是以命名的方式存储于数据库中的。它有很多优点,比如:
1、存储过程是以命名的数据库对象形式存储于数据库当中。存储在数据库中的优点是很明显的,因为代码不保存在本地,用户可以在任何客户机上登录到数据库,并调用或修改代码。
2,存储过程可由数据库提供安全保证,要想使用存储过程,需要有存储过程的所有者的授权,只有被授权的用户或创建者本身才能调用执行存储过程。
3、存储过程的信息是写入数据字典的,所以存储过程可以看作是一个公用模块,用户编写的PL/SQL程序或其他存储过程都可以调用它(但存储过程和函数不能调用PL/SQL程序)。一个重复使用的功能,可以设计成为存储过程。
4,像其他高级语言的过程和函数一样,可以传递参数给存储过程,参数的传递也有多种方式。存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;函数有一定的数据类型,像其他的标准函数一样,我们可以通过对函数名的调用返回函数值。
5、存储过程需要进行编译,以排除语法错误,只有编译通过才能调用。
甲骨文存储过程基本语法
创建或替换过程存储过程名(参数),
是/AS
变量,
BEGIN
可执行部分,
EXCEPTION
错误处理部分,
结束,,
按照惯例举个hello world的例子
创建或替换过程你好as
,say_hi varchar2 (20);,
begin
,say_hi:=癏ello World”;,
,dbms_output.put_line (say_hi);,
结束,,
/,
语法说明:
1、创建或替换过程是创建存储过程的一个基本语法
2,在存储过程(过程)和函数(函数)中使用是和并没有太大区别,在视图(视图)中只能用不一样能用,在游标(光标)中只能用是不能用。后面一般跟变量声明只
3、开始和结束之间是PL/SQL程序体,其中异常来指定失败处理流程只
调用一个存储过程
begin
,——调用procedure
,你好,
结束,,
存储的查看和删除:
查询存储过程你好的创建脚本
select * from user_source name='你好';
查看存储过程你好的状态
select *从user_object object_name='你好';
重点看状态列的状态,有效表示该存储过程是通过编译的,无效的
我们可以看到一个存储过程是有参数可以声明的,那么关于参数肯定就有输入和输出参数的区别了
三种形式的参数
1,在定义一个输入参数变量,用于传递参数给存储过程
2,定义一个输出参数变量,用于从存储过程获取数据
3,在定义一个输入,输出参数变量,兼有以上两者的功能
参数的定义形式和作用如下:
在参数
语法:参数名在数据类型的默认值;
定义一个输入参数变量,用于传递参数给存储过程。在调用存储过程时,主程序的实际参数可以是常量,有值变量或表达式等.DEFAULT关键字为可选项,用来设定参数的默认值。如果在调用存储过程时不指明参数,则参数变量取默认值。在存储过程中,输入变量接收主程序传递的值,但不能对其进行赋值。
出参数
语法:参数名出数据类型;
定义一个输出参数变量,用于从存储过程获取数据,即变量从存储过程中返回值给主程序。
在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。在存储过程中,参数变量只能被赋值而不能将其用于赋值,在存储过程中必须给输出变量至少赋值一次。
在出参数
语法:参数名出来的数据类型的默认值;
定义一个输入,输出参数变量,兼有以上两者的功能。在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式.DEFAULT关键字为可选项,用来设定参数的默认值。在存储过程中,变量接收主程序传递的值,同时可以参加赋值运算,也可以对其进行赋值。在存储过程中必须给变量至少赋值一次。
1、参数在的举例
创建或替换过程say_hello (to_who varchar2默认zhangsan) as
begin
1、存储过程是以命名的数据库对象形式存储于数据库当中。存储在数据库中的优点是很明显的,因为代码不保存在本地,用户可以在任何客户机上登录到数据库,并调用或修改代码。
2,存储过程可由数据库提供安全保证,要想使用存储过程,需要有存储过程的所有者的授权,只有被授权的用户或创建者本身才能调用执行存储过程。
3、存储过程的信息是写入数据字典的,所以存储过程可以看作是一个公用模块,用户编写的PL/SQL程序或其他存储过程都可以调用它(但存储过程和函数不能调用PL/SQL程序)。一个重复使用的功能,可以设计成为存储过程。
4,像其他高级语言的过程和函数一样,可以传递参数给存储过程,参数的传递也有多种方式。存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;函数有一定的数据类型,像其他的标准函数一样,我们可以通过对函数名的调用返回函数值。
5、存储过程需要进行编译,以排除语法错误,只有编译通过才能调用。
甲骨文存储过程基本语法
创建或替换过程存储过程名(参数),
是/AS
变量,
BEGIN
可执行部分,
EXCEPTION
错误处理部分,
结束,,
按照惯例举个hello world的例子
创建或替换过程你好as
,say_hi varchar2 (20);,
begin
,say_hi:=癏ello World”;,
,dbms_output.put_line (say_hi);,
结束,,
/,
语法说明:
1、创建或替换过程是创建存储过程的一个基本语法
2,在存储过程(过程)和函数(函数)中使用是和并没有太大区别,在视图(视图)中只能用不一样能用,在游标(光标)中只能用是不能用。后面一般跟变量声明只
3、开始和结束之间是PL/SQL程序体,其中异常来指定失败处理流程只
调用一个存储过程
begin
,——调用procedure
,你好,
结束,,
存储的查看和删除:
查询存储过程你好的创建脚本
select * from user_source name='你好';
查看存储过程你好的状态
select *从user_object object_name='你好';
重点看状态列的状态,有效表示该存储过程是通过编译的,无效的
我们可以看到一个存储过程是有参数可以声明的,那么关于参数肯定就有输入和输出参数的区别了
三种形式的参数
1,在定义一个输入参数变量,用于传递参数给存储过程
2,定义一个输出参数变量,用于从存储过程获取数据
3,在定义一个输入,输出参数变量,兼有以上两者的功能
参数的定义形式和作用如下:
在参数
语法:参数名在数据类型的默认值;
定义一个输入参数变量,用于传递参数给存储过程。在调用存储过程时,主程序的实际参数可以是常量,有值变量或表达式等.DEFAULT关键字为可选项,用来设定参数的默认值。如果在调用存储过程时不指明参数,则参数变量取默认值。在存储过程中,输入变量接收主程序传递的值,但不能对其进行赋值。
出参数
语法:参数名出数据类型;
定义一个输出参数变量,用于从存储过程获取数据,即变量从存储过程中返回值给主程序。
在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。在存储过程中,参数变量只能被赋值而不能将其用于赋值,在存储过程中必须给输出变量至少赋值一次。
在出参数
语法:参数名出来的数据类型的默认值;
定义一个输入,输出参数变量,兼有以上两者的功能。在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式.DEFAULT关键字为可选项,用来设定参数的默认值。在存储过程中,变量接收主程序传递的值,同时可以参加赋值运算,也可以对其进行赋值。在存储过程中必须给变量至少赋值一次。
1、参数在的举例
创建或替换过程say_hello (to_who varchar2默认zhangsan) as
begin