colname='1'
左边是Long类型,但右边是字符类型,当然不行--试试
select * from table where TO_CHAR(colname)='1';

解决方案 »

  1.   

    Long数据类型的限制:
    l select中可以用long;
    l update中可以用select子句;
    l insert中可以用Valus子句;
    l 每个表只能允许一个long列;
    l long列不能列出完整性约束(null、not   null除外);
    l long列不能被索引;
    l 过程或存储函数不能接收long型函数;
    l 存储函数不能返回long型值。
    long  目前不能出现在以下情况中:
    l select中的Where,Group  by,order  by,Connect  by,distinct;
    l 不能对long列作substr,instr;
    l 表达式或条件;
    l 子查询或集合中不能用long;
    l Create   table   ...as   select   中不能用long;
      

  2.   

    select中的Where中不能有long型的字段
      

  3.   

    colname='1',既然楼主的long字段能进行这种操作,那为什么要用long型,改成varchar2不是更好。
    用long是为了存储长度超过4000的文字而设定的.楼主总不会要比较长度超过4000的字符串吧,这样的效率是不能忍受的