Я создал объект в Oracle на основе класса Java, но не могу понять, как определить конструктор.
Например, у меня есть такой класс Java, и я загружаю его в базу данных Oracle:
import java.sql.SQLData;
import java.sql.SQLException;
import java.sql.SQLInput;
import java.sql.SQLOutput;
public class Foo implements SQLData {
public int bar;
public Foo() {
this.bar = 0;
}
private String sql_type;
@Override
public String getSQLTypeName() throws SQLException {
return sql_type;
}
@Override
public void readSQL(SQLInput stream, String typeName) throws SQLException {
bar = stream.readInt();
sql_type = typeName;
}
@Override
public void writeSQL(SQLOutput stream) throws SQLException {
stream.writeInt(bar);
}
}
Затем в Oracle я создаю объект, подобный этому:
CREATE OR REPLACE TYPE foo AS OBJECT
EXTERNAL NAME 'Foo' LANGUAGE JAVA
USING SQLDATA(
bar NUMBER EXTERNAL NAME 'bar',
CONSTRUCTOR FUNCTION foo RETURN SELF AS RESULT EXTERNAL NAME 'Foo() return Foo'
)
;
Но я получаю такую ошибку каждый раз, когда пытаюсь использовать ее с моим конструктором:
ORA-29540: класса oracle.aurora.sqljtype.SQLJ7380A743BCB64E4FAFE99F03EBECF627 не существует.
Может ли кто-нибудь объяснить мне, как определить конструктор, когда я создаю объект Oracle на основе класса Java?