Oracle PL / SQL thực hiện dự án hệ điều hành Commands chứa các gói / SQL OS_COMMAND PL, FILE_TYPE và FILE_PKG cho phép một nhà phát triển cơ sở dữ liệu Oracle để tương tác với các hệ điều hành hoặc bằng các file bình thường & nbsp;. Oracle cung cấp out-of-the-box chỉ hạn chế chức năng để truy cập vào hệ thống tập tin và không có chức năng để thực hiện các lệnh shell hay tiến trình hệ thống điều hành. Có những kịch bản PL / SQL lan truyền trên internet và trong các diễn đàn Oracle nhưng không có gói sẵn sàng để cài đặt. Đây là dự án về cung cấp chính xác này.
Nói chung có ít nhất ba cách để thực thi lệnh shell bởi các công cụ Oracle.
& Nbsp; 1. Mã hóa một thư viện chia sẻ bản địa, tham khảo nó trong các cơ sở dữ liệu Oracle sử dụng CREATE LIBRARY và tạo một wrapper PL / SQL trên các chức năng cụ thể. Điều này đòi hỏi một trình biên dịch C cho nền tảng Oracle đang chạy trên.
& Nbsp; 2. Sử dụng DBMS_SCHEDULER gói Oracle-cung cấp có khả năng để thực thi lệnh shell. Nhưng DBMS_SCHEDULER thiếu tiếp cận với STDIN và STDOUT; nếu điều này là cần thiết, DBMS_SCHEDULER không còn là một lựa chọn.
& Nbsp; 3. Kể từ Oracle8i có một Công cụ J2SE Java compliant chứa trong cơ sở dữ liệu; như bất kỳ công cụ Java khác, nó có khả năng để thực hiện các lệnh shell thông qua các phương pháp System.exec. Các JDBC API cho phép để vượt qua các nội dung của STDIN, STDOUT hoặc các giá trị hệ điều hành trở lại với động cơ SQL. Và kể từ Java là nền tảng độc lập một kịch bản cài đặt hiện công việc cho tất cả các nền tảng. Vì vậy tôi đã quyết định cho Java trong các cơ sở dữ liệu.
Các gói phần mềm chạy trong Oracle 10.1 hoặc cao hơn
là gì mới trong phiên bản này:.
- file Ly cho Oracle10 và Oracle11g - các phương pháp OS_COMMAND.LOAD_ENV không có sẵn trong 10g
- Hỗ trợ cho các thư mục làm việc khi thực hiện lệnh shell
- Hỗ trợ cho các biến môi trường tùy chỉnh
- FILE_TYPE không còn cần thiết đặc quyền write khi chỉ cần đọc các tập tin
- gói PL / SQL với doanh nghiệp hoạt động với quyền invokers '
- Nhận thông tin cụ thể của môi trường: thư mục gốc và nhân vật tên tách
- FILE_TYPE: get_parent () phương pháp
Bình luận không