2011-09-23 7 views
0

다른 저장 프로 시저에서 저장 프로 시저를 호출하려고합니다. 그 저장 프로 시저는 정수 값을 항상 반환하므로 하나의 정수 변수에서 그 값을 받아들입니다.저장 프로 시저 + Sybase에서 반환 된 정수 값 할당

EXEC @IsBusinessDay = LiteIsWorkingDay @ExecutionStart 

는 그러나 저장 프로 시저가 @IsBusinessDay의 1 개 값을 반환하는 경우에도 것은 제발 도와주세요 0

코드 블록

SELECT @ExecutionStart = CONVERT(VARCHAR, GETDATE(), 107) 

EXEC @IsBusinessDay = LiteIsWorkingDay @ExecutionStart 

IF(@IsBusinessDay = 0) 
BEGIN 
    IF(CONVERT(VARCHAR,@InterMediateStartDate,108) > CONVERT(VARCHAR,GETDATE(),108)) 
    BEGIN 
     INSERT INTO TbJobQueue (JobId, ScheduleId, DueDate, Status, ExpiryDate, 
           ProcessingDate, InputUser, InputTime, 
           LastModifiedBy, LastModifiedTime) 
     VALUES (@JobId, @ScheduleId, @InterMediateStartDate, 'NQUE', NULL, 
       NULL, 'Scheduler', GETDATE(), NULL, NULL) 
    END 
END 

입니다.

감사

+0

좀 더 자세한 정보를 제공 할 수 있습니까? 저장 프로 시저의 내용 ... 추가 정보가 없으면 우리는 당신을 도울 수 없습니다 – Sven

+0

하나의 저장 프로 시저로 레코드를 삽입하려고합니다. 이제 오늘 날짜가 영업일인지 아닌지를 확인하기 위해 오늘 날짜의 값을 @ExecutionStart에 할당하고 LiteIsWorkingDay 프로 시저를 호출합니다. – Denish

+0

이 절차는 HolidayMaster에서 해당 날짜가 근무 중일 여부를 확인합니다. 작업 일이면 0을 반환하고 그렇지 않으면 1을 반환합니다. 따라서 저장 프로 시저에서 0과 1의 값을 기대합니다. 그것은 적절한 결과를 제공합니다. 위에 주어진 문장조차도 격리 된 경우 적절한 결과를 제공합니다. IsBusinessDay의 Store proc 값이 0 일 때 반환 값을 irrispactive로 유지합니다. – Denish

답변

1

당신은 당신이이 같은 것을 만들 필요가 변수에 저장 프로 시저의 값을 원하는 경우 :

  1. 가 LiteIsWorkingDay 저장 프로 시저 출력 매개 변수를 선언을

    프로 시저를 만들 LiteIsWorkingDay @ExecutionStart varchar (20), @IsBusinessDay int 출력

  2. LiteIsWorkingDay 저장 프로 시저에서 @IsBusinessDay 출력 매개 변수의 값을 선택해야합니다. 당신이 그 가치 얻기 위해 같은 것을 할 필요가 LiteIsWorkingDay를 호출하는 저장 프로 시저에서

  3. :

    선언 @ExecutionStart의 VARCHAR (20) 선택 @ExecutionStart = 변환() VARCHAR, GETDATE를 (107) 간부 LiteIsWorkingDay을 int로 @IsBusinessDay

    선언, @IsBusinessDay 출력

그리고 그게 다야. 이제 변수 @IsBusinessDay가 원하는 값을 갖습니다.