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=参数