在定义有参数的存储过程的时候 ,不排除有输入参数和输出参数   什么时候在定义参数数据类型的时候有必要赋空值 例如 
  create or replace procedure a1
  ( num number:=null)         是不是赋空值了 就必须在begin 里 判断 if num is null  then .....?    判断或者不判断对异常处理有什么影响 例如输入了表里没有的num  需要捕获no_data_found异常来处理。  赋空值 判断 异常捕获 他们之间的联系让我有点晕了,, 请教高手  十分感谢哈。 

解决方案 »

  1.   

    首先确认你的需求是什么,什么情况下产生的空值?传入参数?还是字段查询结果?是否需要对空值进行判断,
    no_data_found异常来处理 是获得的结果为空时候捕获的,一般来说查询结果为空时十分正常的,除非你需求需要进行相关处理
      

  2.   

    如果写if num is null then  ...这样的话是不是系统会对查询结果进行判断?那当我执行存储过程传递参数的时候写个空格而不输入的时候 系统会不会走异常? 还有就是定义参数类型的时候 一般什么情况赋值为空? 这么写跟直接定义参数类型而不赋值都有什么区别  
    谢谢楼上两位 好像理清楚一点了 还需要继续帮助。