分配从存储过程+ Sybase返回的整数值

时间:2011-09-23 06:32:43

标签: sql 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

请帮助。

由于

1 个答案:

答案 0 :(得分:1)

如果你想在变量中存储过程的值,你必须做这样的事情:

  1. 在LiteIsWorkingDay存储过程中声明输出参数

    创建程序LiteIsWorkingDay @ExecutionStart varchar(20),@ IsBusinessDay int output

  2. 在LiteIsWorkingDay存储过程中,您必须为@IsBusinessDay输出参数选择一个值。

  3. 在调用LiteIsWorkingDay的存储过程中,您需要执行以下操作以获取其值:

    声明@ExecutionStart varchar(20) 选择@ExecutionStart = convert(varchar,getdate(),107)

    声明@IsBusinessDay int 执行LiteIsWorkingDay,@ IsBusinessDay输出

  4. 就是这样。现在变量@IsBusinessDay将具有您想要的值:)