string strCmd = "insert into czyhb(gwh,mm,yhm,dwmc,bz,key,ip,jyw) values('"+userid+"' ,'"+password+"','"+name+"','"+dwmc+"','"+admin+"','"+key+"','','"+jyw+"')";
其中IP项是RAW类型的,请问如何在strCmd字符串里写入utl_raw.cast_to_raw(ip)

解决方案 »

  1.   

    看下面条件写吧。不能直接把long的值给string。
    能够操作 LONG 的 SQL 语句: 
    1、Select语句
    2、Update语句中的SET语句
    3、Insert语句中的VALUES语句限制: 
    1、一个表中只能包含一个 LONG 类型的列。
    2、不能索引LONG类型列。
    3、不能将含有LONG类型列的表作聚簇。
    4、不能在SQL*Plus中将LONG类型列的数值插入到另一个表格中,如insert into ...select。
    5、不能在SQL*Plus中通过查询其他表的方式来创建LONG类型列,如create table as select。
    6、不能对LONG类型列加约束条件(NULL、NOT NULL、DEFAULT除外),如:关键字列(PRIMARY KEY)不能是 LONG 数据类型。
    7、LONG类型列不能用在Select的以下子句中:where、group by、order by,以及带有distinct的select语句中。8、LONG类型列不能用于分布查询。
    9、PL/SQL过程块的变量不能定义为LONG类型。
    10、LONG类型列不能被SQL函数所改变,如:substr、instr。
      

  2.   

    string strCmd = "insert into czyhb(gwh,mm,yhm,dwmc,bz,key,ip,jyw) values('"+userid+"' ,'"+password+"','"+name+"','"+dwmc+"','"+admin+"','"+key+"',utl_raw.cast_to_raw(ip),'"+jyw+"')";