X++:
server static container getSerialNoBySPID(str _spid)
{
Statement stmt;
ResultSet res;
boolean sysTraceActive = xSession::getSysTraceActive();
str query;
Connection con = new Connection();
SqlSystem sqlSystem = new SqlSystem();
str retSerialNo, retSID;
;
try
{
if(!_spid)
return ['', ''];
if (sqlSystem.databaseId()==databaseId::ORACLE)
{
stmt = con.createStatement();
_spid = strreplace(strreplace(_spid,' ',''),',','\',\'');
// res = stmt.executeQuery('SELECT SERIAL#,SID FROM V$SESSION WHERE AUDSID IN (\''+_spid+'\')');
res = stmt.executeQuery(strfmt("SELECT SERIAL#,SID FROM V$SESSION WHERE AUDSID IN ('%1')", _spid));
while (res.next())
{
if (! retSerialNo)
{
retSerialNo = res.getString(1);
}
else
{
retSerialNo = retSerialNo + ',' + res.getString(1);
}
if (! retSID)
{
retSID = res.getString(2);
}
else
{
retSID = retSID + ',' + res.getString(2);
}
}
}
return [retSerialNo, retSID];
}
catch (Exception::Error)
{
return [retSerialNo, retSID];
}
}