SQL查询带有美元符号的表

时间:2018-05-03 19:01:22

标签: postgresql escaping looker

我使用了Looker Dashboarding软件(参见:looker.com)。它在数据库的looker_scratch模式中创建了具有长名称的临时表,每个名称都包含一个美元符号。

使用" SQL Runner"可以直接查询这些内容。在Looker本身,它能够以某种方式逃脱美元符号,但我无法使用第三方SQL客户端查询它们。

我试图查询此表:

SELECT *
FROM looker_scratch.LR$5UA5D3XQDBPAYU0Q9FLFE_test

但得到错误:

the # of binded parameters < the # of parameter markers

如何查询表格?

我试过了:

  • ...FROM looker_scratch."LR$5UA5D3XQDBPAYU0Q9FLFE_test" - 表示关系不存在
  • ...FROM looker_scratch."LR\$5UA5D3XQDBPAYU0Q9FLFE_test" - 表示关系不存在
  • ...FROM looker_scratch.$LR\$5UA5D3XQDBPAYU0Q9FLFE_test$ - 说出语法错误
  • ...FROM looker_scratch.$$LR\$5UA5D3XQDBPAYU0Q9FLFE_test$$ - 说出语法错误
  • ...FROM looker_scratch.E'LR\$5UA5D3XQDBPAYU0Q9FLFE_test' - 说出语法错误

1 个答案:

答案 0 :(得分:4)

尝试按模式选择确切的标识符:

select oid::regclass from pg_class where relname ilike '%5ua5d%';

E.g:

so=# create table t."WeirdMix$" ();
CREATE TABLE
Time: 55.750 ms
so=# select oid::regclass from pg_class where relname ilike '%mix%';
      oid
---------------
 t."WeirdMix$"
(1 row)

Time: 90.814 ms