互联网服务

什么时候必须用动态sql

小弟初学db2写着写着动态sql 就犯晕了 什么时候必须用动态sql啊??感觉下面sql 也可以用静态sql直接写啊 除了无法将sql语句打印并记录下来。。---sp begin  declare sqlbuf varchar(8000);            --存放需执行的SQ... 显示全部
小弟初学db2
写着写着动态sql 就犯晕了 什么时候必须用动态sql啊??
感觉下面sql 也可以用静态sql直接写啊 除了无法将sql语句打印并记录下来。。

---sp

begin

  declare sqlbuf varchar(8000);            --存放需执行的SQL语句
  declare data_tbs varchar(20);            --数据表存放空间
  declare index_tbs varchar(20);           --索引存放空间

call p_g_get_tbs(data_tbs, index_tbs); --获取当前建表时需使用的表空间

set sqlbuf = '
  create table TMP_CRING
  (
    usr_id varchar(20),
    cring_status_mark smallint,
    start_date date,
    reg_method_id smallint,
    cring_use_months int
  )partitioning key(usr_id) in ' || data_tbs || ' index in ' || index_tb;
  

call p_g_exe_sql(sp_name, sqlbuf); --这个sp 是记录上面sql的执行语句的到log table中 并执行上面语 句

end 收起
参与7

查看其它 5 个回答yuank1987 的回答

yuank1987 yuank1987 数据库开发工程师 中国金融电子化公司
你为什么非要动态创建一个表呢?
如果要在存储过程中使用临时表可以使用" CREATE GLOBLE TEMPLORY TABLE" 的语法创建一个临时表。其生命周期仅限于该存储过程。
什么时候使用动态SQL? 业务为王吧。个人觉得懂得基本语法,即可。就像武功招式,学会几招用处不大,关键在比武时能够熟练运用成功制敌。
互联网服务 · 2012-08-19
浏览795

回答者

yuank1987
数据库开发工程师 中国金融电子化公司
评论7

yuank1987 最近回答过的问题

回答状态

  • 发布时间:2012-08-19
  • 关注会员:1 人
  • 回答浏览:795
  • X社区推广