先上sqldeclare  
v_count number;
begin
  select count(*) into v_count from planeuser.f_device x where x.nscomid=:nscomid_;
  if(v_count>0) then
  :RETURNSTR_ :='重复IP';  
  else
  Insert into PlaneUser.F_DEVICE
 ( AREAID,DEVICEID,DEVICETYPE,GATE,NSCOMID,NSDEVICENAME,PRODUCE,RESOLUTION,SCREENTYPEID,TYPENO,delflag,updatedatetime )
 values  
( :AREAID_,:DEVICEID_,:DEVICETYPE_,:GATE_,:NSCOMID_,:NSDEVICENAME_,:PRODUCE_,:RESOLUTION_,:SCREENTYPEID_,:TYPENO_,0,sysdate );
end if;
end;此语句是为了判断输入的IP是否重复然后再插入但是操作的时候会报错求牛人帮我看看什么问题

解决方案 »

  1.   

    你的錯誤應有一大堆
    :nscomid_
    前面加兩點是觸發器中:new,:old才用的
    一般變量直接nscomid_就可以了
    還有你的變量,像nscomid_都沒有聲明唉,這些都需要聲明的
    這量前面的:全去掉,復值的:=保留,然後把沒有聲明的變量聲明
      

  2.   


    :nscomid_这种变量都是我程序里变量赋值的样式,这些都是用户输入的  不是sql里的变量
      

  3.   


    如果是那样,应是这个地方不对:RETURNSTR_ :='重复IP'; 这个应是个变量,怎么搞了个用户输入的参数
      

  4.   

    :RETURNSTR_ :='重复IP';    
    这句错了,还有,具体都啥错误信息,贴上来