EXEC SQL
    SELECT CAST(MAX(tmp1 AS INTEGER) + 1
    INTO :age_plusone INDICATOR 
 :tage_plusone_indicator
    FROM info
    where id = '12121'
上面怎么select出一项塞到两项目里面啊, 不怎么明白啊INDICATOR 指的是如果转换成普通SQL的写法该怎么写啊(就是普通的 select into 写法)

解决方案 »

  1.   

    这是什么数据库?
    :tage_plusone_indicator 的写法不是SQL SERVER支持的。
      

  2.   


    oracle 和sqlserver 切换使用的,通过ODBC访问的
    然后是先SELECT出来后,再一条条记录进行赋值
    但是现在是SELECT一个项目,但怎么放到两个变量里面啊。
      

  3.   

    INDICATOR   指示器可用以表示该 值是否为 NULL
      

  4.   

    :tage_plusone_indicator 这个就是指示器。
      

  5.   


    能不能更详细一点啊,
    1: 比如现在SELECT 出来的就是NULL ,那么age_plusone的值是什么,而tage_plusone_indicator 里面的值又是什么,
    2:如果SELECT出来的是2, 那么age_plusone的值是什么,而tage_plusone_indicator 里面的值又是什么,麻烦大家了实在不熟悉pro*c
      

  6.   

    我大概看懂了,不知道对不对
    。。EXEC   SQL
            SELECT   CAST(MAX(tmp1   AS   INTEGER)   +   1
            INTO   :age_plusone   INDICATOR  
      :tage_plusone_indicator
            FROM   info
            where   id   =   '12121 'tage_plusone_indicator这个为指示器 ,是为了判断 age_plusone 这个值取到的是否为正常值
    tage_plusone_indicator == -1 表示 这列为 NULL值, 也就是DB里面是NULL值。。
    tage_plusone_indicator > 0 表示 这列可以直接使用age_plusone里面的值。。DB里面这个字段不为空..
    参照文献:
    http://infolab.stanford.edu/~ullman/fcdb/oracle/or-proc.html