select fun(pram1,pram2) from 表1;
上面sql种fun是一个函数,我想通过传不同的参数返回表1种不同的列名字符串,然后执行该sql;
现在执行时是吧fun(pram1,pram2)返回的字符串当一个字段的值显示,而不是列名显示。
举个例子:select fun(a,b) from 表1,其中 fun(a,b)返回字符串“id,name”,然后执行时是select id,name from 表1的查询结果。其中fun是个函数,作用只是返回列名组合的串,我就像通过一个sql语句调用这个函数实现,,请各位大侠指教,有什么我表达的不清楚的,请指点!

解决方案 »

  1.   

    用一句sql实现动态sql的执行,想了一阵没有思路,关注下
      

  2.   

    begin
     execute immediate 'select ' || fun(pram1,pram2) || ' from 表1';
    end;
      

  3.   

    你这个还是没有用一个sql直接执行啊,拼串当然可以,有没有办法直接放在plsql里执行啊,哪怕你的sql调用其他的函数或者方法。
      

  4.   

    我的不能放在plsql里执行吗?如果用一个sql,恐怕办不到吧
      

  5.   

    我就是想通过一条sql,看有没有办法解决!
      

  6.   

    貌似可以用table函数实现.类似
    select * from  table(fun(pram1,pram2))
    我去试试.
      

  7.   

    函数返回的值肯定是满足条件的数据,而不是LZ说的返回“id,name,”!!!
      

  8.   

    我想到一个方法:
    可不可以对你fun(a,b)函数返回的字串,通过“,”去拆分成不同的栏位?
    不过,仔细想了哈 不知道怎么实现,因为返回栏位也是字串的观望
      

  9.   

    直接写,没有思路,关注此贴
    参照:http://blog.csdn.net/47522341/archive/2008/03/22/2205054.aspx
       
      

  10.   

    先判断 fun(pram1,pram2) 带入的参数是不是Tab1的字段,然后你在处理,
      

  11.   

    select fun(pram1,pram2) from 表名!LZ是不是这个意思呢?