微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Node.js mssql插入加密列显示错误

如何解决通过Node.js mssql插入加密列显示错误

表中有2列Always Always Encrypted,我试图使用Node.js将数据插入表中,但显示错误

操作符类型冲突:varchar与使用(encryption_type ='DETERMINISTIC',encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='CEK_Auto1',column_encryption_key_name_p_DE_database加密的varchar(8000)不兼容

代码

var Promise = require('bluebird');
var sql = require("mssql");
var config = require("./config.json");

const insertPatient = Promise.promisify(function() {
        const sql_config = config.mssql_config
        
        sql_config.encrypt = true;

        var conn = new sql.ConnectionPool(sql_config);      

        var msg = {SSN:'999-99-0005',FirstName:'Lucy',LastName:'Harrington',BirthDate:'2020-10-21T10:10:21.273'}

        var insertStr = "insert into Patients (SSN,FirstName,LastName,BirthDate) values ( @p_SSN,@p_FirstName,@p_LastName,@p_BirthDate) ;"

        conn.connect().then(function() {
            const ps = new sql.PreparedStatement(conn);
            ps.input('p_SSN',sql.Char(11));
            ps.input('p_FirstName',sql.NVarChar(50));
            ps.input('p_LastName',sql.NVarChar(50));
            ps.input('p_BirthDate',sql.Date);
            
            ps.prepare(insertStr,prepare_err => {
                if (prepare_err != null) {
                    console.log("insertPatient -err on prepare: " + prepare_err);
                }
                ps.execute({p_SSN: msg.SSN,p_FirstName: msg.FirstName,p_LastName: msg.LastName,p_BirthDate: msg.BirthDate },(execute_err,result) => {
                    if (execute_err != null) {
                        console.log("insertPatient - err on execute: " + execute_err);
                    }
                    ps.unprepare(unprepare_err => {
                        if (unprepare_err != null) {
                            console.log("insertPatient - err on unprepare ::" + unprepare_err);
                        }
                    })
                })
            })
        }).catch(err => {
            console.log('Database Connection Failed! The Error is: ' + err);
        })
    })

    insertPatient()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。