VC (ADO) 寫入 Oracle `BLOB` 超 4000 字節時字段變空,根因:**連接字符串 Provider 錯誤**。
Provider=MSDAORA.1; ... // 微軟舊驅動,對 LOB 支持有 4000 字節限制
Provider=OraOLEDB.Oracle.1;
Data Source=ORCL;
User ID=scott; Password=tiger;
需安裝 **Oracle Data Access Components (ODAC)** 或 **OLE DB Provider for Oracle (OraOLEDB)**,隨 Oracle Client 安裝或單獨下載。
_CommandPtr Cmd;
Cmd.CreateInstance(__uuidof(Command));
Cmd->ActiveConnection = pConnection; // 已用 OraOLEDB 打開
Cmd->CommandText = "UPDATE mytab SET blob_col = ? WHERE id = 1";
Cmd->CommandType = adCmdText;
_variant_t varBlob; // 裝載 BLOB 數據 (SAFEARRAY/byte[])
Cmd->Parameters->Append(Cmd->CreateParameter("@blob", adLongVarBinary, adParamInput, -1, varBlob));
Cmd->Execute(NULL, NULL, adCmdText);
補充:Oracle 12c+ 建議改用 **ODP.NET Managed Driver** (C#) 或 **JDBC Thin Driver** (Java),ADO/OLEDB 屬舊技術棧,新項目勿用。