select a.xibieid
into :aa
from xibie a,ddlb_2 b
where trim(a.xibiename)=trim(b.text);

解决方案 »

  1.   

    因为NULL的关系
    改为:
      nvl(ltrim(rtrim(a.xibiename)),'XX') =   nvl(ltrim(rtrim(b.text)),'XX') 
      

  2.   

    语句写错:
    应该是这样
    select xibieid
    into :aa
    from xibie
    where trim(xibiename)=trim(:ddlb_2.text);
      

  3.   

    还是不好使啊!
    那位龙飞虎大哥啊 你那'xx'是什么意思啊?
    我看了帮助好象是没有那个nvl函数啊
      

  4.   

    没什么用 我急啊
    我在oracle下用
    select xibieid from xibie
    where xibiename='计算机'
    就好用
      

  5.   

    你的transaction用的是sqlca吗?要不是的话应该加上 using yourtransaction;
      

  6.   

    改为
    select xibieid
    into :aa
    from xibie
    where xibiename=trim(:ddlb_2.text);
      

  7.   

    为什么还是没有 ? 我要弄清楚倒底你遇到了什么问题?
    我猜想,你可能遇到两种可能.
    1.你的select语句没能找到返回值(NO_DATA_FOUND)
    2.你的select语句语法错误  nvl(ltrim(rtrim(a.xibiename)),'XX') =   nvl(ltrim(rtrim(b.text)),'XX') 
    是为了解决你的第一种可能de问题  ,NVL是ORACLE的一个函数.
    nvl(ltrim(rtrim(a.xibiename)),'XX') , 表示当a.xibiename为空时,把它设为'XX'(你自己也可以定义),至于b.text ,我不知道它是b表的一个column text还是其他什么,
    我建议你用变量把他得到.ltext = b.text -->your select 
      

  8.   

    我想也可能是第一种情况
    当我想把xibieid设置为索引时  说非法的零长度标识!
    select a.XIBIEHAO
    into :aa
    from XIBIEHAO a,ddlb_1 b
    where trim(a.XIBIEHAO)=trim(b.text); 
    ddlb_1是通过游标从NIANJI这个表中SELECT出来的年级号
    XIBIEHAO是 
    XIBIEID                        NOT NULL CHAR(2)
    XIBIEMING                       NOT NULL CHAR(30)
    我不知道还有没有没讲明白的