I got oracle sql query " for update skip locked" issue, using qt5.14.2 qsqloci.dll,oracle version : 11.2.0g

scenario :

CREATE TABLE "T1"
(
"PERSON_ID" NUMBER,
"C1" VARCHAR2(32 BYTE),
"PHOTO" BLOB
)

data : 1,"name1", null
2,"name2", null

Conside the below code :

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
bool isAvailable = QSqlDatabase::isDriverAvailable("QOCI");
if (isAvailable)
qDebug() << "QOCI driver is available!";
else {
qDebug() << "QOCI driver is not available!";
}
QString msg;
QSqlDatabase m_sqlDatabase = QSqlDatabase::addDatabase("QOCI","conn1");
m_sqlDatabase.setDatabaseName("orcl");
m_sqlDatabase.setUserName("testuser");
m_sqlDatabase.setPassword("testuser");
if (!m_sqlDatabase.open())
{
qDebug() << m_sqlDatabase.lastError().text();
}
else
{
qDebug() << "Open database successful";
}
QSqlQuery sqlQuery(m_sqlDatabase);
sqlQuery.setForwardOnly(true);
QString strVIPSQL = QString("select PERSON_ID, c1,photo from t1 where PERSON_ID>=1 and PERSON_ID<=10 order by PERSON_ID asc FOR UPDATE SKIP LOCKED");
bool Found = false;
while (1)
{
if (!m_sqlDatabase.isOpen())
m_sqlDatabase.open();
if (!m_sqlDatabase.transaction())
qDebug() << ("transaction errr [%1]", m_sqlDatabase.lastError().text());

if (!sqlQuery.exec(strVIPSQL) || !sqlQuery.isSelect() || !sqlQuery.isActive())
{
msg = QString("failed to execute database query, %1").arg(sqlQuery.lastError().text());
qDebug() << msg;
m_sqlDatabase.close();
}
else
{
QSqlRecord record = sqlQuery.record();
while (sqlQuery.next())
{
Found = true;
int person_id = sqlQuery.value(0).toInt();
QString name = sqlQuery.value(1).toString();
qDebug() << "person_id=" << person_id;
qDebug() << "name=" << name;
}
}
m_sqlDatabase.commit();
sqlQuery.clear();
qDebug() << "loop";
if (Found) break;
}
m_sqlDatabase.close();
qDebug() << "Finished";
return a.exec();
}

after execute this program , print out:

QOCI driver is available!
Open database successful
loop
"ORA-03114: not connected to ORACLE\nUnable to begin transaction"
"failed to execute database query, ORA-03114: not connected to ORACLE\nUnable to execute statement"
QOCIDriver::commitTransaction: Database not open
loop
person_id= 1
name= "name1"
person_id= 2
name= "name2"
loop
Finished

--------------------------
Issue : first loop, database connection error, second loop, successfully.
If remove for update skip locled, it is not issue.
It is not relative to oracle version. Should qsqloci source code bugs.

Kindly, help me.

Thanks a lot.