1

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

4

2 に答える 2

0

C# についてはよくわかりませんが、connection.Open() ステートメントと connection.Close() ステートメントが必要ですか? using ステートメントがそれを処理すると思います。

于 2012-06-27T08:44:20.243 に答える