在 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
- 1 回答
- 0 关注
- 245 浏览
添加回答
举报
0/150
提交
取消