mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 Oracle 插入 LONG RAW 类型的问题;
This commit is contained in:
parent
6adae602cf
commit
1d41088aff
@ -14,6 +14,7 @@ using Npgsql;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Data.Common;
|
using System.Data.Common;
|
||||||
using System.Data.Odbc;
|
using System.Data.Odbc;
|
||||||
using System.Data.SqlClient;
|
using System.Data.SqlClient;
|
||||||
@ -571,8 +572,8 @@ namespace base_entity
|
|||||||
//.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=toc;Pooling=true;Maximum Pool Size=2")
|
//.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=toc;Pooling=true;Maximum Pool Size=2")
|
||||||
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToLower)
|
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToLower)
|
||||||
|
|
||||||
//.UseConnectionString(FreeSql.DataType.Oracle, "user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=2")
|
.UseConnectionString(FreeSql.DataType.Oracle, "user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=2")
|
||||||
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
|
.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
|
||||||
|
|
||||||
//.UseConnectionString(FreeSql.DataType.Dameng, "server=127.0.0.1;port=5236;user id=2user;password=123456789;database=2user;poolsize=5;min pool size=1")
|
//.UseConnectionString(FreeSql.DataType.Dameng, "server=127.0.0.1;port=5236;user id=2user;password=123456789;database=2user;poolsize=5;min pool size=1")
|
||||||
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
|
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
|
||||||
@ -600,7 +601,39 @@ namespace base_entity
|
|||||||
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
var query2222 = fsql.Select<Student2222>()
|
fsql.Delete<OracleLongRaw1>().Where("1=1").ExecuteAffrows();
|
||||||
|
var longRawData = Encoding.UTF8.GetBytes(string.Join(",", Enumerable.Range(1, 2000).Select(a => "中国人")));
|
||||||
|
fsql.Insert(new OracleLongRaw1 { data = longRawData }).NoneParameter(false).ExecuteAffrows();
|
||||||
|
fsql.Insert(new OracleLongRaw1 { data = longRawData }).NoneParameter(true).ExecuteAffrows();
|
||||||
|
var longRaw1 = fsql.Select<OracleLongRaw1>().ToList();
|
||||||
|
|
||||||
|
MarketingRestrictions restrictions = new MarketingRestrictions();
|
||||||
|
|
||||||
|
if (restrictions.Id == Guid.Empty)
|
||||||
|
{
|
||||||
|
restrictions.CreatedBy = 100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
restrictions.UpdatedBy = 100;
|
||||||
|
restrictions.UpdatedTime = DateTime.Now;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ret = fsql.InsertOrUpdate<MarketingRestrictions>()
|
||||||
|
.SetSource(restrictions)
|
||||||
|
.UpdateColumns(r => new {
|
||||||
|
r.Describe,
|
||||||
|
r.IsLimitUsePoints,
|
||||||
|
r.Status,
|
||||||
|
r.StartTime,
|
||||||
|
r.EndTime,
|
||||||
|
r.UpdatedBy,
|
||||||
|
r.UpdatedTime
|
||||||
|
})
|
||||||
|
.ExecuteAffrows();
|
||||||
|
|
||||||
|
|
||||||
|
var query2222 = fsql.Select<Student2222>()
|
||||||
.AsTable((t, o) => string.Format(o, "hash2"))
|
.AsTable((t, o) => string.Format(o, "hash2"))
|
||||||
.Where(p => p.Name.Contains("search"))
|
.Where(p => p.Name.Contains("search"))
|
||||||
.GroupBy(a => new { a.ClassId })
|
.GroupBy(a => new { a.ClassId })
|
||||||
@ -2193,4 +2226,100 @@ var sql11111 = fsql.Select<Class1111>()
|
|||||||
[Column(MapType = typeof(string))]
|
[Column(MapType = typeof(string))]
|
||||||
public Achievement Group { get; set; }
|
public Achievement Group { get; set; }
|
||||||
}
|
}
|
||||||
|
[Description("营销限制表")]
|
||||||
|
[Table(Name = "MarketingRestrictions")]
|
||||||
|
public class MarketingRestrictions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 主键标识
|
||||||
|
/// </summary>
|
||||||
|
[Description("主键标识")]
|
||||||
|
[Column(DbType = "uniqueidentifier", IsPrimary = true)]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 商户应用Id
|
||||||
|
/// </summary>
|
||||||
|
[Description("商户应用Id")]
|
||||||
|
[Column(DbType = "varchar(32) not null")]
|
||||||
|
public string MchtAppId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 描述
|
||||||
|
/// </summary>
|
||||||
|
[Description("描述")]
|
||||||
|
[Column(DbType = "nvarchar(500) not null")]
|
||||||
|
public string Describe { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 状态:0、关闭 1、启用
|
||||||
|
/// </summary>
|
||||||
|
[Description("状态:0、关闭 1、启用")]
|
||||||
|
[Column(DbType = "smallint")]
|
||||||
|
public sbyte Status { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否限制使用积分:0、否 1、是
|
||||||
|
/// </summary>
|
||||||
|
[Description("是否限制使用积分:0、否 1、是")]
|
||||||
|
[Column(DbType = "smallint")]
|
||||||
|
public sbyte IsLimitUsePoints { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 开始时间
|
||||||
|
/// </summary>
|
||||||
|
[Description("开始时间")]
|
||||||
|
[Column(DbType = "datetime")]
|
||||||
|
public DateTime StartTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 结束时间
|
||||||
|
/// </summary>
|
||||||
|
[Description("结束时间")]
|
||||||
|
[Column(DbType = "datetime")]
|
||||||
|
public DateTime EndTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人Id
|
||||||
|
/// </summary>
|
||||||
|
[Description("创建人Id")]
|
||||||
|
[Column(DbType = "bigint")]
|
||||||
|
public long CreatedBy { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
[Description("创建时间")]
|
||||||
|
[Column(DbType = "datetime", ServerTime = DateTimeKind.Local, CanUpdate = false)]
|
||||||
|
public DateTime CreatedTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 最后编辑人Id
|
||||||
|
/// </summary>
|
||||||
|
[Description("最后编辑人Id")]
|
||||||
|
[Column(DbType = "bigint")]
|
||||||
|
public long? UpdatedBy { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 最后编辑时间
|
||||||
|
/// </summary>
|
||||||
|
[Description("最后编辑时间")]
|
||||||
|
[Column(DbType = "datetime")]
|
||||||
|
public DateTime? UpdatedTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否删除:0、否 1、是
|
||||||
|
/// </summary>
|
||||||
|
[Description("是否删除:0、否 1、是")]
|
||||||
|
[Column(DbType = "smallint")]
|
||||||
|
public sbyte Deleted { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 删除人Id
|
||||||
|
/// </summary>
|
||||||
|
[Description("删除人Id")]
|
||||||
|
[Column(DbType = "bigint")]
|
||||||
|
public long? DeletedBy { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 删除时间
|
||||||
|
/// </summary>
|
||||||
|
[Description("删除时间")]
|
||||||
|
[Column(DbType = "datetime")]
|
||||||
|
public DateTime? DeletedTime { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
class OracleLongRaw1
|
||||||
|
{
|
||||||
|
public Guid id { get; set; }
|
||||||
|
[Column(DbType = "long raw")]
|
||||||
|
public byte[] data { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,6 +180,76 @@
|
|||||||
更新时间
|
更新时间
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.Id">
|
||||||
|
<summary>
|
||||||
|
主键标识
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.MchtAppId">
|
||||||
|
<summary>
|
||||||
|
商户应用Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.Describe">
|
||||||
|
<summary>
|
||||||
|
描述
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.Status">
|
||||||
|
<summary>
|
||||||
|
状态:0、关闭 1、启用
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.IsLimitUsePoints">
|
||||||
|
<summary>
|
||||||
|
是否限制使用积分:0、否 1、是
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.StartTime">
|
||||||
|
<summary>
|
||||||
|
开始时间
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.EndTime">
|
||||||
|
<summary>
|
||||||
|
结束时间
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.CreatedBy">
|
||||||
|
<summary>
|
||||||
|
创建人Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.CreatedTime">
|
||||||
|
<summary>
|
||||||
|
创建时间
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.UpdatedBy">
|
||||||
|
<summary>
|
||||||
|
最后编辑人Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.UpdatedTime">
|
||||||
|
<summary>
|
||||||
|
最后编辑时间
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.Deleted">
|
||||||
|
<summary>
|
||||||
|
是否删除:0、否 1、是
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.DeletedBy">
|
||||||
|
<summary>
|
||||||
|
删除人Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:base_entity.MarketingRestrictions.DeletedTime">
|
||||||
|
<summary>
|
||||||
|
删除时间
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:EMSServerModel.Model.Role">
|
<member name="T:EMSServerModel.Model.Role">
|
||||||
<summary>
|
<summary>
|
||||||
角色表
|
角色表
|
||||||
|
@ -463,6 +463,12 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam
|
|||||||
else if (sqlType.StartsWith("NCLOB"))
|
else if (sqlType.StartsWith("NCLOB"))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
else if (sqlType.StartsWith("RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (sqlType.StartsWith("LONG RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
else if (char_used.ToLower() == "c")
|
else if (char_used.ToLower() == "c")
|
||||||
sqlType += sqlType.StartsWith("N") ? $"({data_length / 2})" : $"({data_length / 4} CHAR)";
|
sqlType += sqlType.StartsWith("N") ? $"({data_length / 2})" : $"({data_length / 4} CHAR)";
|
||||||
else if (char_used.ToLower() == "b")
|
else if (char_used.ToLower() == "b")
|
||||||
|
@ -466,6 +466,12 @@ and not exists(select 1 from all_constraints where index_name = a.index_name and
|
|||||||
else if (sqlType.StartsWith("NCLOB"))
|
else if (sqlType.StartsWith("NCLOB"))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
else if (sqlType.StartsWith("RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (sqlType.StartsWith("LONG RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
else if (sqlType.StartsWith("TEXT"))
|
else if (sqlType.StartsWith("TEXT"))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -461,6 +461,12 @@ and not exists(select 1 from all_constraints where index_name = a.index_name and
|
|||||||
else if (sqlType.StartsWith("BLOB"))
|
else if (sqlType.StartsWith("BLOB"))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
else if (sqlType.StartsWith("RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (sqlType.StartsWith("LONG RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
else if (sqlType == "REAL" || sqlType == "DOUBLE" || sqlType == "FLOAT")
|
else if (sqlType == "REAL" || sqlType == "DOUBLE" || sqlType == "FLOAT")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -465,6 +465,12 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam
|
|||||||
else if (sqlType.StartsWith("NCLOB"))
|
else if (sqlType.StartsWith("NCLOB"))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
else if (sqlType.StartsWith("RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (sqlType.StartsWith("LONG RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
else if (char_used.ToLower() == "c")
|
else if (char_used.ToLower() == "c")
|
||||||
sqlType += sqlType.StartsWith("N") ? $"({data_length / 2})" : $"({data_length / 4} CHAR)";
|
sqlType += sqlType.StartsWith("N") ? $"({data_length / 2})" : $"({data_length / 4} CHAR)";
|
||||||
else if (char_used.ToLower() == "b")
|
else if (char_used.ToLower() == "b")
|
||||||
|
@ -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("NCLOB"))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
else if (sqlType.StartsWith("RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (sqlType.StartsWith("LONG RAW"))
|
||||||
|
{
|
||||||
|
}
|
||||||
else if (char_used.ToLower() == "c")
|
else if (char_used.ToLower() == "c")
|
||||||
sqlType += sqlType.StartsWith("N") ? $"({data_length / 2})" : $"({data_length / 4} CHAR)";
|
sqlType += sqlType.StartsWith("N") ? $"({data_length / 2})" : $"({data_length / 4} CHAR)";
|
||||||
else if (char_used.ToLower() == "b")
|
else if (char_used.ToLower() == "b")
|
||||||
|
@ -106,7 +106,7 @@ namespace FreeSql.Oracle
|
|||||||
return OleDbType.VarBinary;
|
return OleDbType.VarBinary;
|
||||||
case "long raw":
|
case "long raw":
|
||||||
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["blob"]);
|
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["blob"]);
|
||||||
return OleDbType.VarBinary;
|
return OleDbType.LongVarBinary;
|
||||||
case "binary_float":
|
case "binary_float":
|
||||||
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(63)"]);
|
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(63)"]);
|
||||||
return OleDbType.Single;
|
return OleDbType.Single;
|
||||||
|
@ -51,6 +51,10 @@ namespace FreeSql.Oracle
|
|||||||
case OracleDbType.Blob:
|
case OracleDbType.Blob:
|
||||||
ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype2, Value = value };
|
ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype2, Value = value };
|
||||||
break;
|
break;
|
||||||
|
case OracleDbType.Raw:
|
||||||
|
case OracleDbType.LongRaw:
|
||||||
|
ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype2, Value = value };
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
|
@ -55,6 +55,10 @@ namespace FreeSql.Oracle
|
|||||||
if (col.DbPrecision != 0) ret.Precision = col.DbPrecision;
|
if (col.DbPrecision != 0) ret.Precision = col.DbPrecision;
|
||||||
if (col.DbScale != 0) ret.Scale = col.DbScale;
|
if (col.DbScale != 0) ret.Scale = col.DbScale;
|
||||||
break;
|
break;
|
||||||
|
case OleDbType.VarBinary:
|
||||||
|
case OleDbType.LongVarBinary:
|
||||||
|
ret = new OleDbParameter { ParameterName = QuoteParamterName(parameterName), OleDbType = dbtype2, Value = value };
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user