用户输入一条语句,如果是非SELECT语句,则可以用EXEC SQL execute IMMEDIATE :sqlStmt来解决,但如果是SELECT语句,则需要使用描述区的语法来实现,不知哪位有这样的资料?给一个例子,谢谢!!

解决方案 »

  1.   


    EXEC SQL execute IMMEDIATE :sqlStmt --这是什么语法,oracle没有--oracle中这样执行
    strsql := 'insert into ...'; --select的话需要定义变量来接收select出的结果
    execute immediate strsql;
      

  2.   

    我指的是在Pro*C中使用嵌入式SQL,SELECT语句由于事先不知道有多少个输出字段,所以都是需要动态分配内存进行存储,需要用到动态描述的语句,如:
    EXEC SQL allocate descriptor 'descriptorName'
    之类的语句,但苦于没有成功的例子,请有经验的高手提供资料和例子,谢谢!!
      

  3.   

    终于搞定,能出来结果了,但是出来的结果有乱码,不知道是什么原因,有人知道吗?输入:select * from kemo_def
    where kemo_id = 31;
    输出:
    KEMO_ID                        31
    EXPIRY_DATE                    x?
    MONEYIN_KETYPE                 W?
    MONEYIN_MON                    €
    ASY_TYPE                       S应该的值是:
    KEMO_ID                        31
    EXPIRY_DATE                    2031-10-18
    MONEYIN_KETYPE                 W
    MONEYIN_MON                    0
    ASY_TYPE                       S