【问题标题】:export from Excel to Oracle [closed]从 Excel 导出到 Oracle [关闭]
【发布时间】:2017-01-28 21:15:35
【问题描述】:

我有一个项目,我必须将数据从 Excel 电子表格发送到 Oracle 数据库。

这是我正在使用的代码,但它不起作用,我在第二个字符串语句的 strSQL 语句中遇到错误。我正在尝试将 Excel 范围名称用于 InsertUpdate 到 Oracle 数据库中。

Const hostName = "host"
Const portNo = "port"
Const srvSID = "SID"
Const usrID = "username"
Const usrPwd = "password"

Sub ADOInsert()
Dim cnAdo As ADODB.Connection
Dim strConnString As String
Dim strSQL As String
Dim ws1 As Excel.Worksheet
'set the worksheet:
Set ws1 = ThisWorkbook.Worksheets("IMPDATA")
Dim Imprange As Range
Set Imprange = ws1.Range("a2:d6")

    strDriver = "Driver={Microsoft ODBC for Oracle};"
    strParams = "CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=" + hostName + ")(PORT=" + portNo + "))(CONNECT_DATA=(SID=" + srvSID + ")));"
    strUser = "UID=" + usrID + ";PWD=" + usrPwd + ";"

    strConnString = strDriver + strParams + strUser


    Set cnAdo = New ADODB.Connection
    cnAdo.Open strConnString

    '/ this is hardcoded for number of rows and columns.
    For lngRow = 1 To 10
        strSQL = "Insert Into TESTDATA1"'/ 
        strSQL = strSQL & "'" & Range(Imprange, 1).Value & "', "   '/ REQUEST_NUMBER
        strSQL = strSQL & "'" & Range(Imprange, 2).Value & "', "   '/ CID
        strSQL = strSQL & "'" & Range(Imprange, 3).Value & "', "   '/ SERVER_TYPE
        strSQL = strSQL & "'" & Range(Imprange, 4).Value & "' "    '/ COST
        cnAdo.Execute strSQL
    Next
    cnAdo.Close
    Set cnAdo = Nothing
End Sub

【问题讨论】:

  • 欢迎来到 SO!我们更愿意帮助您解决遇到的错误,当然不是来为您写的。我建议在网上搜索指南并遵循它。我们可以帮助您解决在此过程中遇到的任何麻烦。也请通过此Question Checklist,这将帮助您的问题获得更有价值的答案和关注。

标签: vba excel oracle11g odbc instantclient


【解决方案1】:

最简单的方法是将 Excel 文件转换为 .csv 格式,然后您可以使用 SQL 加载程序创建自己的控制文件,或者您可以创建一个指向您的 .csv 文件的外部表.否则,您可以通过编程方式解析 .csv 文件并使用 ODBC、JDBC 等加载表中的每一行。

【讨论】:

  • 要求是通过excel发送
猜你喜欢
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多