我正在为bigsql编写sql查询。
如果它看起来像这样
select t.city from table t where t.city like 'A%'
它运作正常,但下一个失败了:
select t.city from table t where t.city like 'A%' escape '\'
我只添加转义表达式,它会给我以下错误
Error Code: -5199, SQL State: 57067] DB2 SQL Error: SQLCODE=-5199, SQLSTATE=57067, SQLERRMC=Java DFSIO;1;2, DRIVER=4.15.82
我找到了此文档http://www-01.ibm.com/support/knowledgecenter/SSPT3X_2.1.2/com.ibm.swg.im.infosphere.biginsights.bigsql.doc/doc/bsql_like_predicate.html?lang=en 所以似乎逃避应该有效。
如果我逃脱转义字符,我会收到另一个错误
Error Code: -130, SQL State: 22019] DB2 SQL Error: SQLCODE=-130, SQLSTATE=22019, SQLERRMC=null, DRIVER=4.15.82. 2) [Error Code: -727, SQL State: 56098] DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-130;22019;, DRIVER=4.15.82
但如果我不使用' \'角色是逃避,但另一种角色,如' /'它工作正常。
任何想法为什么会发生?
答案 0 :(得分:0)
试试吧。您可能必须逃避转义字符。
select t.city from table t where t.city like 'A%' escape '\\'
答案 1 :(得分:0)
基于此样本:
\connect bigsql
drop table if exists stack.issue1;
create hadoop table if not exists stack.issue1 (
f1 integer,
f2 integer,
f3 varchar(200),
f4 integer
)
stored as parquetfile;
insert into stack.issue1 (f1,f2,f3,f4) values (0,0,'Detroit',0);
insert into stack.issue1 (f1,f2,f3,f4) values (1,1,'Mt. Pleasant',1);
insert into stack.issue1 (f1,f2,f3,f4) values (2,2,'Marysville',2);
insert into stack.issue1 (f1,f2,f3,f4) values (3,3,'St. Clair',3);
insert into stack.issue1 (f1,f2,f3,f4) values (4,4,'Port Huron',4);
select * from stack.issue1;
select * from stack.issue1 where f3 like 'M%';
\quit
我得到以下结果:
jsqsh --autoconnect --input-file=./t.sql --output-file=t.out
0 rows affected (total: 0.28s)
0 rows affected (total: 0.22s)
1 row affected (total: 0.37s)
1 row affected (total: 0.35s)
1 row affected (total: 0.38s)
1 row affected (total: 0.35s)
1 row affected (total: 0.35s)
5 rows in results(first row: 0.33s; total: 0.33s)
2 rows in results(first row: 0.26s; total: 0.26s)
cat t.out
+----+----+--------------+----+
| F1 | F2 | F3 | F4 |
+----+----+--------------+----+
| 1 | 1 | Mt. Pleasant | 1 |
| 0 | 0 | Detroit | 0 |
| 4 | 4 | Port Huron | 4 |
| 3 | 3 | St. Clair | 3 |
| 2 | 2 | Marysville | 2 |
+----+----+--------------+----+
+----+----+--------------+----+
| F1 | F2 | F3 | F4 |
+----+----+--------------+----+
| 1 | 1 | Mt. Pleasant | 1 |
| 2 | 2 | Marysville | 2 |
+----+----+--------------+----+
这表明您的语法是正确的,但是,基于-5199错误代码,这是FMP进程没有足够内存或Hadoop I / O组件问题的问题。您可以通过发布获得有关此错误的更多信息 db2? sql5199n 从命令行。
SQL错误消息应该指示您发生错误的节点以及Big SQL日志文件所在的位置以及相关的读取器日志文件。
答案 2 :(得分:0)
SQL5199错误通常意味着HDFS的问题(您可以使用db2 \?SQL5199来获取有关消息的详细信息 - 作为用户bigsql)。检查bigsql和DFS日志以查看是否提供了指向该问题的任何指针。
希望这有帮助。