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

Oracle - cập nhật bản ghi và trả về ngày cập nhật trong cùng một truy vấn

Có lẽ bạn đã quyết định sử dụng JDBCTemplate nhiều nhất để đơn giản hóa mã so với JDBC đơn giản .

Vấn đề cụ thể này IMHO làm cho JDBC đơn giản giải pháp như được đề xuất trong câu trả lời khác đơn giản hơn nhiều, vì vậy tôi chắc chắn khuyên bạn nên lấy kết nối cơ sở dữ liệu từ JDBCTemplate và thực hiện chèn theo cách JDBC.

Giải pháp đơn giản nhất sử dụng JDBCTemplate mà tôi nghĩ đến là bọc chèn trong một PROCEDURE và trả về dấu thời gian dưới dạng OUT tham số.

Ví dụ đơn giản (Điều chỉnh thời gian theo yêu cầu)

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;
/

Cuộc gọi được thực hiện bằng 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 chứa giá trị trả về, ví dụ:[P_TIME:2019-10-19 11:58:10.0]

Nhưng tôi chỉ có thể nhắc lại, trong trường hợp sử dụng cụ thể này, IMHO JDBC là giải cứu từ 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. Cách sử dụng mệnh đề thu thập hàng loạt với câu lệnh SELECT INTO trong cơ sở dữ liệu Oracle

  2. PL / SQL Trigger để cập nhật một bảng khác từ INSERT trên một bảng

  3. Làm cách nào để lấy giá trị giả cho thẻ trống XML trong bảng bằng Oracle?

  4. Chuyển đổi hình ảnh đốm màu thành PUBLIC.ORDIMAGE bằng plsql

  5. sử dụng đầu ra con trỏ trong lựa chọn