Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在初始化变量时调用存储过程_Sql_Sql Server_Tsql_Stored Procedures - Fatal编程技术网

Sql 在初始化变量时调用存储过程

Sql 在初始化变量时调用存储过程,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,我试图调用另一个存储过程以获取返回值并将其分配给sql存储过程中声明的变量,但出现错误: Msg 4121,第16级,状态1,程序过程每日,第35行 找不到列接口、用户定义函数或聚合接口.proc_GetPIValueAverageTime,或者名称不明确 我试着用“EXECUTE”和“EXEC”替换前面的SELECT,我还不得不在末尾标记一些东西,但没有成功。我还将数据库名称放在接口部分的前面 USE [OperationsView] GO /****** Object: StoredPro

我试图调用另一个存储过程以获取返回值并将其分配给sql存储过程中声明的变量,但出现错误:

Msg 4121,第16级,状态1,程序过程每日,第35行 找不到列接口、用户定义函数或聚合接口.proc_GetPIValueAverageTime,或者名称不明确

我试着用“EXECUTE”和“EXEC”替换前面的SELECT,我还不得不在末尾标记一些东西,但没有成功。我还将数据库名称放在接口部分的前面

USE [OperationsView]
GO
/****** Object:  StoredProcedure [Interface].[proc_GetChemicalDaily]
Script Date: 1/27/2017 8:06:47 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      <Author,,Name>
 -- Create date: <Create Date,,>
 -- Description:    <Description,,>
 -- =============================================
 ALTER PROCEDURE [Interface].[proc_GetChemicalDaily]
-- Add the parameters for the stored procedure here

@ProductionDate As DateTime,
@Debug BIT = 1

 AS
 BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- pi variables
DECLARE @tag_in As varchar(50)
DECLARE @pi_server As varchar(50)
DECLARE @enddate As date
--forcast variables
DECLARE @FCChemGALPERMIN DECIMAL(18,4)
DECLARE @CAUSTICDAILYUSAGE DECIMAL(18,4)

--variance variables
--DECLARE @PriceVariance DECIMAL(18,4)

   -- DECLARE @MTDChem$Ton DECIMAL(18,4)
  SELECT @tag_in = 'I-FC-835'
  SELECT @pi_server = 'valpi'
  SELECT @endDate = DATEADD(DAY, 1, @productionDate)
  SELECT @FCChemGALPERMIN = proc_GetPIValueAverageTime(@tag_in, 
  @ProductionDate, @endDate, @pi_server, @Debug)

    if @FCChemGALPERMIN> .5
     SELECT @CAUSTICDAILYUSAGE = @FCChemGALPERMIN*((18318/2000)*.5);
    else
     SELECT @CAUSTICDAILYUSAGE = 0;


-- Insert statements for procedure here
   if @Debug = 1
begin
    PRINT '-------------COST OF CAUSTIC-------------'
    PRINT''
    PRINT 'Caustic for production day ' + convert(varchar(50),@ProductionDate) 
    PRINT ''
    PRINT 'Caustic usage: ' + convert(varchar(50),@CAUSTICDAILYUSAGE) 
end
  END

去掉括号,然后在@ProductionDate、@endDate、@pi_server、@debugh中尝试:EXEC@FCChemGALPERMIN=proc_GetPIValueAverageTime@tag_。此外,您可能希望使用接口限定该过程。proc_GetPIValueAverageTime如何返回值选择语句、返回语句、输出参数?这样调用它可能无法得到预期的结果。RETURN_值是一个int,用于返回一个指示执行状态的值。它不打算返回用户定义的值。如果希望从存储过程返回数据,应该使用输出参数。太好了!谢谢,我在SELECT上使用了EXEC,并使用了OUTPUT,去掉了括号。谢谢