Man erhält dann eine Meldung: KUP-04027
Ist man sich des Risikos bewusst, der bei der Verwendung von Symlinks besteht, so kann man in der Definition der externen Tabelle die Direktive
DISABLE_DIRECTORY_LINK_CHECK
einsetzen.
Dann funktionieren auch Zugriffe auf verlinkte Verzeichnisse und Dateien.
Man beachte (oder neuere Version):
http://docs.oracle.com/cd/B28359_01/server.111/b28319/et_params.htm#g1031955
Beispiel
-- df Systemkommando als Preprocessor benutzen um Filesystemgröße in der DB direkt abzufragenCREATE OR REPLACE directory os_tools AS '/oracle/scripts';
-- df -lk
CREATE TABLE system.oscmd_df
(
df_device VARCHAR2(30),
df_size NUMBER,
df_used NUMBER,
df_available NUMBER,
df_pct VARCHAR(3),
df_mount VARCHAR(128)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY os_tools
ACCESS PARAMETERS (
records delimited BY newline
preprocessor os_tools:'ex_df.sh'
DISABLE_DIRECTORY_LINK_CHECK
NOLOGFILE
NOBADFILE
skip 1 fields terminated BY whitespace ldrtrim )
LOCATION(os_tools:'ex_df.sh')
)
/
/oracle/scripts% cat ex_df.sh
#!/bin/bash
/bin/df -lk
exit
/oracle/scripts% ls -la ex_df.sh
-rwxr-xr-- 1 oracle dba 30 May 7 10:50 ex_df.sh
> SELECT
RPAD(DF_MOUNT,32) "Mountpoint",
ROUND(DF_SIZE /1024/1024,1) "Size (GB)",
ROUND(DF_AVAILABLE/1024/1024,1) "Available (GB)",
DF_PCT "Used%"
FROM
system.oscmd_df
Mountpoint Size (GB) Available (GB) Used%
-------------------------------- ---------- -------------- -----
/ 19,7 9,9 48%
/dev 3,8 3,8 1%
/dev/shm 21 21 1%
/schlumpf 59,1 47,2 20%
/schnubbeldidup/sapdata 108,3 8,7 92%
Keine Kommentare:
Kommentar veröffentlichen