Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle - актуализира запис и връща актуализирана дата в същата заявка

Решихте да използвате JDBCTemplate най-вероятно, за да опростите кода в сравнение с обикновен JDBC .

Този конкретен проблем IMHO прави обикновения JDBC решение, както е предложено в друг отговор много по-просто, така че определено бих препоръчал да получите връзката с базата данни от JDBCTemplate и да направите вмъкването по JDBC начин.

Най-простото решение с помощта на JDBCTemplate, което ми идва наум, е да обвия вмъкването в PROCEDURE и връща клеймото за време като OUT параметър.

Прост пример (Коригирайте логиката на времето според изискванията)

create procedure insert_with_return_time (p_str VARCHAR2, p_time OUT DATE) as
BEGIN 
   insert into identity_pk(pad) values(p_str);
   p_time := sysdate;
END;
/

Обаждането се извършва чрез SimpleJdbcCall

SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("insert_with_return_time");
SqlParameterSource params = new MapSqlParameterSource().addValue("p_str", str);
Map<String, Object> out = jdbcCall.execute(params);

Map съдържа върнатата стойност, напр. [P_TIME:2019-10-19 11:58:10.0]

Но мога само да повторя, в този конкретен случай на употреба IMHO JDBC е спасение от JDBCTemplate;)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Времево клеймо на Oracle към sql сървър DateTime

  2. Oracle XMLTYPE екстракт въз основа на стойност и състояние

  3. Не може да се свърже с Oracle чрез PDO

  4. вмъкване в... изберете ... с подзаявка или без ред на колони

  5. Предупреждение:ocifetch() [function.ocifetch]:ORA-24374:дефинирайте не е направено преди извличане или изпълнете и извлечете