Как выполнить анонимный блок plsql без параметров в спящем режиме?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как выполнить анонимный блок plsql без параметров в спящем режиме?

Сообщение Anonymous »

Как выполнить анонимный блок plsql без параметров в спящем режиме?

Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();

//Example (as I would like):
Query q = session.createQuery("begin select user_name into :p_name from fnd_user where user_id = :p_id; end;");
q.registerParameter("p_name", String.class, ParameterMode.OUT);
q.registerParameter("p_id", String.class, ParameterMode.IN).bindValue(100);
q.execute();


Но в Query нет регистрации параметров.

Существующие методы с регистрацией параметров не подходят:< /p>
  • createNamedStoredProcedureQuery
  • createStoredProcedureQuery
  • createStoredProcedureCall
добавьте код для выполнения процедуры (begin %ORIGINAL_SQL%(%PARAMS%); end;).

П. С.: Ванильный вариант работает нормально:

String name = session.doReturningWork((Connection c) -> {
String sql = "declare v_str VARCHAR2(100); begin select user_name into :p_name
from fnd_user where user_id = :p_id; end;";
CallableStatement cs = c.prepareCall(sql);
cs.registerOutParameter("p_name", Types.VARCHAR);
cs.setInt("p_id", 1);
cs.execute();
return cs.getString("p_name");
});


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

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

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

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

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

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