在VBA代码中设置redshift的enable_case_sensitive_identifier配置

问题描述 投票:0回答:1

我们的 Excel 文件已连接到我们的 redshift 数据库。 redshift 不允许列中出现大写字母,除非我将

enable_case_sensitive_identifier
设置为 true。

在 VBA 代码中设置它只会破坏代码,不会生成任何数据,但也不会生成错误。换句话说,当我单击运行

GenerateData()
的按钮时,什么也没有发生。当我评论第一行时,它就可以工作,但列名都是小写的。

有没有办法在VBA代码中将

enable_case_sensitive_identifier
设置为true?或者还有其他方法将列更改为大写吗?

Sub GenerateData()
     
    Dim sql As String

    ' sql = "SET enable_case_sensitive_identifier TO true;"
    sql = "select " & _
        "emp_name as " & Chr(34) & "Employee Name" & Chr(34) & ", " & _
        "buyer_name as " & Chr(34) & "BUYER Name" & Chr(34) & ", " & _
        "purchase_date " & _
        "from  " & _
        "MyRedshiftTable "
        
    Application.DisplayAlerts = False
      
    Sheets("Data").Select
    With ActiveWorkbook.Connections("redshiftdb").ODBCConnection
        .CommandText = sql
    End With
    
        ActiveWorkbook.RefreshAll
    
    Application.DisplayAlerts = True
End Sub
excel vba
1个回答
0
投票

将enable_case_sensitive_identifier设置为true也意味着在SQL中选择列时将使用大小写。 那么列名是 emp_name 还是类似 Emp_Name 的名称? 为了让 Redshift 尊重 SQL 中列名的大写,您需要将它们用双引号引起来。 类似于 SELECT "Emp_Name" FROM ".

© www.soinside.com 2019 - 2024. All rights reserved.