什么时候会用到动态sql呢,最近小弟在学,但是具体什么时候会用大家能举几个例子吗?

解决方案 »

  1.   

    比如说
    select要从不同的表,表名是个变量的情况
    或者
    如in 变量之类的
    在存储过程中,如果要用到创建表之类的DDL语句,也要用到动态SQL的
      

  2.   

    http://topic.csdn.net/u/20080711/09/8f95292d-139a-4b7b-9103-ab038688164b.html
    此贴你可以参考下
      

  3.   

    另外一些情况
    比如说你有些SQL的条件是有一张表的字段拼接而成的就需要用动态sql
      

  4.   

    什么时候都可以用。
    example:DECLARE
      V_SQL VARCHAR2(1000);
    BEGIN
      EXECUTE IMMEDIATE 'create table test(n number)';
      FOR I IN 1 .. 5 LOOP
        EXECUTE IMMEDIATE 'insert into test values(:1)'
          USING I;
      END LOOP;
      COMMIT;
    END;
    /
      

  5.   

    1.DDL一定要用动态SQL来实现。
    2.对于一个SQL语句的where条件,是要经过其他处理(比如:if...else...判断后的)要用动态SQL。
    我补充两点。
      

  6.   

    如果PL/SQL块中需要执行DDL语句(例如 CREATE,ALTER,DROP语句)、DCL语句(GRANT,REVOKE),或者
    在PL/SQL块中需要执行更加灵活的SQL语句(例如在SELECT语句中使用不同的WHERE条件),那啊么就必须使用
    动态SQL。静态SQL和动态SQL的比较:
    1. 静态SQL是在编写PL/SQL块时直接嵌入的SQL语句;而动态SQL实在运行PL/SQL块时动态输入的SQL语句。
    2. 静态SQL性能要优于动态SQL,因此当编写PL/SQL块时,如果功能完全确定,则使用静态SQL;如果不能确定要执行的SQL,则用动态SQL