Как объединить вкладку в поле просмотра DB2? - PullRequest
2 голосов
/ 05 февраля 2020

Я пытался создать Db2 (база данных размещена в IBM i, работающем с 7.3), в котором одно из полей (поле символа / символа) создается путем объединения нескольких различных частей данных вместе. Суть в том, что между каждым из этих полей данных должна присутствовать вкладка, которая используется для разграничения полей в штрих-коде DataMatrix.

Следующая ссылка является набором символов ASCII и EBCDI C, который я использую в качестве ссылки. Я использую шестнадцатеричный код для горизонтальной вкладки следующим образом, чтобы попытаться объединить вкладки в поле символа, которое я создаю (например):

select 'data1' || X'09' || 'data2' from 
sysibm.sysdummy1;

К сожалению, единственное настоящее, что приводит к из шестнадцатеричного кода (X'09 ') представляется одним пробелом, как показано ниже:

Result set:    
data1 data2

Когда я использую результирующее поле в представлении для создания 2D штрих-кода, на самом деле пробелы в все разделение полей (видно после сканирования указанного штрих-кода). Какой трюк на самом деле получить вкладку, которая будет отображаться в поле просмотра Db2? Должен ли я использовать другой код или функцию? Я также пытался использовать char (05) и char (09), но безрезультатно. Кроме того, я попытался привести шестнадцатеричный код как символ, как показано ниже, но безуспешно:

select 'data1' || cast(X'09' as CHAR) || 'data2' from 
sysibm.sysdummy1;

Любые мысли или идеи будут высоко оценены!

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Вместо этого попробуйте x'05 '.

Если вы скопируете следующую последовательность символов ("a" + "\ tab" + "b") из какого-либо текстового редактора, вы получите результат, как описано:

values hex('a   b');

|00001 |
|------|
|810582|
0 голосов
/ 10 февраля 2020

Вы можете использовать CHR() на обоих Db2 для LUW https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000778.html

Возвращает символ, значение кода ASCII которого указано в аргументе.

и Db2 для i https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/db2/rbafzscachr.htm

Функция CHR возвращает символ EBCDI C, который имеет значение кода ASCII, заданное аргументом.

values 'A' || CHR(9) || 'B'

возврат

1  
---
A   B
...