比如你在写存储过程的时候,你的查询语句的列名动态的,这时候就需要用动态SQL.

解决方案 »

  1.   

    一般用在不固定查询数据列。
    我这里随便给你个应用场景吧:
    1、一个数据中转表,里面列名有一定规律(例如fld00,fld01,fld02,...)
    2、应用在使用这个表的时候随意的存储字段个数,因为你不知道具体用户存储的这批数据包含那些字段。
    3、在这个时候你就可以体会到动态SQL的好处了。
      

  2.   

    执行动态sql用的,参考
    ORACLE EXECUTE IMMEDIATE 用法举个例子有一个表A,
    字段D01、D02……D31分别对应一个月中的每一天
    现在需要更新当前日期对应的列,就可以这样
    EXECUTE IMMEDIATE "update T set D"||TO_DATE(SYSDATE,'DD')||"=1 WHERE ……"