为了账号安全,请及时绑定邮箱和手机立即绑定

C# .net Core 和 Oracle 设置编码

C# .net Core 和 Oracle 设置编码

C#
忽然笑 2021-07-06 17:49:12
在 web-api 项目中,.Net Core已Oracle通过以下方式连接到数据库dotNetCore.data.OracleClient (nugget package)我从流水线函数中读取数据,如下所示: using (DbConnection connection = new OracleConnection("oraclecs")) {    connection.Open();    using (var cmd = connection.CreateCommand()) {      cmd.CommandType = CommandType.Text;      cmd.CommandText = "select name from Table(SCHEMA.PACKAGE.FUNC(PARAM1=>1,PARAM2=>4))";      DbDataReader er = cmd.ExecuteReader();      while (er.Read()) {        string Name = er.GetValue(er.GetOrdinal(name: "name")).ToString();      }      connection.Close();    }  }俄语数据库编码的数据库中的名称NLS_CHARACTERSET是CL8MSWIN1251当我从字段中获得价值时,name我看到 ???????? 而不是真实姓名也只是select在命令文本中通过Oracle SQL Developer返回正确的数据什么可以帮助我解决它?
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

我的 .net Core web-api 在 docker 中运行


我在文件 docker-compose.override.yml 中设置了 NLS_LANG=.CL8MSWIN1251 这对我有帮助


我的 docker-compose.override.yml 文件:


version: '3'


services:

  api:

    environment:

      - ASPNETCORE_ENVIRONMENT=Development

      - ORACLE_CS=Data Source = ip:port/sid;PERSIST SECURITY INFO=True;USER ID=user; Password=password;

      - NLS_LANG=.CL8MSWIN1251

    ports:

      - "5050:80"

networks:

  default:

    external:

      name: nat


查看完整回答
反对 回复 2021-07-10
  • 1 回答
  • 0 关注
  • 245 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信