在 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 關注
- 263 瀏覽
添加回答
舉報
0/150
提交
取消