I have a working SQL Server stored procedure (using the mssql
package):
public async callSpiAlarmHistory(spData: spiAlarmHistory): Promise<IProcedureResult<any>> {
try {
return await this.connPool.request()
.input("StationID", TYPES.Int, spData.StationID)
.input("CreateDate", TYPES.DateTime, spData.CreateDate)
.input("Level", TYPES.Int, spData.Level)
.input("Description", TYPES.VarChar, spData.Description)
.input("Solution", TYPES.VarChar, spData.Solution)
.execute("spiAlarmHistory");
} catch (error) {
console.error(error);
throw new Error(error);
}
}
I want to convert this to a PostgreSQL function call. I don't know if pg-types
can help me or not. I know that this way will work, I was just wondering if there was someway to keep the type conversion like in SQL Server:
public async callSpiAlarmHistory(spData: spiAlarmHistory): Promise < QueryResult < any >> {
try {
const CreateDate = spData.CreateDate.toISOString().replace(/T/, ' ').replace(/..+/, '')
return await this.connPool.query(
`select spiAlarmHistory (` +
spData.StationID + `,` +
`'` + CreateDate + `', ` +
spData.Level + `,` +
`'` + spData.Description + `',` +
`'` + spData.Solution + `' )`
);
} catch(error) {
console.error(error);
throw new Error(error);
}
}
I much rather prefer the cleaner SQL Server stored procedure call. I found this list of SQL Server to PostgreSQL type mapping online.
question from:
https://stackoverflow.com/questions/65943750/node-mssql-to-pg-stored-procedure-function-conversion 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…