Following is the custom implementation I added:
-------------------------------------------------
public static String customSubStrXX(String...str) throws
SQLException {
// In Oracle/PLSQL, the substr functions allows you to extract a
substring from a string.
// The syntax for the substr function is:
// substr( string, start_position, [ length ] )
//
// string is the source string.
// start_position is the position for extraction. The first
position in the string is always 1.
// length is optional. It is the number of characters to extract.
If this parameter is omitted, substr will return the entire string.
//
// Note:
// If start_position is 0, then substr treats start_position as 1
(ie: the first position in the string).
// If start_position is a positive number, then substr starts
from the beginning of the string.
// If start_position is a negative number, then substr starts
from the end of the string and counts backwards.
// If length is a negative number, then substr will return a NULL
value.
String actualStr = str[0];
String strStartPos = str[1];
int start_position = Integer.parseInt(strStartPos);
if(start_position < 0) {
start_position = actualStr.length() + start_position + 1;
}
int length = -1;
boolean lengthProvided = false;
if(str.length == 3) {
String strLength = str[2];
length = Integer.parseInt(strLength);
lengthProvided = true;
if(length < 0) {
return null;
}
}
if(lengthProvided) {
int end_position = start_position-1 + length;
return actualStr.substring(start_position-1, end_position);
} else {
return actualStr.substring(start_position-1);
}
}
-------------------------------------------------
On Mar 8, 12:09 am, Vinod <[email protected]> wrote:
> Thanks, fixing substr will be a good idea.
> Also negative number in substr works with Oracle.
>
> On Mar 6, 3:00 pm, Thomas Mueller <[email protected]>
> wrote:
>
>
>
>
>
>
>
> > Hi,
>
> > Is there a way to register the new implementation with the same name
>
> > > substr ?
>
> > No. I think it would be a source of trouble if we would allow to overwrite
> > library methods.
>
> > Instead, SUBSTR should be fixed if there is a bug. It seems only MySQL
> > returns "Net" (the end of the input string) when using -3. All other
> > databases either throw an exception, or return an empty string. In the next
> > release, H2 will work like MySQL in this case.
>
> > Regards,
> > Thomas
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.