网友俱乐部 » » Oracle教程 » ORACLE截断字符串

2008-4-2 08:26 lonjew
ORACLE截断字符串

ORACLE截断字符串
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  
          select 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;  
          select fWeight into ATotalPackWeight from ZY_Packages where sGUID=AID;  
          APackageWeight:=APackageWeight ATotalPackWeight;
          APackagePiece:=APackagePiece 1;  
        else
          AID := ATempIDList;
          ATempIDList := '';
        end if;
  end loop;  
  update HT_SODItem set fLadingNum=fLadingNum APackageWeight,fLadingPieces=fLadingPieces APackagePiece
  where sGUID=ASoditemguid;  
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN BEGIN
    AReturnValue := 99;
    ROLLBACK;
  END;
end;

页: [1]
查看完整版本: ORACLE截断字符串


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.