Hi,

I am unable to run an ALIAS that i created.When I create an ALIAS it  gets 
created sucessfully.However when I run the ALIAS it fails.Please see below

First I create the ALIAS for a method called FIELDS which is in the 
BasicFuntions class.

sql> CREATE ALIAS RR FOR 
"com.temenos.dbi.storedfunctions.BasicFunctions.FIELD"
;
(Update count: 0, 4 ms)


The creation of the ALIAS itself would fail if the class or the method does 
not exist.(I have tested that).But in our case,it can identify both and 
hence lets us create the ALIAS.

But when I immediately run the alias with a call command it says the Method 
cannot be found.Needless to say I have included the jar inside which this 
class is present in the CLASSPATH.(That is why the ALIAS is created)

sql> call RR();
Error: org.h2.jdbc.JdbcSQLException: Method "FIELD 
(com.temenos.dbi.storedfunct
ions.BasicFunctions, parameter count: 0)" not found; SQL statement:
call RR() [90087-172]
        at 
org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
        at org.h2.message.DbException.get(DbException.java:169)
        at org.h2.message.DbException.get(DbException.java:146)
        at 
org.h2.engine.FunctionAlias.findJavaMethod(FunctionAlias.java:255)
        at org.h2.expression.JavaFunction.<init>(JavaFunction.java:33)
        at org.h2.command.Parser.readJavaFunction(Parser.java:2151)
        at org.h2.command.Parser.readFunction(Parser.java:2190)
        at org.h2.command.Parser.readTerm(Parser.java:2500)
        at org.h2.command.Parser.readFactor(Parser.java:2062)
        at org.h2.command.Parser.readSum(Parser.java:2049)
        at org.h2.command.Parser.readConcat(Parser.java:2022)
        at org.h2.command.Parser.readCondition(Parser.java:1887)
        at org.h2.command.Parser.readAnd(Parser.java:1868)
        at org.h2.command.Parser.readExpression(Parser.java:1860)
        at org.h2.command.Parser.parseCall(Parser.java:4038)
        at org.h2.command.Parser.parsePrepared(Parser.java:326)


I hav also checked that the class is a public class and the method is a 
static public method.

package com.temenos.dbi.storedfunctions;

import java.io.CharArrayWriter;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Blob;
import java.sql.Clob;
import java.text.DecimalFormat;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;
import java.util.TimeZone;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

//import com.temenos.j24.common.PreciseDecimal;
//import com.temenos.j24.common.Util;
//import com.temenos.j24.common.jVar;
//import com.temenos.j24.common.jVarData;
//import com.temenos.j24.common.jVarFactory;

public class BasicFunctions {

/*
     * @derby CREATE FUNCTION j24field (param1 VARCHAR(30000), param2
     * VARCHAR(10), param3 VARCHAR(10), param4 VARCHAR(10)) RETURNS LONG 
VARCHAR
     * PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME
     * 'com.temenos.dbi.storedfunctions.BasicFunctions.FIELD';
     */
    public static String FIELD(String sStr, String sSeparator, String 
sOccurence, String sCount) {
        return fGet(sStr, sSeparator, sOccurence, sCount);
    }

The jar is not present in h2*.jar but another jar called TAFJFunctions.jar 
fyi
Cheers,
harish

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to