我有一个PID-2的源转换,我需要填充外部ID。但此ID位于另一台服务器上的另一个SQL server数据库表中。有没有代码可以用来检索和填充这个字段。
我有这个,但我知道还有更多的事情需要做:
var strConn = "driver={sql server};server=servername;database=database;uid=us ername;password=password";
var strQuery = "SELECT INTERNALID FROM EXTID where msg['record_number'].toString() = INTERNALID";
var cnt = result.size(); //get the number of rows returned in the query
for (i = 0; i < cnt; i++)
{ //loop it up
result.next(); //go to the first row
var INTERNALID = result.getString(1);
} 我尝试做的是在目标HL7文件上附加PID-2,其中主机服务器上的record_number等于外部sql server上的记录数。我的结果应该插入到tmp‘’PID‘’PID.2.1‘中
因此,代码应该查看PID-3中的"record_number“,并在SQL server上获取相应的ID (INTERNALID),并将其附加到我的目标文件中的PID-2。
发布于 2016-12-06 04:32:49
您需要创建一个DatabaseConnection对象来执行查询并获取结果。
var dbConn = DatabaseConnectionFactory.createDatabaseConnection('driver', 'address', 'username', 'password');然后可以执行参数化的数据库查询,如下所示
var paramList = new java.util.ArrayList();
paramList.add(msg['PID']['PID.3']['PID.3.1'].toString());
var expression = "SELECT internal_id FROM your_table WHERE record_number = ?";
result = dbConn.executeCachedQuery('expression', paramList);从那里开始,如果您只想抓取第一行,那么可以执行以下操作
if (result.next()) {
var internalID = result.getString(1);
}我对您的列名等做了一些假设,但工作流程应该是类似的
https://stackoverflow.com/questions/40893624
复制相似问题