CLOB存储在数据库中,LONGCHAR是用于本地操作的数据类型。如果您存储BLOB,则必须使用MEMPTR才能在本地处理它。
由于您询问了有关STRING的函数,我假设CLOBS和LONGCHARs是您所追求的(CLOB = Chaplercter Large Object,假设为BLOB = Binary Large Object)。
可以在LONGCHARS上使用几个(或某些)字符串操作方法和函数,例如SUBSTRING。无论您使用的是CHARACTER还是LONGCHAR,都会显示语法。如果你想
示例 - SUBSTRING,INDEX和复制LOB
DEFINE VARIABLE cStart AS LONGCHAR NO-UNDO.
DEFINE VARIABLE cEnd AS LONGCHAR NO-UNDO.
DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
/* Fill the variable with lots of bogus data */
DO i = 1 TO 10000:
cStart = cStart + "ABCDEFGHIJKLMN".
/* Insert a _ once in 100 */
IF RANDOM(1, 100) = 100 THEN cStart = cStart + "_".
END.
DISPLAY LENGTH(cStart).
/* SUBSTRING */
cEnd = SUBSTRING(cStart, 1, 100000).
DISPLAY LENGTH(cEnd).
/* Is there a _ in the string - most likely! */
DISPLAY INDEX(cStart, "_").
/* SUBSTRING will convert output to CHARACTER if the length is less than roughly 32k */
cString = SUBSTRING(cStart, 1, 30000).
DISPLAY cString.
/* Lets save the CLOB so we can look at it */
COPY-LOB FROM cStart TO FILE "c:\temp\testing.txt".
/* Actually you can DISPLAY a LONGCHAR as well but why would you really? */
DISPLAY cStart
VIEW-AS EDITOR LARGE INNER-LINES 300 INNER-CHARS 300
WITH FRAME x1 WIDTH 320 .
能否请您更具描述。 “字符串操作” - 你能举一个例子吗?很抱歉张贴在这里..我不能“评论”,因为我没有足够的声誉 – Austin
非常高兴的响应奥斯汀。“字符串操作”意味着子串,替换,修剪等功能,可以在字符串上执行。 更清楚SUBSTRING(vChar,1,1)。 – Ravi