存储过程报错

procedure train_type_u(trainTypeId TRAIN_TYPE.TRAIN_TYPE_ID%type,
trainTypeName TRAIN_TYPE.TRAIN_TYPE_NAME%type,
trainPeriod TRAIN_TYPE.TRAIN_PERIOD%type,
upTrainTypeId TRAIN_TYPE.UP_TRAIN_TYPE_ID%type) is
v_count number;
begin
if trainTypeId =0 then
select count(*) into v_count from TRAIN_TYPE where TRAIN_TYPE_ID = upTrainTypeId;
if v_count<0 then
return 0
else ----这行有错

insert into TRAIN_TYPE(TRAIN_TYPE_ID,TRAIN_TYPE_NAME,TRAIN_PERIOD,UP_TRAIN_TYPE_ID)
values(seq_trainType_num.nextval,trainTypeName,trainPeriod,upTrainTypeId);
return 1
end if; ----------这行有错
else
update TRAIN_TYPE
set TRAIN_TYPE_NAME=trainTypeName,
TRAIN_PERIOD=trainPeriod,
UP_TRAIN_TYPE_ID=upTrainTypeId
where TRAIN_TYPE_ID=trainTypeId;
return 1
end if; ----------这行有错
end;

procedure train_type_d(trainTypeId TRAIN_TYPE.TRAIN_TYPE_ID%type) is
v_count number;
begin
select count(*) into v_count from TRAIN_TYPE where UP_TRAIN_TYPE_ID= trainTypeId;
if v_count>0 then
return 0
else ----------------这行有错
delete TRAIN_TYPE where TRAIN_TYPE_ID = trainTypeId;
return 1
end if; ----------------这行哟错
end;

 

 

 

谁能帮帮忙 我看了一天了 也没发现哪有错 但是加到oracle当中 就有错了

return 语句后面都没加分号结束符;, 加好之后:
[code="sql"]
procedure train_type_u(trainTypeId TRAIN_TYPE.TRAIN_TYPE_ID%type,
trainTypeName TRAIN_TYPE.TRAIN_TYPE_NAME%type,
trainPeriod TRAIN_TYPE.TRAIN_PERIOD%type,
upTrainTypeId TRAIN_TYPE.UP_TRAIN_TYPE_ID%type) is
v_count number;
begin
if trainTypeId = 0 then
select count(*)
into v_count
from TRAIN_TYPE
where TRAIN_TYPE_ID = upTrainTypeId;
if v_count < 0 then
return 0;
else
----这行有错

  insert into TRAIN_TYPE
    (TRAIN_TYPE_ID, TRAIN_TYPE_NAME, TRAIN_PERIOD, UP_TRAIN_TYPE_ID)
  values
    (seq_trainType_num.nextval,
     trainTypeName,
     trainPeriod,
     upTrainTypeId);
  return 1;
end if; ----------这行有错

else
update TRAIN_TYPE
set TRAIN_TYPE_NAME = trainTypeName,
TRAIN_PERIOD = trainPeriod,
UP_TRAIN_TYPE_ID = upTrainTypeId
where TRAIN_TYPE_ID = trainTypeId;
return 1;
end if; ----------这行有错
end;

procedure train_type_d(trainTypeId TRAIN_TYPE.TRAIN_TYPE_ID%type) is
v_count number;
begin
select count(*)
into v_count
from TRAIN_TYPE
where UP_TRAIN_TYPE_ID = trainTypeId;
if v_count > 0 then
return 0;
else
----------------这行有错
delete TRAIN_TYPE where TRAIN_TYPE_ID = trainTypeId;
return 1;
end if; ----------------这行哟错
end;

[/code]

哥们,有点乱
给你一个模版,你把sql填里面就ok
存储过程创建语法:
create or replace procedure 存储过程名(param1 in type,param2 out type)

as

变量1 类型(值范围); --vs_msg VARCHAR2(4000);

变量2 类型(值范围);

Begin

Select count(*) into 变量1 from 表A where列名=param1;

If (判断条件) then

   Select 列名 into 变量2 from 表A where列名=param1;

   Dbms_output。Put_line(‘打印信息’);

Elsif (判断条件) then

   Dbms_output。Put_line(‘打印信息’);

Else

   Raise 异常名(NO_DATA_FOUND);

End if;

Exception

When others then

   Rollback;

End;

参考连接:
http://www.cnblogs.com/hero4china/articles/base_rule_oracle_procedure.html
希望能帮上忙

return语句后面加上";"。
:x 好的排版,另外记得加分号!~~