CREATE OR REPLACE FUNCTION "ALERT_LOCK_NO" (PORG_ID IN NUMBER,SLOCKER IN VARCHAR2,SKIND IN VARCHAR2)
RETURN VARCHAR2 IS LOCKER VARCHAR2(80);
       PN_KIND NUMBER;
       WO_KIND NUMBER;
BEGIN 
  SELECT LOOKUP_CODE INTO PN_KIND 
    FROM SYS_PARAMETERS 
   WHERE ORG_ID=PORG_ID 
     AND LOOKUP_TYPE='ROUTECODE_LOCK_KIND' 
     AND MEANING='PN';
  SELECT LOOKUP_CODE INTO WO_KIND 
    FROM SYS_PARAMETERS 
   WHERE ORG_ID=PORG_ID 
     AND LOOKUP_TYPE='ROUTECODE_LOCK_KIND' 
     AND MEANING='WO';
  IF SKIND=PN_KIND 
    THEN RETURN SLOCKER;
  ELSIF SKIND=WO_KIND 
    THEN SELECT WO_NO INTO LOCKER 
           FROM WIP_WO 
          WHERE ORG_ID=PORG_ID 
            AND WO_KEY=SLOCKER;
         RETURN LOCKER;
  END IF;
END;

解决方案 »

  1.   

    CREATE  function LERT_LOCK_NO (@PORG_ID float,@SLOCKER float,@SKIND   float)
    returns varchar(80)
    as
    BEGIN 
      declare @LOCKER varchar(80)
      declare @PN_KIND float
      declare @WO_KIND float  SELECT @PN_KIND=LOOKUP_CODE  
        FROM SYS_PARAMETERS 
       WHERE ORG_ID=@PORG_ID 
         AND LOOKUP_TYPE='ROUTECODE_LOCK_KIND' 
         AND MEANING='PN';  SELECT @WO_KIND=LOOKUP_CODE 
        FROM SYS_PARAMETERS 
       WHERE ORG_ID=@PORG_ID 
         AND LOOKUP_TYPE='ROUTECODE_LOCK_KIND' 
         AND MEANING='WO';  IF @SKIND=@PN_KIND 
          RETURN @SLOCKER;
      else if @SKIND=@WO_KIND 
          SELECT @LOCKER=WO_NO   
               FROM WIP_WO 
              WHERE ORG_ID=@PORG_ID 
                AND WO_KEY=@SLOCKER;
             RETURN @LOCKER;
    END