Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-29531:няма метод в грешка в класа

Първо се уверете, че org.apache.commons.codec.language.ColognePhonetic клас е в базата данни (вероятно няма да бъде).

SELECT *
FROM   ALL_OBJECTS
WHERE  OBJECT_TYPE LIKE '%JAVA%'
AND    LOWER( OBJECT_NAME ) LIKE '%colognephonetic%';

Трябва да върне ред, ако съществува (може да се наложи да се стартира като привилегирован потребител).

Ако не съществува, ще трябва да използвате loadjava приложение за зареждане на jar библиотеката, съдържаща класовете.

След това напишете обвивка, за да създадете статична функция, която прави екземпляр на класа (нетествано ):

CREATE JAVA SOURCE NAMED Phonetics AS
import org.apache.commons.codec.language.ColognePhonetic;

public class Phonetics {
  public static String encode(
    final String text
  ){
    final ColognePhonetic cp = new ColognePhonetic();
    return cp.encode( text );
  }
}
/

CREATE FUNCTION get_phonetic_string(i_string VARCHAR2) RETURN VARCHAR2 AS
  LANGUAGE JAVA NAME 'Phonetics.encode( java.lang.String ) return java.lang.String';



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Условна SUM на Oracle

  2. Изгледът на Oracle не може да се актуализира, съвет относно тригерите Instead Of

  3. Как да игнорирам амперсандите в SQL скрипт, изпълняван от SQL Plus?

  4. Нуждаят ли се процедурите от отделни права за достъп върху таблиците?

  5. NLS_INITCAP() Функция в Oracle