create or replace procedure ProMax_UserInfo
(
proID in varchar2,
proTableName in varchar2,
proCompanyID in varchar2,
proRe in varchar2,
probackID in varchar2
)
AS
MaxID number;
BEGINselect MaxID:=is null(max(MAXID),0) from Max_UserInfo where TableName=proTableName and
CompanyID=proCompanyID;
if MaxID<9;
begin
MaxID:=(MaxID||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime) values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||'0'||MaxID;
end;
else if MaxID<99;
begin
MaxID:=(MaxID||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime) values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||MaxID;
end;
if MaxID:>=99;
backID:=-1;
select probackID as backID;
END;
为什么说未找到要求的From关键字???
(
proID in varchar2,
proTableName in varchar2,
proCompanyID in varchar2,
proRe in varchar2,
probackID in varchar2
)
AS
MaxID number;
BEGINselect MaxID:=is null(max(MAXID),0) from Max_UserInfo where TableName=proTableName and
CompanyID=proCompanyID;
if MaxID<9;
begin
MaxID:=(MaxID||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime) values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||'0'||MaxID;
end;
else if MaxID<99;
begin
MaxID:=(MaxID||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime) values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||MaxID;
end;
if MaxID:>=99;
backID:=-1;
select probackID as backID;
END;
为什么说未找到要求的From关键字???
CompanyID=proCompanyID;
oracle有在select中 :=的语法?
--select MaxID:=is null(max(MAXID),0) 不知道你这个是什么语法
--你应该是这个意思:如果max(MAXID)为null的话 让它为0吧,在oracle里用nvl
select nvl(max(MAXID),0) from Max_UserInfo where TableName=proTableName and
CompanyID=proCompanyID;
select nvl(max(MAXID),0) into v_maxid from Max_UserInfo where TableName=proTableName and
CompanyID=proCompanyID;
--建议你不要取和字段一样的变量名
CompanyID=proCompanyID;还有最后一句:select probackID as backID; 你这句的from呢????
if ...then ...elsif...then...else...end if;if MaxID<9 then
....
....
end if;
create or replace procedure ProMax_UserInfo
(
proID in varchar2,
proTableName in varchar2,
proCompanyID in varchar2,
proRe in varchar2,
probackID in varchar2
)
AS
v_maxid number;
BEGINselect nvl(max(MAXID),0) into v_maxid
from Max_UserInfo
where TableName=proTableName
and CompanyID=proCompanyID;if MaxID<9 then
MaxID:=(MaxID||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime)
values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||'0'||MaxID; elsif MaxID<99 then
MaxID:=(MaxID||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime)
values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||MaxID; else
backID:=-1;end if;
dbms_output.put_line(backID);END;
create or replace procedure ProMax_UserInfo
(
proID in varchar2,
proTableName in varchar2,
proCompanyID in varchar2,
proRe in varchar2,
probackID in varchar2
)
AS
v_maxid number;
BEGINselect nvl(max(MAXID),0) into v_maxid
from Max_UserInfo
where TableName=proTableName
and CompanyID=proCompanyID;if v_maxid<9 then
v_maxid:=(v_maxid||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime)
values
(proID,proCompanyID,proTableName,v_maxid,proRe,todate());
probackID:=proCompanyID||'0'||v_maxid; elsif v_maxid<99 then
v_maxid:=(v_maxid||1);
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime)
values
(proID,proCompanyID,proTableName,v_maxid,proRe,todate());
probackID:=proCompanyID||v_maxid; else
backID:=-1;end if;
dbms_output.put_line(backID);END;
--改了多处 可能还有问题
create or replace procedure ProMax_UserInfo
(
proID in varchar2,
proTableName in varchar2,
proCompanyID in varchar2,
proRe in varchar2,
probackID in out varchar2
)
AS
MaxID number;
BEGINselect nvl(max(MAXID),0) into MaxID from Max_UserInfo where TableName=proTableName and CompanyID=proCompanyID;if MaxID<9;
MaxID:=MaxID+1;
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime) values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||'0'||MaxID;elsif MaxID<99;MaxID:=MaxID+1;
insert into Max_UserInfo(id,CompanyID,TableName,MAXID,Re,AddTime) values
(proID,proCompanyID,proTableName,MaxID,proRe,todate());
probackID:=proCompanyID||MaxID;
elsif MaxID:>=99;
backID:=-1;
probackID:=backID;
END if;
end;
今天刚开始弄
还不太明白
多多指教
O(∩_∩)O谢谢