表A中有20个字段, 有一个long类型的字段Field1
数据表中假如存在100万条记录我用update更新字段Field1, 使该值 = 原先的值 & ~0x01该语句具体我不知道该怎么写了,知道的告诉我啊:)请问, 这样的操作大致需要多长时间?

解决方案 »

  1.   

    楼主的意思是不是给field1做位运算啊?学习...
      

  2.   

    update tbname set col=bitand(col,10);
      

  3.   

    bitor=a+b-bitand(a,b);
    如:a=9(1001) b=3(0011) 或运算结果应该为11(1011)
    bitor=9+3-bitand(9,3)
    SQL> select 9+3-bitand(9,3) from dual;9+3-BITAND(9,3)
    ---------------
                 11已用时间:  00: 00: 00.50
    SQL>
      

  4.   

    哇塞!学到东西了,受益非浅啊请问 bzszp(SongZip) 
    SQL> select BITAND(9,3) from dual;
    ERROR:
    ORA-00932: 数据类型不一致为什么不能直接用啊?
      

  5.   

    FUNCTION BAnd(ii_Int1 INT,ii_Int2 INT) RETURN INT
        IS
        BEGIN
            IF ii_Int1 IS NULL OR ii_Int2 IS NULL THEN
                RETURN NULL;
            END IF;    
            RETURN TO_NUMBER((UTL_RAW.Cast_To_Varchar2(UTL_RAW.Bit_And(UTL_RAW.Cast_To_Raw(ii_Int1),UTL_RAW.Cast_To_Raw(ii_Int2)))));
                
        END;
      

  6.   

    To njhart2003() :
    SQL> select bitand(9,3) from dual;BITAND(9,3)
    -----------
              1
      

  7.   

    to bzszp(SongZip):请问你表中的记录是100万条吗(只要足够多)我还想知道这样的操作在大数据量的表中的性能问题?