由與qt開源版本沒有提供oracle數據庫驅動,需要自己根據源代碼來手動編譯oracle驅動。
經過近三天的折騰,終於成功編譯oracle驅動,連接到數據庫
ps:期間經過各種失敗疼苦迷茫。現在終於完成,心情也開闊些。程序員強迫症的疼苦。閑言少敘。接下來將一步一步,描述我的實現過程
一、工具准備
1、qt-opensource-windows-x86-msvc2015_64-5.8.0.exe這個是我是用的qtSDK及里面包含的atcreator
2、在安裝的過程中切記把 src選項勾上,默認是不選的。
3、ORA+11+G+R2+server+64bit+for+windows.iso這是我使用的oracle數據庫
二、編譯生成oracle驅動
1、使用qtcreate打開下面目錄的項目C:\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\oci每個人安裝路徑可能不一樣,可根據自己的情況相應更改
需要強調的是在安裝qt-opensource-windows-x86-msvc2015_64-5.8.0.exe需要勾選src選項。才能有相應的src目錄

打開后直接執行qmake。發現如上面出現的錯誤。這個問題曾糾結了我一天多。最終在某國外網站找到了解決方法(曾一度想放棄了)
解決方法:打開oci.pro文件

如花圈里面所示。把原來上面那句去掉,添加下面那句即QMAKE_LFLAGS += oci.lib
在右擊qmake項目發現成功
2、右擊構建項目

出現以上問題。這是需要include Oracle相關的頭文件
打開工程文件添加
INCLUDEPATH += D:\app\Administrator\product\11.2.0\dbhome_1\OCI\include

注意相應的目錄根據你自己oracle安裝目錄而定,但是目錄后半部分都是一樣的如\product\11.2.0\dbhome_1\OCI\include
這樣就把相關的頭文件包進該工程里了
接着構建項目,發現如下錯誤

解決方法:上面只抱進的相應的頭文件,還應該把相關的lib文件包含進來
打開工程文件,添加:LIBS += D:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC\oci.lib,如下圖
如果仍然找不到oci.lib可以使用這種添加形式:LIBPATH += D:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC

清除項目 ->執行qmake->重新構建

沒有錯誤出現了,僅僅是幾個類型轉換的警告。
表明已經生成成功。oracle相關驅動一生成成功
打開文件C:\plugins\sqldrivers

果然已經生成相應的dll lib驅動文件。
三、使用驅動連接數據庫
把上面目錄顯得qsqloci.dll(release版本)、qsqlocid.dll(debug版本)文件考到目錄
C:\Qt\Qt5.8.0\5.8\msvc2015_64\plugins\sqldrivers
ps:目錄根據具體安裝而定,但后面部分都是一樣的,別考錯了

四、qt編寫代碼連接oracle數據庫
注意在連接數據庫的項目文件里添加QT += sql
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");//QOCI
db.setPort(1521);
db.setHostName("127.0.0.1");
db.setDatabaseName("orcl");
db.setUserName("test");
db.setPassword("456123");
if (!db.open()) {
QMessageBox::critical(0, "Cannot open database",
"Unable to establish a database connection.", QMessageBox::Cancel);
return false;
}
else{
QMessageBox::critical(0,"congratulation!","oracle database connnect successfuly!!!",QMessageBox::Ok);
return true;
}
}
運行結果如下:

說明數據庫已連接成功!!!
現貼出整個數據庫連接頭文件

有什么問題可以及時聯系我
