oracle数据库指定字段类型 返回

SqlSugar 沟通中
9 1062

在实体上指定字段的参数类型不生效 SqlParameterDbType =OracleDbType.NVarchar2

热忱回答(9)

  • fate sta fate sta VIP0
    2025/12/12

    截图实体和代码。

    0 回复
  • fate sta fate sta VIP0
    2025/12/12

    并且sqlsugar版本要升级。

    0 回复
  • 信仰゛ 信仰゛ VIP0
    2025/12/12

    image.png

    目前用的5.1.4.207,

    想要达到原生var param = new OracleParameter("p_name", OracleDbType.NVarchar2);

    0 回复
  • 信仰゛ 信仰゛ VIP0
    2025/12/12

    @fate sta:想要达到原生var param = new OracleParameter("p_name", OracleDbType.NVarchar2);的效果。

    0 回复
  • fate sta fate sta VIP0
    2025/12/12

    目前没有问题,是什么操作不生效,提供俱体代码。

    0 回复
  • 信仰゛ 信仰゛ VIP0
    2025/12/12


    @fate sta:执行能成功,但写入生僻字会变“?”或者乱码。用原生的方式就没问题。所以要指定数据库字段类型。

    比如我的数据库NVarchar2的对应的字符集是AL16UTF16,插入生僻字“啓”。

    0 回复
  • fate sta fate sta VIP0
    2025/12/12
    [SugarColumn(ColumnDataType = "nvarchar2",SqlParameterDbType =typeof(Nvarchar2PropertyConvert) )]
    public string Name { get; set; }


    这个正确用法。

    0 回复
  • fate sta fate sta VIP0
    2025/12/12

    用Nvarchar2PropertyConvert ,只指定DbType不能影响到非参数化的SQL(批量写入),这种特殊的要改用转换。


    0 回复
  • 信仰゛ 信仰゛ VIP0
    2025/12/17

    @fate sta:好的,问题已解决,感谢。

    0 回复