sql >> Databasteknik >  >> RDS >> Oracle

ORA-29531:ingen metod i klassfel

Kontrollera först att org.apache.commons.codec.language.ColognePhonetic klass finns i databasen (det kommer det förmodligen inte att vara).

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

Bör returnera en rad om den finns (kan behöva köras som en privilegierad användare).

Om det inte finns måste du använda loadjava applikation för att ladda jar-biblioteket som innehåller klasserna.

Skriv sedan ett omslag för att skapa en statisk funktion som gör en instans av klassen (otestad ):

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. Avancerad SQL:Variationer och olika användningsfall av T-SQL Insert Statement

  2. Hur man använder GROUP BY för att hämta en resultatuppsättning med prioritet på alfabetisering

  3. Fyller i saknade datum per grupp

  4. SQL Server Tree Query