如何在IBMDB2iSeries中获取ASCII/EBCDIC字符

如何在IBMDB2iSeries中获取ASCII/EBCDIC字符,db2,ibm-midrange,Db2,Ibm Midrange,我想在IBMDB2iSeries中获取字符引号(”)和双引号(“)ASCII/EBCDIC。 老实说,我不知道iSeries到底支持什么-ASCII或EBCDIC。我正在尝试两者,但运气不好 示例:获取(A)字符 SELECT * FROM MYTABLE WHERE CUSTOMER_NAME LIKE '%' + CHR(065) + '%' SELECT * FROM MYTABLE WHERE CUSTOMER_NAME LIKE '%' + CHR(41) + '%' SELE

我想在IBMDB2iSeries中获取字符引号(
)和双引号(
)ASCII/EBCDIC。 老实说,我不知道iSeries到底支持什么-ASCII或EBCDIC。我正在尝试两者,但运气不好

示例:获取(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-找不到*LIBL type*N中的CHR


下面是一些关于SQL的基本信息,可能会有所帮助

这一脚注大致概括了这一点:

“字符转换在需要时是自动的,并且在成功时对应用程序是透明的。因此,当语句执行中涉及的所有字符串都以相同的方式表示时,转换知识是不必要的。因此,对于许多读者来说,字符转换可能无关紧要。”

该函数是在V6R1中添加的


编码到特定字符集不是一种好的做法,但是您可以使用API在HLL中执行字符转换。

以下是一些有关SQL的基本信息,可能会有所帮助

这一脚注大致概括了这一点:

“字符转换在需要时是自动的,并且在成功时对应用程序是透明的。因此,当语句执行中涉及的所有字符串都以相同的方式表示时,转换知识是不必要的。因此,对于许多读者来说,字符转换可能无关紧要。”

该函数是在V6R1中添加的


编码到特定字符集不是一种好的做法,但是您可以使用API在HLL中执行字符转换。

如果您只是想在字符串中添加单引号(撇号),并用单引号分隔,则需要将其加倍,如下图所示。'%''%。如果您想连接,请使用
|
(在unix中,称为2个“管道”字符),而不是
+
(plus)。在示例中不需要十六进制,但如果需要,则可以使用
x'C1'
(EBCDIC中的“A”)

iSeries通常在大多数情况下使用EBCDIC。有一个
char()
函数

联机文档的链接是针对Linux、Unix和Windows上的DB2的

  • 例如,请参见
  • 例如,请参见
  • 例如,请参见

如果您只是试图在由单引号分隔的字符串中添加单引号(撇号),则需要将其加倍,如下面的
'%''%
。如果要连接,请使用
|
(在unix中,称为2个“管道”字符),而不是
+
(加号)。在您的示例中,您不需要十六进制,但如果需要,则可以使用
x'C1'
(EBCDIC中的“A”)

iSeries通常在大多数情况下使用EBCDIC。有一个
char()
函数

联机文档的链接是针对Linux、Unix和Windows上的DB2的

  • 例如,请参见
  • 例如,请参见
  • 例如,请参见

首先,我想知道如何获取字符ascii/ebcdic,然后将其用于以后的使用,您知道IBM DB2 iSeries不支持正则表达式。首先,我想知道如何获取字符ascii/ebcdic,然后将其用于以后的使用,您知道IBM DB2 iSeries不支持正则表达式。当Unicodee变得相对普遍。由于可能是V3R1,人们更倾向于使用QDCX。我同意上一条评论。Bob Cozzi表示,“应该避免使用QDCX板在这两个基本字符集之间进行转换。”()当Unicode变得相对普遍时,QDCXLATE基本上被淘汰了。由于可能是V3R1,QDCXLATE是首选。我同意上一条评论。Bob Cozzi说,“应该避免使用QDCXLATE在这两个基本字符集之间进行转换。”()