本帖最后由 lengkaixiaodao 于 2010-04-16 08:31:40 编辑

解决方案 »

  1.   

    函数和过程都是pl/sql中的子程序
    函数相当于其它语言中的函数,一般返回一个值,以表达式方式调用
    过程相当于其它语言中的方法,可返回多个值,以语句方法调用视图从简单上说就是SQL语句,其地位同表差不多
    函数是可以如楼主方式调用
    上面的语句中视图名的位置不对的,它应该相当于表
    如select * from 视图名;
    存储过程位置也是不对的,它只能以语句方式调用,不能存在于sql语句中
    sql>exec 存储过程名(参数,参数...);
    sql>dclare 
    1 begin
    2 存储过程名(参数,参数...);
    3 end;
    4/
    sql>
      

  2.   

    函数常用于返回值,
    存储过程常用于INSERT ,UPDATE,DELETE,当然也可以返回值,只是返回值必须用参数接收
    以上常用区别:select FUNCTION_NAME() FROM ....,但是不能SELECT 存储过程名 FROM ...视图就是非实体表集合,可以隐藏敏感数据,只显示实体表中部分数据
    如果有个需求要求保存下就自动生成一个序列号放数据库中用什么? 用序列SEQUENCE 或者触发器实现
    索引是作用在大数据量查询下提高速度