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 好的排版,另外记得加分号!~~