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

chạy tập lệnh sql oracle từ java

Gặp vấn đề tương tự cách đây không lâu, tôi đã gặp câu hỏi của bạn nhiều lần khi đang tìm kiếm giải pháp, vì vậy tôi nghĩ rằng tôi nợ bạn — đây là những phát hiện của tôi cho đến nay:

Tóm lại, không có giải pháp sẵn sàng nào cho điều đó:nếu bạn mở Ant hoặc Maven nguồn, bạn sẽ thấy họ đang sử dụng bộ tách tập lệnh dựa trên regexp đơn giản, tốt cho các tập lệnh đơn giản, nhưng thường không thành công, ví dụ:các thủ tục được lưu trữ. Câu chuyện tương tự với iBATIS, di chuyển c5 db, v.v.

Vấn đề là, có nhiều hơn một ngôn ngữ liên quan:để chạy "SQL Scripts", người ta phải có khả năng xử lý (1) SQL, (2) PL / SQL và (3) lệnh sqlplus.

Đang chạy sqlplus chính nó là cách thực sự, nhưng nó tạo ra sự lộn xộn về cấu hình, vì vậy chúng tôi đã cố gắng tránh tùy chọn này.

Có các trình phân tích cú pháp ANTLR cho PL / SQL, chẳng hạn như trình phân tích của Alexandre Porcelli —Những cái này rất gần, nhưng cho đến nay vẫn chưa có ai chuẩn bị một giải pháp thả vào hoàn chỉnh dựa trên những cái đó.

Chúng tôi đã viết xong một bộ chia đặc biệt khác nhận biết một số lệnh sqlplus như /EXIT - nó vẫn còn xấu, nhưng phù hợp với hầu hết các kịch bản của chúng tôi. (Lưu ý rằng một số tập lệnh, ví dụ:có -- ở cuối các nhận xét, sẽ không hoạt động — nó vẫn là một giải pháp, không phải là một giải pháp.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xác định và giải quyết bế tắc ITL của Oracle

  2. Có sự khác biệt nào giữa! =Và <> trong Oracle Sql không?

  3. Nhận tên tháng kể từ ngày trong Oracle

  4. LISTAGG nối kỳ lạ

  5. Cấu trúc cây trong sql trong Oracle. Cách hiển thị cây, nút con và nút cha trong SQL Oracle