我尝试使用 ODP.NET 从 ac# 程序执行以下语句:
string sql = "BEGIN dbms_session.set_nls('NLS_NUMERIC_CHARACTERS','''.,'''); END;";
using (OracleConnection connection = new OracleConnection("Data Source=db;User Id=a;Password=b"))
{
connection.Open();
using (OracleCommand command = new OracleCommand(sql, connection))
{
command.ExecuteNonQuery();
}
connection.Close();
}
我检索以下错误消息:
ORA-02074: 无法在分布式事务中设置 NLS
我的代码中没有使用任何事务。OracleConnection 是隐式分布式事务吗?如果我将enlist=false添加到连接字符串中,它就可以工作。但我不知道为什么。