Bigsql喜欢谓词错误

时间:2015-10-19 09:44:50

标签: bigsql

我正在为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

但如果我不使用' \'角色是逃避,但另一种角色,如' /'它工作正常。

任何想法为什么会发生?

3 个答案:

答案 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日志以查看是否提供了指向该问题的任何指针。

希望这有帮助。