如何解决通过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] 举报,一经查实,本站将立刻删除。