这里的例子如下:
SELECT name,COUNT(cars) AS (('cars_from_year_') || year)FROM peaple WHERE car = 'GM'AND Date BETWEEN (year || '0401') AND (year || '0430');
这一年应该是前者. 2012年和每年(2013,2014,…)的变化(即这是动态的).
我知道调用从双重调用to_char(sysdate,’YYYY’)而不是如何实现上面的select语句?
解决方法 列名必须在编译时知道.您显然希望使用动态列名,因此您需要将编译推迟到实际执行.有几种方法可以做到这一点:例如DBMS_SQL
,EXECUTE IMMEDIATE
和 REF CURSOR
. 以下是REF CURSOR和sql * Plus的示例:
sql> var x refcursorsql> DECLARE 2 l_year NUMBER := 2012; 3 BEGIN 4 OPEN :x 5 FOR 'SELECT ''This is the year ''||:year AS "Year ' || l_year || '" 6 FROM DUAL' 7 USING l_year; 8 END; 9 /PL/sql procedure successfully completed.sql> print xYear 2012--------------------------This is the year 2012总结
以上是内存溢出为你收集整理的Oracle中的动态列名称全部内容,希望文章能够帮你解决Oracle中的动态列名称所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)