Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana mendefinisikan Prosedur Paket Oracle di H2 untuk Pengujian

Inilah yang saya lakukan.

Pertanyaan #2: Untuk menjawab pertanyaan ini saya harus mengubah kueri asli sebagai berikut

@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();
}

Pertanyaan #1: Ada tiga hal yang terlibat untuk menjawabnya. Sekarang saya telah mengubah kueri asli seperti di atas, saya mendapatkan kesalahan yang berbeda:

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)

Itu sedang mencari database bernama sch1 . Sepertinya pola yang digunakan untuk memanggil prosedur tersimpan di H2 adalah database.schema.procedure_name . Karena saya tidak peduli apa sebenarnya prosedur itu, saya dapat memalsukan ini dengan membuat database bernama sch1 skema yang disebut STUDENT_PACKAGE dan nama prosedur Set_Grades_To_A

Untuk membuat database di memori, Anda harus mengatur properti berikut spring.datasource.url di application.properties berkas.

  1. Buat sch1 database sebagai berikut 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 . Perhatikan nama databasenya adalah sch1

  2. Buat STUDENT_PACKAGE skema dengan menambahkan \\;CREATE SCHEMA IF NOT EXISTS STUDENT_PACKAGE ke akhir spring.datasource.url . Ini menambahkan skema kedua yang disebut STUDENT_PACKAGE . Properti akan terlihat seperti ini 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. Buat Set_Grades_To_A prosedur tersimpan dengan menambahkan ini ke 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. SQL Beberapa Kolom dalam klausa IN untuk dikonversi ke JPA

  2. Cara menampilkan PL/SQL dengan benar

  3. Odp.Net - Tergantung pada klien dan server

  4. Karena SQL Server tidak memiliki paket, apa yang dilakukan programmer untuk menyiasatinya?

  5. Perbarui kolom dengan nilai dari kolom lain