(本文档仅供参考)
问题
在数据集中,SQL查询 在SQL Developer中是运行正常的,但是在smartbi中却报“表达式解析错误:expecting STRING_LITERAL, found '['at line:1 column:399”...
解决方案
1、是因为这个SQL语句里面有一些特殊字符导致的,需要将特殊字符转义一下,比如select char(47) as a的代表字符“\”,其他字符的转义方式可以去网上搜索下。
2、sql中由于一些特殊符号,比如\,sql查询中应该是不支持直接写的。需要通过获取ACSII的方式实现,比如向上尖括号他的sql是这样子的:
select concat('[',cast(char(94) as CHAR(20)),'->]') as aa from categories limit 1
常见特殊字符转义参考
1、oracle、PostgreSQL
[:chr(91)
\:chr(92)
]:chr(93)
^:chr(94)
2、mysql、sqlserver
[:char(91)
\:char(92)
]:char(93)
^:char(94)