function可以返回值,除了这点,他们还有区别么
还有就是怎么运行他们阿我新建了procedure或者function 然后呢,要编译么,没看到编译选项在哪里调用呢,直接execute ...就行么

解决方案 »

  1.   

    一般建立的时候就进行编译了,
    如果你的旧的有在使用的话,需要使用下面命令使新的存储过程立刻生效
    alter   procedure   schema.procedure_name   compile;
      

  2.   

    函数创建完就放到那了 不用编译
    就像普通的函数 不用执行 想用的时候直接调用就行
    比如你create function addThreeNum 
    调用的时候就是 select addThreeNum(3,4,5) as result from dual
    结果就是三个数的和
      

  3.   

    过程也可以用out参数输出
    在sql中调用的为函数;而不是过程
    过程是独立的程序段,能独立执行;函数不能,只能在sql中被引用
    一般来说,过程显示的业务更为复杂;函数比较有针对性
      

  4.   


    看需求 都可以的 返回结果  过程加个out 类型的参数
      

  5.   

    两者都是所谓的命名块.
    1.procedure不能使用return语句来返回某个变量或值,只能使用不带返回值的return.
    2.两者都可以使用out参数来返回值,但是使用了out参数的function无法在sql中调用.
      

  6.   

    两者最大的区别被你知道了,楼上补充的也很好。
    编译必须要自己手动,你创建执行完成后就已经编译好了,一般不修改的话就不需要了。
    至于运行,在sql developer中,选中要执行的function或procedure,点击鼠标右键,有一个‘Test’选项,点击即可,可以输入in的参数,执行即可