【发布时间】:2021-07-17 00:31:28
【问题描述】:
朋友们晚安,
我正在上传一个excel到oracle,我发现excel的某些列在列名中有特殊字符,这些是:
“FECHA/CONV”和“N°CODIGO”
如果我删除特殊字符,它可以正常工作,但我无法编辑 excel 文件,我只需要阅读它,
我怎样才能使视觉不会在 mappeo 和选择到 excel 表中产生错误。
我将不胜感激。
我的确切错误是: 设置的部分参数没有设置任何值。
谢谢,
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim _connString As String = "Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.100.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORACLE))); User Id=USER; password=PASS;"
Dim rutacarpeta As String
Dim NombreArchivo As String
Dim tablaBBDD As String
'Dim ot As OracleTransaction = conn.BeginTransaction(IsolationLevel.ReadCommitted)
Using conn As OracleConnection = New OracleConnection(_connString)
conn.Open()
Dim ot As OracleTransaction = conn.BeginTransaction(IsolationLevel.ReadCommitted)
Try
rutacarpeta = "C:\2021\"
NombreArchivo = "FILE_0.xlsx"
tablaBBDD = "FILE_TEST"
Dim xlsxConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=Yes;IMEX=1;';"
xlsxConn = String.Format(xlsxConn, rutacarpeta + NombreArchivo).Trim()
Using excel_con As OleDbConnection = New OleDbConnection(xlsxConn)
excel_con.Open()
'Dim hoja As String = excel_con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing).Rows(0)()
Dim command As OleDbCommand = New OleDbCommand("SELECT FECHA/CONV,CODIGO,ACUERDO FROM [FILE$]", excel_con)
Dim dr As OleDbDataReader
dr = command.ExecuteReader()
Using bulkCopy As OracleBulkCopy = New OracleBulkCopy(conn)
bulkCopy.BulkCopyTimeout = 90000
bulkCopy.DestinationTableName = tablaBBDD
bulkCopy.ColumnMappings.Add(New OracleBulkCopyColumnMapping("FECHA/CONV", "FECHA"))
bulkCopy.ColumnMappings.Add(New OracleBulkCopyColumnMapping("N°CODIGO", "CODIGO"))
bulkCopy.ColumnMappings.Add(New OracleBulkCopyColumnMapping("ACUERDO", "ACUERDO"))
bulkCopy.WriteToServer(dr)
ot.Commit()
bulkCopy.Close()
End Using
End Using
Catch ex As Exception
Try
ot.Rollback()
Catch ex1 As Exception
MessageBox.Show(ex1.Message)
End Try
MessageBox.Show(ex.Message)
End Try
End Using
End Sub
【问题讨论】:
-
SELECT [Whatever]可以吗?
标签: excel oracle vb.net winforms oledb