sql >> Database >  >> RDS >> Oracle

ORA-29531:geen methode in klassefout

Zorg er eerst voor dat de org.apache.commons.codec.language.ColognePhonetic class staat in de database (waarschijnlijk niet).

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

Zou een rij moeten retourneren als deze bestaat (mogelijk moet deze worden uitgevoerd als een bevoorrechte gebruiker).

Als het niet bestaat, moet u de loadjava . gebruiken applicatie om de jar-bibliotheek met de klassen te laden.

Schrijf vervolgens een wrapper om een ​​statische functie te maken die een instantie van de klasse maakt (niet getest ):

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. Een database herstellen met Backup Manager

  2. Hoe rij bovenaan in mysql-query te plaatsen.

  3. UUID of SEQUENTIE voor primaire sleutel?

  4. externe mysql-database verbinden met php