InterSystems SQL Reference
$EXTRACT
|
|
$EXTRACT(string[,from[,to]])
string | The target string from which the substring is to be extracted. |
from | Optional The position within the target string for a single character, or the beginning of a range of characters (inclusive), to be extracted. Specified as a positive integer counting from 1. |
to | Optional The end position (inclusive) for a range of characters to be extracted. Specified as a positive integer counting from 1. |
SET a="QT PIE" SET b=("QT "_$CHAR(960)) &sql(SELECT $EXTRACT(:a,-33,4), $EXTRACT(:a,4,4), $EXTRACT(:a,4,99), $EXTRACT(:b,-33,4), $EXTRACT(:b,4,4), $EXTRACT(:b,4,99) INTO :a1,:a2,:a3,:b1,:b2,:b3) IF SQLCODE'=0 { WRITE !,"Error code ",SQLCODE } ELSE { WRITE !,"ASCII form returns ",!,a1,!,a2,!,a3 WRITE !,"Unicode form returns ",!,b1,!,b2,!,b3 }
SET a="THIS IS A TEST" SET b="" &sql(SELECT $EXTRACT(:a,33), $EXTRACT(:a,-7), $EXTRACT(:a,3,2), $EXTRACT(:a,-7,0), $EXTRACT(:a,-7,-10), $EXTRACT(:b,-33,4), $EXTRACT(:b,4,4), $EXTRACT(:b,4,99), $EXTRACT(NULL,-33,4), $EXTRACT(NULL,4,4), $EXTRACT(NULL,4,99) INTO :a1,:a2,:a3,:a4,:a5,:b1,:b2,:b3,:c1,:c2,:c3) IF SQLCODE'=0 { WRITE !,"Error code ",SQLCODE } ELSE { WRITE !,"FROM too big: ",a1 WRITE !,"FROM negative, no TO: ",a2 WRITE !,"TO smaller than FROM: ",a3 WRITE !,"TO not a positive integer: ",a4,a5 WRITE !,"LIST is null string: ",b1,b2,b3,c1,c2,c3 }