现在有一个查询频繁用到, 思考有以下几种重用方法1. 把它做成视图, 可惜参数化视图还没出来. 
   
   参考网上说的变通实现方式, 建一个参数表, 每次查询前 update 该表调整参数.2. 做成 pipelined 函数, 代价是索引丢失, 当然, 对于小表, 这个方法有一定价值.3. 复制粘贴.4. 借助开发工具提供的代码模板, 当宏用.不知你的项目中使用的是什么策略, 效果如何.

解决方案 »

  1.   

    “现在有一个查询频繁用到, 思考有以下几种重用方法”?
    在程序中,将SQL封装到方法中;
    在数据库端,写成procedure或者function。
      

  2.   

    我觉得可以写成procedure,把参数语句做为proc输入参数传进,然后动态sql执行查询 返回结果 ...
      

  3.   

    首先、不推荐使用复制粘贴的方法,理由是日后维护的复杂度变高。
    简单的例子是如果这个查询逻辑稍有变化,你就要修改很多的SQL问。有可能还会改漏。
    如果一定使用代码来进行的话,应该考虑使用共通SQL的方式。
    其次、建议使用试图,从DB效率和维护性上讲,试图使最佳选择。
    可以把SQL中可以固化的部分写入View然后再代码中把这个试图当作一个表使用。
    对该试图使用检索条件。从而绕开向试图传递参数的问题。
      

  4.   

    当前用的是1,但也在思考如何使PL/SQL可重用。
      

  5.   

    考虑重用,我习惯适用procedure
      

  6.   

    经过一段时间的摸索,我认为使用视图较好,在查询复杂时,可以多使用 with 语句. 
      

  7.   

    视图用得比较多。有参数的情况 就把视图封装到 package 中,用function 或者 procedure 调用。
      

  8.   

    写成一个大视图嘛,要用的时候就select * from 视图 where col=参数