sql >> Databáze >  >> RDS >> Oracle

ORA-29531:Chyba třídy žádná metoda

Nejprve se ujistěte, že org.apache.commons.codec.language.ColognePhonetic třída je v databázi (pravděpodobně nebude).

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

Měl by vrátit řádek, pokud existuje (možná bude nutné jej spustit jako privilegovaný uživatel).

Pokud neexistuje, budete muset použít loadjava aplikace k načtení knihovny jar obsahující třídy.

Poté napište obal pro vytvoření statické funkce, která vytvoří instanci třídy (netestováno ):

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. PDO načtení vrátí pouze první řádek

  2. Jak funguje mysqli::commit &mysqli::rollback?

  3. Vložené, odstraněné tabulky (magické tabulky) v MySQL

  4. Funkce SOUNDEX() v Oracle