Oracle PL / SQL wykonanie projektu OS poleceń zawiera PL pakiety / SQL OS_COMMAND, FILE_TYPE i FILE_PKG które umożliwiają bazy danych deweloper Oracle do interakcji z systemem operacyjnym lub przy użyciu zwykłych plików. & Nbsp; Oracle zapewnia out-of-the-box tylko ograniczoną funkcjonalność dostępu do systemu plików, a nie funkcjonalność do wykonywania poleceń powłoki systemu operacyjnego i procesów. Istnieje PL skrypty / SQL rozłożone w internecie i na forach Oracle, ale nie ma gotowych do zainstalowania pakietu. Projekt ten ma się dokładnie tego zapewnić.
W ogóle istnieją co najmniej trzy sposoby wykonywania poleceń powłoki przez silnik Oracle.
& Nbsp; 1. Kodowanie natywnej biblioteki współdzielonej, odwołać go w bazie danych Oracle przy użyciu Utwórz bibliotekę i stworzyć PL / SQL opakowanie na poszczególnych funkcji. Wymagało to kompilator C dla platformy Oracle jest uruchomiony.
& Nbsp; 2. Korzystanie z pakietu Oracle dostarczonego DBMS_SCHEDULER który jest w stanie wykonać poleceń powłoki. Ale DBMS_SCHEDULER nie ma dostępu do standardowego wejścia i wyjścia; jeśli jest to konieczne, nie jest już DBMS_SCHEDULER opcja.
& Nbsp; 3. Od Oracle8i Silnik jest zgodny z Java J2SE zawartych w bazie danych; jak każdego innego silnika Java jest zdolny do wykonywania poleceń powłoki metodą System.exec. JDBC API pozwala przenieść zawartość stdin, stdout lub wartości zwracanych OS powrotem do silnika SQL. A ponieważ Java jest niezależny od platformy jednym zainstalować skrypt ma pracy dla wszystkich platform. Wziąłem więc decyzję for Java w bazie danych.
Pakiet działa w Oracle 10.1 lub nowszej
Co nowego w tym wydaniu:.
- Oddzielne pliki dla Oracle10 i Oracle11g - metody OS_COMMAND.LOAD_ENV nie są dostępne w 10g
- Wsparcie dla katalogów pracy podczas wykonywania poleceń powłoki
- Wsparcie dla zmiennych niestandardowych środowiska
- FILE_TYPE już wymagane uprawnienia do zapisu, gdy tylko czytanie plików
- PL Pakiet / SQL działa teraz z uprawnieniami invokers "
- Pobierz informacje specyficzne dla środowiska: katalogach i znaków nazwy separatorem
- FILE_TYPE: get_parent () metoda
Komentarze nie znaleziono