You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What is your middle-tier/client NLS_LANG setting? Are you using managed ODP.NET? The ZHS16GBK character set is the DB character set, correct?
If you try to execute the same INSERT from the same machine using another client, such as SQL Developer or JDBC, do you see the same error?
A similar issue was reported before. The problem was a character set conversion incompatibility in that case. #185 (comment)
Yes, DB character is ZHS16GBK
Using Oracle.ManagedDataAccess.dll
The test uses the same script of Toad For Oracle & SQL Developer to run normally.
Code:
Environment.SetEnvironmentVariable("NLS_LANG", "AMERICAN_AMERICA.ZHS16GBK");
MessageBox.Show($"Current NLS_LANG: {Environment.GetEnvironmentVariable("NLS_LANG")}");
But the same error occurs
Oracle version:19c
Oracle NLS_CHARACTERSET:ZHS16GBK
ODP.net version: 21.15.0 & 12.2.1100
Execute script: Insert Into tblTemp (Col1, Col2, Col3,Col4) Values('9','密','Ø2*Ø1','M');
DB character:ZHS16GBK
Dll:Oracle.ManagedDataAccess.dll
An error will occur as long as there is an Ø character
The test uses the same script of Toad For Oracle & SQL Developer to run normally.
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-00917: 遺漏逗號 Missing comma
於 OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone)
於 OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, Int32 longFetchSize, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, OracleException& exceptionForArrayBindDML, OracleConnection connection, OracleLogicalTransaction& oracleLogicalTransaction, Boolean isFromEF)
於 Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()
The text was updated successfully, but these errors were encountered: