Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-29531:không có phương thức nào trong lỗi lớp

Trước tiên, hãy đảm bảo rằng org.apache.commons.codec.language.ColognePhonetic lớp có trong cơ sở dữ liệu (có thể sẽ không có).

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

Sẽ trả về một hàng nếu nó tồn tại (có thể cần được chạy với tư cách người dùng đặc quyền).

Nếu nó không tồn tại thì bạn sẽ cần sử dụng loadjava ứng dụng để tải thư viện jar chứa các lớp.

Sau đó, viết một trình bao bọc để tạo một hàm tĩnh tạo một thể hiện của lớp ( chưa được kiểm tra ):

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. Nối hàng Oracle SQL theo dấu chấm

  2. PLS-00382:biểu thức không đúng kiểu khi thực thi hàm và cố gắng đặt kiểu trả về vào một biến

  3. sự khác biệt giữa mệnh đề ON và mệnh đề sử dụng trong sql

  4. Hàm TANH () trong Oracle

  5. Oracle SQL - Cách lấy số lượng dựa trên ngày thành nhiều cột trong ORACLE