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を接続文字列に追加すると、機能します。しかし、理由はわかりません。