您的位置:程序门 -> db2 -> 数据库开发



db2 存储过程中,表名如何用变量表示呢?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


db2 存储过程中,表名如何用变量表示呢?
发表于:2007-09-11 11:04:56 楼主
在db2   存储过程中,表名如何用传入的变量表示呢?

而且执行存储过程的这个用户,没有select或者alter的权限,如果用动态sql的方法,会出现没有权限执行select或者alter的错误,请问要怎么解决呢?
发表于:2007-09-12 16:54:251楼 得分:0
动态sql的话,你需要付权限,比如select等

    string   stringvar,   sqlstatement
    integer   intvar
    sqlstatement   =   "select   emp_id   from   employee"
    prepare   sqlsa   from   :sqlstatement   ;
    describe   sqlsa   into   sqlda   ;
    declare   my_cursor   dynamic   cursor   for   sqlsa   ;
    open   dynamic   my_cursor   using   descriptor   sqlda   ;
    fetch   my_cursor   using   descriptor   sqlda   ;

    //   if   the   fetch   is   successful,   the   output  
    //   descriptor   array   will   contain   returned  
    //   values   from   the   first   row   of   the   result   set.
    //   sqlda.numoutputs   contains   the   number   of  
    //   output   descriptors.
    //   the   sqlda.outparmtype   array   will   contain  
    //   numoutput   entries   and   each   entry   will   contain
    //   an   value   of   the   enumerated   data   type   parmtype
    //   (such   as   typeinteger!,   or   typestring!).

    choose   case   sqlda.outparmtype[1]
    case   typestring!
                stringvar   =   getdynamicstring(sqlda,   1)
        case   typeinteger!
                intvar   =   getdynamicnumber(sqlda,   1)

    end   choose
    close   my_cursor   ;


快速检索

最新资讯
热门点击