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.

Reply via email to