Вызвать функцию PL/SQL из загрузки Java/springJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вызвать функцию PL/SQL из загрузки Java/spring

Сообщение Anonymous »

У меня есть функция PL/SQL, которая принимает 3 параметра и возвращает логическое значение
Ниже приведен фрагмент кода

Код: Выделить всё

CREATE OR REPLACE FUNCTION IS_EMPLOYEE_EXISTS(
EMP_ID IN EMPLOYEE.EMP_ID%TYPES
EMP_NAME IN EMPLOYEE.EMP_NAME%TYPES
EMP_CATEGORY IN EMPLOYEE.EMP_CATEGORY%TYPES)
RETURN BOOLEAN
-- performing some operations based on the inputs given
Теперь моя задача — вызвать эту функцию из моего класса Java с помощью Spring jdbc
Я не могу вызвать это, поскольку драйверы Jdbc этого не делают поддержка логических типов pl/sql
мой подход к вызову этой функции следующий
Я хочу вызвать ее с именованными параметрами, а не с порядковым параметром
`

Код: Выделить всё

@Component
public MyClassDao extends AbstractDao(have the logic to get the DS){

final NamedParameterJdbcTemplete templete;

@Autowired
public MyClassDao(DataSource ds, NamedParameterJdbcTemplete templete){
super(dataSource);
this.templete = templete;
}

String queryString = "{ :"+ "RETURN_VALUE"+ " = call IS_EMPLOYEE_EXISTS ( :" + "EMP_ID" + ", :" +" EMP_NAME" + ", :" + "EMP_CATEGORY" +")}";

public Boolean callFunction(String empId,String empName, String empCat){

boolean result = false;

try ( CallableStatement stmt = getDataSource().getConnection().prepareCall(IS_EMPLOYEE_EXISTS)) {

stmt.registerOutParameter(RETURN_VALUE, Types.NUMERIC);
stmt.setString(EMP_ID, empId);
stmt.setString(EMP_NAME, empName);
stmt.setString(EMP_CATEGORY, empCat);

stmt.execute();

int returnValue = stmt.getInt(RETURN_VALUE);
result = (returnValue == 1); // Interpret as boolean (1 for true, 0 for false)

} catch (SQLException ex) {
ex.printStackTrace();
}

return result;
}
}

Я пробовал и другие подходы, которые тоже не сработали
`

Подробнее здесь: https://stackoverflow.com/questions/783 ... pring-boot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»