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