Oracle PL / SQL gjennomføring OS kommandoer prosjektet inneholder PL / SQL-pakker OS_COMMAND, FILE_TYPE og FILE_PKG som gjør en Oracle database utvikleren å samhandle med operativsystemet eller med vanlige filer. & Nbsp; Oracle gir out-of-the-box bare begrenset funksjonalitet for å få tilgang til filsystemet og ingen funksjonalitet for å utføre shell-kommandoer eller operativsystem prosesser. Det er PL / SQL-skript spredt over internett og i Oracle fora, men det er ingen klare å installere pakken. Dette prosjektet er i ferd med å gi akkurat dette.
Generelt er det minst tre måter å utføre shell-kommandoer fra Oracle motoren.
& Nbsp; 1. Coding en innfødt delt bibliotek, referere til den i Oracle-databasen ved hjelp av CREATE biblioteket og lage en PL / SQL wrapper på de spesielle funksjoner. Dette krevde en C-kompilator for plattformen Oracle kjører på.
& Nbsp; 2. Bruke Oracle-leverte pakken DBMS_SCHEDULER som er i stand til å utføre shell-kommandoer. Men DBMS_SCHEDULER mangler tilgang til standard inn og standard; dersom dette er nødvendig, er DBMS_SCHEDULER ikke lenger et alternativ.
& Nbsp; 3. Siden Oracle8i det er en J2SE kompatibel Java Engine som finnes i databasen; som alle andre Java Engine den er i stand til å utføre shell-kommandoer via System.exec metoden. JDBC API gjør det mulig å passere innholdet STDIN, STDOUT eller OS returverdier tilbake til SQL-motoren. Og siden Java er plattformuavhengig man installere scriptet gjør jobben for alle plattformer. Så jeg tok beslutningen for Java i databasen.
Pakken går i Oracle 10.1 eller nyere
Hva er nytt i denne utgaven.
- Separert filer for Oracle10 og Oracle11g - de OS_COMMAND.LOAD_ENV metodene er ikke tilgjengelig i 10g
- Støtte for arbeids kataloger ved utføring shell-kommandoer
- Støtte for egendefinerte miljøvariabler
- FILE_TYPE ikke er nødvendig lenger skriverettigheter når bare å lese filer
- PL / SQL pakken fungerer nå med invokers rettigheter
- Få miljø spesifikk informasjon: Root kataloger og navn skilletegn
- FILE_TYPE: get_parent () metode
Kommentarer ikke funnet