从 vb.net 更新 oracle 中的序列
Update sequence in oracle from vb.net
我尝试在 table 中增加一个字段...但是我遇到了一个错误。
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
错误:
Message:ORA-00911: caractère non valide
Exception: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(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()
à 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
当我 copy/Paste 在 oracleDevelopper 工具中...它的工作...
当我尝试 select
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
这是工作...
我怎么没看到????
感谢您的帮助
试试这个:
Public Function GetConnexion() As OracleConnection
Static str As 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
' Note the better name and lack of return type
Private Sub updateIdObject()
Using con As OracleConnection = GetConnexion(), _
cmd As New OracleCommand("UPDATE COUNTER SET VALUE=VALUE+1 where REFERENCE='ID_OBJECT';", con)
con.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
Private Sub _Default_Load(sender As Object, e As EventArgs) Handles Me.Load
Using con As OracleConnection = GetConnexion(), _
cmd As new OracleCommand("SELECT VALUE FROM COUNTER where REFERENCE = :1", con)
cmd.Parameters.Add(New OracleParameter With {.OracleDbType = OracleDbType.Varchar2, .Value = "ID_OBJECT"})
con.Open()
Using dr As OracleDataReader = cmd.ExecuteReader()
dr.Read()
HelperJournal.WriteEntry("NewIdObject", dr.Item("VALUE").ToString)'Write in file :4085 the good value...
End Using
End Using
End Sub
在处理这个答案时,答案框中出现了一些奇怪的东西,以至于我怀疑这里有一个放错地方的 Unicode 字符:一些不可打印的东西、一个错误的双音字或某种不可见的空格,这可能抛弃 Oracle 代码。您可能需要重新输入 SQL.
我尝试在 table 中增加一个字段...但是我遇到了一个错误。
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
错误:
Message:ORA-00911: caractère non valide Exception: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(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() à 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
当我 copy/Paste 在 oracleDevelopper 工具中...它的工作... 当我尝试 select
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
这是工作... 我怎么没看到???? 感谢您的帮助
试试这个:
Public Function GetConnexion() As OracleConnection
Static str As 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
' Note the better name and lack of return type
Private Sub updateIdObject()
Using con As OracleConnection = GetConnexion(), _
cmd As New OracleCommand("UPDATE COUNTER SET VALUE=VALUE+1 where REFERENCE='ID_OBJECT';", con)
con.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
Private Sub _Default_Load(sender As Object, e As EventArgs) Handles Me.Load
Using con As OracleConnection = GetConnexion(), _
cmd As new OracleCommand("SELECT VALUE FROM COUNTER where REFERENCE = :1", con)
cmd.Parameters.Add(New OracleParameter With {.OracleDbType = OracleDbType.Varchar2, .Value = "ID_OBJECT"})
con.Open()
Using dr As OracleDataReader = cmd.ExecuteReader()
dr.Read()
HelperJournal.WriteEntry("NewIdObject", dr.Item("VALUE").ToString)'Write in file :4085 the good value...
End Using
End Using
End Sub
在处理这个答案时,答案框中出现了一些奇怪的东西,以至于我怀疑这里有一个放错地方的 Unicode 字符:一些不可打印的东西、一个错误的双音字或某种不可见的空格,这可能抛弃 Oracle 代码。您可能需要重新输入 SQL.