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

Dữ liệu mùa xuân JPA gọi hàm Oracle

Bạn có thể gọi hàm của mình thông qua truy vấn gốc và nhận kết quả từ hàm kép.

public interface HelloWorldRepository extends JpaRepository<HelloWorld, Long> {

    @Query(nativeQuery = true, value = "SELECT PKG_TEST.HELLO_WORLD(:text) FROM dual")
    String callHelloWorld(@Param("text") String text);

}

Lưu ý rằng nó sẽ không hoạt động nếu hàm của bạn đang sử dụng các câu lệnh DML. Trong trường hợp này, bạn sẽ cần sử dụng @Modyfing chú thích trên truy vấn, nhưng sau đó chính hàm phải trả về số do @Modyfing hạn chế loại trả lại.

Bạn cũng có thể triển khai CustomRepository của mình và sử dụng SimpleJdbcCall :

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.stereotype.Repository;

@Repository
public class HelloWorldRepositoryImpl implements HelloWorldRepositoryCustom {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public String callHelloWorld() {
        SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
                .withCatalogName("PKG_TEST") //package name
                .withFunctionName("HELLO_WORLD");
        SqlParameterSource paramMap = new MapSqlParameterSource()
                .addValue("param", "value"));
        //First parameter is function output parameter type.
        return jdbcCall.executeFunction(String.class, paramMap));
    }

}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa các lớp trình điều khiển Oracle jdbc?

  2. Tạo chế độ xem có thể chỉnh sửa trên Oracle

  3. Cách nhận Giá trị khóa dưới dạng tập kết quả từ cột Oracle JSON bằng cách sử dụng JSON_TABLE

  4. Làm cách nào tôi có thể tạo xác thực trực tiếp phía máy chủ oracle apex mà không cần gửi trang

  5. Truy vấn Oracle để lấy Ngày cụ thể