我有几个select sql,它们都要用到一个固定的常量来充当某一字段,如:
select t1.a,'haha' as b from t1
select t2.a,'haha' as b from t2
由于有大量的sql语句存在,我在每一个sql语句里用'haha'这个常量的话,如果要修改的话,工作量会很大,请问有么有办法解决?

解决方案 »

  1.   

    方法:
    1. 在外面的程序里定义这个常量, 例如C#,Java里定义这个常量, 然后传入SQL.
    2. 也可以在oracle定义这个变量, 先定义个package, 然后在这个package里定义常量. (PL/SQL的知识.)如果楼主不懂PL/SQL, 就用第一个方法好了.
      

  2.   

    (加分先……)
    我选择方案2。
    我上面的select语句,其实是两个view,那么,能否详细说下,如何具体写package?写view的时候,有什么需要注意的地方吗?
      

  3.   

    还是用包比较好.它可以定义公有和私有
    create or replace package PKG_AAA is
    function getdata(aId in varchar2,  
                     aYear in varchar2,         
              ) return number;end PKG_AAA ;create or replace package body PKG_AAA Is   //注意有body
      ...
    end PKG_AAA;
      

  4.   

    呵呵,麻烦说清楚点。包可以替代我所需的view吗?通过sql语句如何调用包来返回记录集?
      

  5.   

    or use a single row table
      

  6.   

    package应用例子!
    http://community.csdn.net/Expert/topic/5041/5041802.xml?temp=1.873416E-02
      

  7.   

    在包头定义一个常量,并附值
    DEL_FLG constant number default 0;
    也可以在包体create下定义
      

  8.   

    谢谢各位,那么,我在一个view里怎么用DEL_FLG常量呢?举个例子。