日期:2014-05-17  浏览次数:20934 次

SQL 语句复用问题
现在有一个查询频繁用到,   思考有以下几种重用方法

1.   把它做成视图,   可惜参数化视图还没出来.  
     
      参考网上说的变通实现方式,   建一个参数表,   每次查询前   update   该表调整参数.

2.   做成   pipelined   函数,   代价是索引丢失,   当然,   对于小表,   这个方法有一定价值.

3.   复制粘贴.

4.   借助开发工具提供的代码模板,   当宏用.

不知你的项目中使用的是什么策略,   效果如何.

------解决方案--------------------
3


:)
------解决方案--------------------
“现在有一个查询频繁用到, 思考有以下几种重用方法”?
在程序中,将SQL封装到方法中;
在数据库端,写成procedure或者function。
------解决方案--------------------
我觉得可以写成procedure,把参数语句做为proc输入参数传进,然后动态sql执行查询 返回结果 ...

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


------解决方案--------------------
当前用的是1,但也在思考如何使PL/SQL可重用。
------解决方案--------------------
考虑重用,我习惯适用procedure
------解决方案--------------------
视图用得比较多。有参数的情况 就把视图封装到 package 中,用function 或者 procedure 调用。
------解决方案--------------------
写成一个大视图嘛,要用的时候就select * from 视图 where col=参数