oracle - 从 vb.net 更新 oracle 中的序列
问题描述
我尝试增加表中的字段......但我有一个错误。
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:caractère 无效异常:Oracle.ManagedDataAccess.Client.OracleException(0x80004005):ORA-00911:caractère 无效à 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 , 甲骨文异常&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
当我在 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
这是工作......我没有看到什么????谢谢你的帮助
解决方案
试试这个:
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。
推荐阅读
- angular - Angular Mat Select Multiple selectionchange 查找更改了哪个选项
- laravel-5 - 如何在查询生成器中使用模型的 getter 属性
- proguard - Proguard:-keepparameternames 仅适用于某些包
- sql - 使用 objection.js 或 knex.js 在 postgres 中的字符串列的 json 数组中查询
- node.js - 当对象在另一个对象内时访问对象属性
- excel - 循环“批量导出”崩溃 - 处理器或代码错误?
- dart - Flutter:Material App 的标题用在哪里?
- javascript - 谷歌云函数快速入门
- javascript - 如何通过 Javascript 读取元数据内容?
- r - 如何在r中充满字符串变量的数据集上进行K-means聚类