ORACLE截断字符串
文章作者 100test 发表时间 2008:04:19 12:50:08
来源 100Test.Com百考试题网
create or replace procedure ModifyLadingItemPack
(
ASoditemguid varchar2, --合同电子仓单明细GUID
ALadingitemGUID varchar2, --提单子项GUID
ACDResID varchar2, --电子仓单号
APackageIDList varchar2, --仓单捆包详细GUID列表
Aladingnum float,
Aladingpieces float,
AReturnValue out integer --返回值:
)
is
ALadingItem_PackagesGUID varchar(32).
ATempIDList varchar2(4000).
AID varchar2(32).
APackageWeight float.
APackagePiece float.
ATotalPackWeight float.
begin
AReturnValue := 1.
ATempIDList := APackageIDList.
APackageWeight :=0.
APackagePiece :=0.
---------------------------------更新合同电子仓单明细---------------------------
while ( INSTR(ATempIDList, : ) > 0 ) or ( LENGTH(ATempIDList ) > 0 ) loop
if INSTR(ATempIDList, : ) > 0 then
0select sys_guid() into ALadingItem_PackagesGUID from dual.
AID := SUBSTR(ATempIDList ,1,INSTR( ATempIDList, : ) - 1 ).
ATempIDList := SUBSTR(ATempIDList,INSTR( ATempIDList, : ) 1 , LENGTH(ATempIDList) - INSTR(ATempIDList, : )).
---------------------------------提单捆包明细----------------------------------
insert into HT_LadingItem_packages(sGUID, sLadingItemGUID, sCDResID, sPackageID)
values(ALadingItem_PackagesGUID, ALadingitemGUID, ACDResID,AID).
---------------------------------更新仓单捆包明细状态---------------------------
UPDATE ZY_Packages SET state = 5 WHERE SGUID = AID.
0select fWeight into ATotalPackWeight from ZY_Packages where sGUID=AID.
APackageWeight:=APackageWeight ATotalPackWeight.
APackagePiece:=APackagePiece 1.
else
AID := ATempIDList.
ATempIDList := .
end if.
end loop.
0update HT_SODItem set fLadingNum=fLadingNum APackageWeight,fLadingPieces=fLadingPieces APackagePiece
where sGUID=ASoditemguid.
COMMIT.
EXCEPTION
WHEN OTHERS THEN BEGIN
AReturnValue := 99.
ROLLBACK.
END.
end.