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

Cách xác định Quy trình gói Oracle trong H2 để kiểm tra

Đây là những gì tôi đã làm.

Câu hỏi số 2: Để trả lời câu hỏi này, tôi đã phải thay đổi truy vấn gốc như sau

@Repository
public interface StudentRepository extends JpaRepository<Student, String> {

@Modifying
@Query(value = "call sch1.STUDENT_PACKAGE.Set_Grades_To_A('A')", nativeQuery = true)
public void setStudentGradeToA();
}

Câu hỏi số 1: Ba điều liên quan để trả lời điều này. Bây giờ tôi đã thay đổi truy vấn gốc như trên, tôi gặp một lỗi khác:

Caused by: org.h2.jdbc.JdbcSQLException: Database "sch1" not found; SQL statement:
call sch1.STUDENT_PACKAGE.Set_Grades_To_A('A') [90013-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)

Nó đang tìm kiếm một cơ sở dữ liệu có tên là sch1 . Có vẻ như mẫu được sử dụng để gọi một thủ tục được lưu trữ trong H2 là database.schema.procedure_name . Vì tôi không quan tâm quy trình đó thực sự là gì nên tôi có thể giả mạo điều này bằng cách tạo cơ sở dữ liệu có tên sch1 một lược đồ được gọi là STUDENT_PACKAGE và tên thủ tục Set_Grades_To_A

Để tạo cơ sở dữ liệu trong bộ nhớ, bạn phải đặt thuộc tính sau spring.datasource.url trong application.properties tệp.

  1. Tạo sch1 cơ sở dữ liệu như sau spring.datasource.url=jdbc:h2:mem:sch1;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=Oracle;INIT=CREATE SCHEMA IF NOT EXISTS first_schema . Lưu ý rằng tên cơ sở dữ liệu là sch1

  2. Tạo STUDENT_PACKAGE giản đồ bằng cách thêm \\;CREATE SCHEMA IF NOT EXISTS STUDENT_PACKAGE này vào cuối spring.datasource.url . Điều này thêm một lược đồ thứ hai có tên là STUDENT_PACKAGE . Thuộc tính sẽ giống như sau spring.datasource.url=jdbc:h2:mem:sch1;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=Oracle;INIT=CREATE SCHEMA IF NOT EXISTS first_schema\\;CREATE SCHEMA IF NOT EXISTS STUDENT_PACKAGE

  3. Tạo Set_Grades_To_A thủ tục được lưu trữ bằng cách thêm nó vào schema.sql CREATE ALIAS STUDENT_PACKAGE.Set_Grades_To_A AS $$ void setGradesToA(String s) { new StringBuilder(s).reverse().toString(); } $$;



  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 nhanh nhất để tính toán băm của toàn bộ bảng

  2. Oracle - Tại sao số 0 đứng đầu của một số biến mất khi chuyển đổi nó thành TO_CHAR

  3. Oracle tương đương với SQL Server DATEPART

  4. Đọc văn bản tiếng Ả Rập từ cơ sở dữ liệu Oracle được mã hóa trong WE8ISO8859P1 bằng java

  5. Truy xuất IDENTITY được chèn lần cuối của Oracle