Как получить символ ASCII / EBCDIC в IBM db2 iSeries - PullRequest
1 голос
/ 17 ноября 2011

Я хочу получить символьную кавычку (') и двойную кавычку (") ASCII / EBCDIC в IBM DB2 iSeries.Честно говоря, я не знаю, что именно поддерживает iSeries - ASCII или EBCDIC.Я пробую оба, но не повезло.

http://www.simotime.com/asc2ebc1.htm

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0010873.htm

Пример: получить (A) символ

SELECT * FROM MYTABLE WHERE CUSTOMER_NAME LIKE '%' + CHR(065) + '%'

SELECT * FROM MYTABLE WHERE CUSTOMER_NAME LIKE '%' + CHR(41) + '%'

SELECT * FROM MYTABLE WHERE CUSTOMER_NAME LIKE '%' + CHR(193) + '%'

Дает мне эту ошибку:

SQL0204 - CHR в * LIBL тип * N не найден.

Ответы [ 2 ]

4 голосов
/ 17 ноября 2011

Если вы просто пытаетесь вставить одинарную кавычку (апостроф) в строку, разделенную одинарными кавычками, вам нужно удвоить ее, например, '%''%'.Если вы хотите объединить, используйте || (в Unix, известном как 2 символа "pipe"), а не + (плюс).Вам не нужен hex в вашем примере, но если бы он был, способ сделать это был бы x'C1' ('A' в EBCDIC).

iSeries изначально использует EBCDIC для большинства вещей в целом,Есть функция char().

Ваша ссылка на онлайн-документацию предназначена для DB2 в Linux, Unix и Windows.Требуется Информационный центр iSeries по http://publib.boulder.ibm.com/eserver/ibmi.html или, более конкретно (в зависимости от используемой версии ОС)

2 голосов
/ 17 ноября 2011

Вот некоторая базовая информация о преобразовании SQL , которая может оказаться полезной.

Эта сноска в значительной степени подводит итог:

"Преобразование символов, когда требуется, происходит автоматически и прозрачно для приложения, когда оно успешно. Следовательно, знание преобразования не требуется, когда все строки, участвующие в выполнении оператора, представлены одинаково Таким образом, для многих читателей преобразование символов может быть неактуальным "

Функция CHR была добавлена ​​в V6R1.

Кодирование для определенного набора символов не является хорошей практикой, однако вы можете выполнять преобразование символов в HLL, используя QDCXLATE API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...