- 修复 Oracle 插入 LONG RAW 类型的问题;

This commit is contained in:
2881099
2023-05-17 15:38:53 +08:00
parent 6adae602cf
commit 1d41088aff
10 changed files with 241 additions and 4 deletions

View File

@ -500,6 +500,12 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam
else if (sqlType.StartsWith("NCLOB"))
{
}
else if (sqlType.StartsWith("RAW"))
{
}
else if (sqlType.StartsWith("LONG RAW"))
{
}
else if (char_used.ToLower() == "c")
sqlType += sqlType.StartsWith("N") ? $"({data_length / 2})" : $"({data_length / 4} CHAR)";
else if (char_used.ToLower() == "b")

View File

@ -106,7 +106,7 @@ namespace FreeSql.Oracle
return OleDbType.VarBinary;
case "long raw":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["blob"]);
return OleDbType.VarBinary;
return OleDbType.LongVarBinary;
case "binary_float":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(63)"]);
return OleDbType.Single;

View File

@ -51,6 +51,10 @@ namespace FreeSql.Oracle
case OracleDbType.Blob:
ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype2, Value = value };
break;
case OracleDbType.Raw:
case OracleDbType.LongRaw:
ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype2, Value = value };
break;
}
}
_params?.Add(ret);