【问题标题】:Tableau Oracle DB SQL column name select with spacesTableau Oracle DB SQL 列名选择带空格
【发布时间】:2017-09-08 20:32:35
【问题描述】:

我在 Tableau 中使用自定义 SQL 查询,该查询连接到 Oracle DB 中的表。我有一些带有空格的列名和一些没有空格的列名。如果我使用带空格的列名,我会收到错误消息。请看下面:

Column Names
"Department"
"Job Type"

用于无空格的列名的方法

SELECT Department FROM OG_COCKPIT_HC_CONTR_V -- (WORKS!)

SELECT (Department) FROM OG_COCKPIT_HC_CONTR_V -- (WORKS!)

SELECT "Department" FROM OG_COCKPIT_HC_CONTR_V -- (DOESN'T WORK)

SELECT [Department] FROM OG_COCKPIT_HC_CONTR_V -- (DOESN'T WORK)

SELECT 'Department' FROM OG_COCKPIT_HC_CONTR_V -- (DOESN'T WORK)

对于“工作类型”字段,上述方法均无效。你知道什么是正确的语法吗?

【问题讨论】:

  • 根据stackoverflow.com/questions/13798035/… 双引号应该可以工作。您是否检查以确保它不区分大小写并且您输入的内容完全相同?
  • 单引号用于字符串常量而不是标识符。方括号在 SQL 标识符中无效。 (Department) 与Department完全相同。但是Department 和"Department" 是两个不同的列名:docs.oracle.com/database/121/SQLRF/…

标签: sql oracle tableau-api


【解决方案1】:
SELECT "Department","Job Type" FROM OG_COCKPIT_HC_CONTR_V 

应该可以正常工作,但请记住区分大小写。

泰德。

【讨论】:

  • 它可能行不通。部门和“部门”的列名不同。
【解决方案2】:

如果SELECT Department ... 有效但SELECT "Department" ... 无效,则表示Department 列的定义没有双引号并且不区分大小写。以下所有语句都应该可以正常工作:

select Department, "Job Type" FROM og_cockpit_hc_contr_v;
select department, "Job Type" FROM og_cockpit_hc_contr_v;
select DEPARTMENT, "Job Type" FROM og_cockpit_hc_contr_v;

可能是作业类型中的拼写错误?考虑以下示例:

SQL>     create or replace view og_cockpit_hc_contr_v as 
         select 'Dep1' as Department, 'Dummy' as "Job Type" from dual
         ;

SQL>     select column_name from user_tab_cols 
         where table_name= 'OG_COCKPIT_HC_CONTR_V'
         and (upper(column_name) like 'JOB%' or upper(column_name) like'DEP%')
         ;

COLUMN_NAME
-----------------
DEPARTMENT
Job Type

SQL>     col department for a10
SQL>     col "Job Type" for a10
SQL>     select Department, "Job Type" FROM og_cockpit_hc_contr_v;

DEPARTMENT Job Type
---------- ----------
Dep1       Dummy

Note: Oracle 不建议对数据库对象名称使用带引号的标识符。这些带引号的标识符被 SQL*Plus 接受,但在使用其他管理数据库对象的工具时它们可能无效。

【讨论】:

    猜你喜欢
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2013-07-31
    • 2016-10-29
    • 1970-01-01
    • 2012-12-20
    相关资源
    最近更新 更多