RT,举例如下:
select t1.*,t2.a+t2.b as x,t2.c from table1 t1,table2 t2 where t1.id=t2.id; 返回的应该是t1的全部字段和t2的a、b、c。
最好要考虑函数、+-*/、子查询、别名等等情况。求大神详解
select t1.*,t2.a+t2.b as x,t2.c from table1 t1,table2 t2 where t1.id=t2.id; 返回的应该是t1的全部字段和t2的a、b、c。
最好要考虑函数、+-*/、子查询、别名等等情况。求大神详解
比如select * from 表a; 这句sql 是查了 表a的所有列名。
楼主想要的效果是 写一个函数 参数是一个sql 返回值是这个sql查询的所有列
举例 sql=“select a.* from a” 假设a中有 name,id,value三个列,那么
select getColumnFromSql(sql) from dual 的结果就是 “name,id,value”
我之前也做过很多尝试 自己截取的话,应该可以实现,就是把select和from之间的部分拿出来,然后一个一个的解析,遇到*,就把from 和where之间的表里所有的字段 在数据字典里查出来
但是有一个缺点 如果sql很复杂,有嵌套查询,截取的时候就会非常麻烦 所以我最终放弃了这个想法
不知道oracle有没有提供类似的功能 百度 谷歌 都没有太大的收获 有人说dbms_sql包里可能会有 我找了找 没发现有能满足这种需求的
楼主如果解决了 麻烦分享一下 谢谢了