【发布时间】:2021-06-14 19:44:12
【问题描述】:
我尝试增加表中的一个字段...但我出错了。
Public Function GetConnexion() As OracleConnection
Dim str = New OracleConnectionStringBuilder With {
.Password = ConfigurationManager.AppSettings(ORACLE_MDP_PDM).ToString,
.UserID = ConfigurationManager.AppSettings(ORACLE_USER_PDM).ToString,
.DataSource = ConfigurationManager.AppSettings(ORACLE_DTSRC_PDM).ToString
}
Return New OracleConnection With {.ConnectionString = str.ConnectionString}
End Function
Private sub getIdObject() As Double
Dim con As OracleConnection = GetConnexion()
con.Open()
Dim cmd As New OracleCommand With {.Connection = con}
cmd.CommandType = CommandType.Text
cmd.CommandText = "UPDATE COUNTER SET VALUE=VALUE+1 where REFERENCE='ID_OBJECT';"
cmd.ExecuteNonQuery()
cmd.Dispose()
End Sub
还有错误:
消息:ORA-00911:字符无效 异常:Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-00911: caractère non valide à OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone) àOracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(字符串的CommandText,OracleParameterCollection paramColl,的CommandType命令类型,OracleConnectionImpl connectionImpl,的Int32 longFetchSize,Int64的clientInitialLOBFS,OracleDependencyImpl orclDependencyImpl,Int64的[]&scnFromExecution,OracleParameterCollection&bindByPositionParamColl,布尔逻辑bBindParamPresent,OracleException&exceptionForArrayBindDML,连接的OracleConnection,OracleLogicalTransaction&oracleLogicalTransaction , 布尔值是FromEF) à Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery() à Cotix.getIdObject() dans XXXX.vb:ligne 60 à Cotix.InsertMapping(List`1 GeneralDatas) dans XXXX.vb:ligne 77 à Cotix._Default.Defrag(MonFormEditPhoto MesDonnees) dans XXXX.vb:ligne 36
当我在 oracleDeveloper 工具中复制/粘贴时......它的工作...... 当我尝试选择时
Private Sub _Default_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim con As OracleConnection = GetConnexion()
con.Open()
Dim cmd As New OracleCommand With {.Connection = con}
cmd.Parameters.Add(New OracleParameter With {.OracleDbType = OracleDbType.Varchar2, .Value = "ID_OBJECT"})
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT VALUE FROM COUNTER where REFERENCE = :1"
Dim dr As OracleDataReader = cmd.ExecuteReader()
dr.Read()
HelperJournal.WriteEntry("NewIdObject", dr.Item("VALUE").ToString)'Write in file :4085 the good value...
con.Close()
con.Dispose()
End Sub
这是工作... 什么我没看到??? 感谢您的帮助
【问题讨论】:
-
我会删除那个分号。它用于分隔语句并且您没有多个语句
-
了解
Using块。此外,Sub没有返回类型。 -
正在处理一个答案,我在答案框中出现了奇怪的东西,让我怀疑这里有一个放错位置的 Unicode 字符:无法打印的东西、错误的变音符号或某种不可见的空格.
-
我也尝试删除分号,但我有错误消息说缺少重要...。然后分号是 Oracle 的语法