甲骨文存储过程过程简单介绍(第一部分)

  我们都知道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 

甲骨文存储过程过程简单介绍(第一部分)