【问题标题】:Need help debugging this stored procedure in SQL Server需要帮助在 SQL Server 中调试此存储过程
【发布时间】:2019-02-08 15:13:33
【问题描述】:

我一直在尝试创建如下存储过程,但我不断收到这些错误:

消息 137,级别 15,状态 1,过程 PKG_BNLX5_INSERT_DMBATCHERRLOG,第 164 行
必须声明标量变量“@V_ERR_REC”。

消息 137,级别 15,状态 1,过程 PKG_BNLX5_INSERT_DMBATCHERRLOG,第 165 行
必须声明标量变量“@V_ERR_REC”。

消息 137,级别 15,状态 1,过程 PKG_BNLX5_INSERT_DMBATCHERRLOG,第 166 行
必须声明标量变量“@V_ERR_REC”。

消息 137,级别 15,状态 1,过程 PKG_BNLX5_INSERT_DMBATCHERRLOG,第 167 行
必须声明标量变量“@V_ERR_REC”。
.......
消息 102,级别 15,状态 1,过程 PKG_BNLX5_INSERT_DMBATCHERRLOG,第 172 行
'@V_ERR_REC' 附近的语法不正确。

代码:

CREATE PROCEDURE "PKG_BNLX5_INSERT_DMBATCHERRLOG"
    (@IN_PROCNAME VARCHAR(4000),
     @IN_TARNAME VARCHAR(4000),
     @IN_CURSOR VARCHAR(4000),
     @IN_UNIQUE_NUMBER FLOAT,
     @IN_SQLCODE VARCHAR(4000),
     @IN_SQLERRM VARCHAR(4000),
     @IN_REMARK VARCHAR(4000)) 
AS
BEGIN
    SET NOCOUNT ON;

    SET @V_ERR_REC.PROCNAME      = @IN_PROCNAME;
    SET @V_ERR_REC.TARNAME       = @IN_TARNAME;
    SET @V_ERR_REC.CURSOR        = @IN_CURSOR;
    SET @V_ERR_REC.UNIQUE_NUMBER = @IN_UNIQUE_NUMBER;
    SET @V_ERR_REC.DATIME        = GETDATE();
    SET @V_ERR_REC.ERRCODE       = @IN_SQLCODE;
    SET @V_ERR_REC.ERRDESC       = @IN_SQLERRM;
    SET @V_ERR_REC.REMARK        = @IN_REMARK;

    INSERT INTO VM1DTA.DMBATCHERRLOG VALUES @V_ERR_REC;

    COMMIT;
END;

【问题讨论】:

  • 我没有 SQL Server 知识,但猜测(错误消息告诉你!)你没有声明 @V_ERR_REC 记录。

标签: sql sql-server stored-procedures


【解决方案1】:

您没有声明错误消息中引用的任何变量。此外,您似乎正在尝试将所有参数设置为某种不存在的表? SQL Server 变量实际上并不是这样工作的。

通常情况下,这种事情会像

那样完成
DECLARE @V_ERR_REC.PROCNAME VARCHAR(4000) = @IN_PROCNAME

但根据您的其余查询,这似乎是不必要的。

您最好只插入参数值。

INSERT INTO VM1DTA.DMBATCHERRLOG 
VALUES (@IN_PROCNAME, @IN_TARNAME, @IN_CURSOR, @IN_UNIQUE_NUMBER, GETDATE(), @IN_SQLCODE, @IN_SQLERRM, @IN_REMARK)

但是,您可能还应该明确设置要将这些值插入哪些字段

INSERT INTO VM1DTA.DMBATCHERRLOG(Value1, Value2,..ValueN)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2013-02-23
    • 2017-09-28
    • 1970-01-01
    相关资源
    最近更新 更多