2015-10-19 2 views
0

Я пишу sql-запрос для bigsql.Bigsql как предикатная ошибка

Если это выглядит как этот

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

Попробуйте это, возможно. Возможно, вам удастся избежать символа побега.

select t.city from table t where t.city like 'A%' escape '\\' 
+0

Я редактирую вопрос, чтобы ответить на ваше предложение. – user2281439

+0

Это для вас, чтобы понять ошибки: https: //www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.codes/src/tpc/db2z_n.dita – aadarshsg

+0

Да, Я видел эту страницу. Нет sqlcode = -5199 – user2281439

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. Вы можете получить дополнительную информацию об этой ошибке, выпустив db2? sql5199n из командной строки.

Сообщение об ошибке SQL должно было направлять вас на узел, где произошла ошибка, и где находится файл журнала Big SQL и связанные файлы журнала-читателя.

0

Ошибка SQL5199, как правило, означает проблему с HDFS (вы можете сделать db2 \ SQL5199, чтобы получить подробную информацию о сообщении - как пользователь bigsql). Проверьте журналы bigsql и DFS, чтобы узнать, дает ли это какие-либо указания на проблему.

Надеюсь, это поможет.

Смежные вопросы