首页 > 解决方案 > RequestError:从 node.js 运行存储过程时,'' 附近的语法不正确

问题描述

这是代码(用于建立连接的代码不包括在下面,因为错误与连接无关):

let sql = require('mssql');
let fs = require('fs');

migrate_sql_dump(sql_file_path) {
    console.log(`Migrating the data as per the .sql file: ${sql_file_path}`);
    let data = fs.readFileSync(sql_file_path, 'utf16le');
    console.log(data);
    return this.connection.request().query(data)
        .catch(err => {
            console.error(`Error executing query: ${err}`);
            throw err;
        });
}

这是我传递给migrate_sql_dump函数的 .sql 文件。

DECLARE @uniqueId UNIQUEIDENTIFIER
SET @uniqueId = NEWID()

EXEC sp_i_Event 
@streamName='SomeStreamName', 
@streamId='S01', 
@aggregateType='StreamAggregateType',
@aggregateOriginId='{"SomeId":"S01","Status":"Completed"}',
@eventType='SomeEventType',
@createdBy='Self',
@correlationId=@uniqueId,
@data='{"SomeId":"S01","Status":"Completed"}'

console.log(data)从函数中执行migrate_sql_dump的操作与上面提到的相同,它在 Microsoft SQL Server Studio 中运行得非常好,但从RequestErrornode.js中给出。

编辑: .sql 文件只有一个简单的INSERT查询并且编码设置为utf8代码,此代码工作正常。

标签: node.jssql-serverstored-procedures

解决方案


推荐阅读