Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql “0x7c910a19”处的指令引用了“OxFFFFFF”处的内存。无法“读取”内存_Sql_Oracle_Vbscript_Scheduled Tasks - Fatal编程技术网

Sql “0x7c910a19”处的指令引用了“OxFFFFFF”处的内存。无法“读取”内存

Sql “0x7c910a19”处的指令引用了“OxFFFFFF”处的内存。无法“读取”内存,sql,oracle,vbscript,scheduled-tasks,Sql,Oracle,Vbscript,Scheduled Tasks,0x7c910a19处的指令引用了OxFFFFFF处的内存。内存无法读取 我有一个小问题,我在.vbs终止之前收到了上面的错误。我不知道为什么会抛出这个错误。下面是.vbs文件的处理过程: Call ImportTransactions() Call UpdateTransactions() Function ImportTransactions() Dim objConnection, objCommand, objRecordset, strOracle Dim strSQL,

0x7c910a19处的指令引用了OxFFFFFF处的内存。内存无法读取

我有一个小问题,我在.vbs终止之前收到了上面的错误。我不知道为什么会抛出这个错误。下面是.vbs文件的处理过程:

Call ImportTransactions()
Call UpdateTransactions()

Function ImportTransactions()

  Dim objConnection, objCommand, objRecordset, strOracle
  Dim strSQL, objRecordsetInsert

  Set objConnection = CreateObject("ADODB.Connection")
  objConnection.Open "DSN=*****;UID=*****;PWD==*****;"
  Set objCommand = CreateObject("ADODB.Command")
  Set objRecordset = CreateObject("ADODB.Recordset")

  strOracle = "SELECT query here from Oracle database"

  objCommand.CommandText = strOracle
  objCommand.CommandType = 1
  objCommand.CommandTimeout = 0
  Set objCommand.ActiveConnection = objConnection
  objRecordset.cursorType = 0
  objRecordset.cursorlocation = 3  
  objRecordset.Open objCommand, , 1, 3

  If objRecordset.EOF = False Then
    Do Until objRecordset.EOF = True        
      strSQL = "INSERT query here into SQL database" 
      strSQL = Query(strSQL)
      Call RunSQL(strSQL, objRecordsetInsert, False, conTimeOut, conServer, conDatabase, conUsername, conPassword)
      objRecordset.MoveNext
    Loop
  End If

  objRecordset.Close()
  Set objRecordset = Nothing
  Set objRecordsetInsert = Nothing

End Function

Function UpdateTransactions()

  Dim strSQLUpdateVAT, strSQLUpdateCodes
  Dim objRecordsetVAT, objRecordsetUpdateCodes

  strSQLUpdateVAT = "UPDATE query here SET [value:costing output] = ([value:costing output] * -1)"
  Call RunSQL(strSQLUpdateVAT, objRecordsetVAT, False, conTimeOut, conServer, conDatabase, conUsername, conPassword) 

  strSQLUpdateCodes = "UPDATE query here SET [value:costing output] = ([value:costing output] * -1) different WHERE clause"
  Call RunSQL(strSQLUpdateCodes, objRecordsetUpdateCodes, False, conTimeOut, conServer, conDatabase, conUsername, conPassword)                 

  Set objRecordsetVAT = Nothing
  Set objRecordsetUpdateCodes = Nothing

End Function
UDPATE:如果我在打开连接后退出函数,请参见下文,它仍然会导致相同的错误

Function ImportTransactions()


  Dim objConnection, objCommand, objRecordset, strOracle
  Dim strSQL, objRecordsetInsert

  Set objConnection = CreateObject("ADODB.Connection")
  objConnection.Open "DSN=*****;UID=*****;PWD==*****;"
  Set objCommand = CreateObject("ADODB.Command")
  Set objRecordset = CreateObject("ADODB.Recordset")
  Exit Function

End Function
它同时进行导入和更新,并且似乎会在之后抛出此错误

提前感谢您的帮助


Clare

以下修复对我有效:我创建了一个.bat文件并添加了以下行cscript vbsFile.vbs

您应该缩小到有问题的行…Mitch Wheat:错误似乎在ImportTransactions中,但是,我为另一个vbs文件生成了类似的代码,这不会引发任何错误。您可以附加一个调试器并查看调用堆栈或在0x7c910a19加载的任何模块吗?错误是否在VBScript或ADO COM对象或Oracle驱动程序中?我不确定这是否真的有帮助,但某处有人反对你给出的参数,知道是什么可能会有用。您可以在其他东西(例如sqlplus)中运行相同的SQL吗?您可以在ImportTransactions中运行更简单的SQL,或者对另一个数据库运行相同的SQL吗?刚刚发现了scheduled tasks标记:这只是作为计划作业失败,还是从命令行运行时也失败?如果只是计划的作业,那么可能会有一些额外的错误,但是没有一个看起来那么可能。当从cmd运行时,它会抛出相同的错误