Oracle
Nguồn dữ liệu: Oracle bên ngoàiEnterprise Edition+Giới thiệu
Oracle có thể được tích hợp vào NocoBase dưới dạng cơ sở dữ liệu bên ngoài. Sau khi tích hợp, NocoBase sẽ đọc các bảng dữ liệu, trường và view trong Oracle, đồng thời sử dụng chúng như các bảng dữ liệu trong nguồn dữ liệu bên ngoài.
Khác với cơ sở dữ liệu chính, cấu trúc bảng thực của Oracle bên ngoài vẫn do hệ thống nghiệp vụ gốc, ứng dụng khách cơ sở dữ liệu hoặc tập lệnh di chuyển quản lý. NocoBase chịu trách nhiệm đọc cấu trúc, lưu siêu dữ liệu trường, cấu hình khối trên trang, quyền, quy trình làm việc và API.
Các trường hợp phù hợp để sử dụng Oracle bên ngoài:
- Tích hợp cơ sở dữ liệu Oracle của các hệ thống nghiệp vụ như ERP, MES, WMS, CRM hiện có
- Xây dựng giao diện quản trị bằng NocoBase mà không cần di chuyển dữ liệu lịch sử
- Kiểm soát quyền, xử lý quy trình, điều chỉnh dữ liệu hoặc hiển thị báo cáo cho các bảng hiện có
- Cấu trúc cơ sở dữ liệu tiếp tục được DBA, tập lệnh di chuyển hoặc hệ thống gốc quản lý
Oracle bên ngoài không phải là cơ sở dữ liệu hệ thống của NocoBase. NocoBase sẽ không tiếp quản việc sao lưu, khôi phục, di chuyển hoặc thay đổi cấu trúc bảng của cơ sở dữ liệu này.
Cài đặt plugin
Đây là plugin thương mại. Để biết chi tiết về cách kích hoạt, vui lòng tham khảo: Hướng dẫn kích hoạt plugin thương mại
Nếu chọn chế độ kết nối Thick, cần cài đặt Oracle Client libraries trong môi trường chạy NocoBase và điền 「Client directory」 trong cấu hình nguồn dữ liệu.
Cài đặt Oracle Client
Oracle Database 12.1 trở lên thường sử dụng chế độ Thin và không cần cài đặt thêm Oracle Client. Chỉ khi kết nối với phiên bản Oracle Database trước 12.1 hoặc bắt buộc sử dụng chế độ Thick, bạn mới cần cài đặt Oracle Client libraries trong môi trường chạy NocoBase.
Sau khi chọn chế độ 「Thick」 trong cấu hình nguồn dữ liệu, cần xác nhận rằng máy chạy dịch vụ NocoBase có thể tải Oracle Client.

Trong môi trường Linux, bạn có thể tham khảo cách cài đặt Oracle Instant Client dưới đây:
Nếu Oracle Client không được cài đặt tại vị trí mặc định mà hệ thống có thể tải, cần điền thư mục thư viện client vào 「Client directory」. Ví dụ, với cách cài đặt ở trên, thư mục tương ứng là /opt/instantclient_19_25.

Client directory chỉ cần cấu hình trong chế độ Thick. Chế độ Thin không sử dụng cấu hình này. Để biết thêm quy tắc khởi tạo, bạn có thể tham khảo tài liệu khởi tạo node-oracledb.
Thêm nguồn dữ liệu
Trong 「Quản lý nguồn dữ liệu」, nhấp vào 「Add new」, chọn Oracle, sau đó điền thông tin kết nối.

Các cấu hình kết nối thường gặp như sau:
Phạm vi tích hợp trong Oracle chủ yếu do Owner của tài khoản kết nối, Table prefix và 「Collections」 quyết định. Nếu có nhiều đối tượng trong cùng một instance, nên sử dụng tài khoản chuyên dụng để kết nối đến schema phục vụ nghiệp vụ, nhằm giảm các đối tượng không liên quan được đưa vào NocoBase.
Chọn bảng dữ liệu
Sau khi điền thông tin kết nối, bạn có thể nhấp vào 「Load Collections」 để đọc các bảng dữ liệu và view khả dụng trong Oracle. Kết quả đọc sẽ chịu ảnh hưởng bởi Owner của tài khoản kết nối, Table prefix và cấu hình 「Collections」.
Theo mặc định, 「Add all collections」 được bật, nghĩa là tích hợp tất cả bảng và view trong phạm vi hiện tại. Nếu chỉ muốn tích hợp một phần đối tượng, hãy tắt 「Add all collections」, sau đó chọn các bảng dữ liệu hoặc view cần thiết trong danh sách.

Mỗi nguồn dữ liệu bên ngoài chỉ có thể tích hợp tối đa 500 bảng dữ liệu hoặc view trong một lần. Nếu Oracle có nhiều đối tượng, nên thu hẹp phạm vi trước thông qua Owner của tài khoản kết nối, Table prefix hoặc 「Collections」.
Đồng bộ và cấu hình trường
Cấu trúc bảng của Oracle bên ngoài được quản lý ở phía cơ sở dữ liệu. NocoBase sẽ không tạo trường, thay đổi kiểu trường hoặc xóa trường thực trong Oracle bên ngoài.
Khi cấu trúc bảng ở phía Oracle thay đổi, bạn có thể thực hiện 「Sync from database」 trong nguồn dữ liệu để đọc lại siêu dữ liệu của bảng và trường. Quá trình đồng bộ sẽ cập nhật thông tin về bảng dữ liệu, trường, khóa chính, khóa duy nhất và ánh xạ kiểu trường được lưu trong NocoBase, nhưng sẽ không xóa bảng thực hoặc dữ liệu trong Oracle.
Sau khi đồng bộ trường, bạn có thể cấu hình tiêu đề trường, kiểu trường (Field type) và giao diện trường (Field interface) trong NocoBase. Nếu cần tạo trường quan hệ NocoBase, siêu dữ liệu quan hệ cũng được lưu trong NocoBase và sẽ không tự động thêm trường khóa ngoại thực vào bảng Oracle.
Ánh xạ kiểu trường
NocoBase sẽ tự động ánh xạ kiểu trường Oracle sang Field type và Field interface phù hợp. Bạn có thể điều chỉnh cách hiển thị trên giao diện trong cấu hình trường.
Các ánh xạ thường gặp như sau:
BLOB、BFILE và các kiểu đối tượng nhị phân khác sẽ không tự động được sử dụng như trường tệp thông thường. Nếu cần quản lý tệp đính kèm trên trang, thông thường nên sử dụng bảng tệp hoặc trường tệp đính kèm trong NocoBase để lưu thông tin siêu dữ liệu của tệp.
Khóa chính và định danh duy nhất của bản ghi
Đối với các bảng dữ liệu dùng để hiển thị và chỉnh sửa trong khối trên trang, nên có khóa chính hoặc trường duy nhất. NocoBase sẽ ưu tiên sử dụng khóa chính làm định danh duy nhất của bản ghi.
Nếu tích hợp view, bảng không có khóa chính hoặc bảng có khóa chính kết hợp, cần thiết lập thủ công 「Record unique key」 trong cấu hình bảng dữ liệu. Khi không có định danh duy nhất khả dụng, khối trên trang có thể không xem, chỉnh sửa hoặc xóa bản ghi chính xác.

Liên kết liên quan
- Cơ sở dữ liệu bên ngoài — Xem hướng dẫn cấu hình và quản lý chung đối với cơ sở dữ liệu bên ngoài
- Quản lý nguồn dữ li ệu — Xem lối vào và cách quản lý nguồn dữ liệu
- Trường bảng dữ liệu — Xem hướng dẫn về kiểu trường và ánh xạ trường
- Tài liệu khởi tạo node-oracledb — Xem cách tải Oracle Client libraries

