Change formatting output in SQL*Plus:

SET PAGESIZE 50
SET LINESIZE 120
COLUMN <COLUMN1> FORMAT A30
COLUMN <COLUMN2> FORMAT A50
COLUMN <COLUMN3> FORMAT A20
...
SELECT <COLUMN1>, <COLUMN2>, <COLUMN3>, ... 
FROM <YOUR_TABLE> 
WHERE <CONDITION>;

❓What is a DIRECTORY in Oracle?

In Oracle, a directory is a schema object that maps a physical path to the database server's file system. It is used primarily for external file read/write operations using PL/SQL or tools such as UTL_FILE, Data Pump, and SQL*Loader.

To get the list of directories currently set up:

SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE='DIRECTORY'
COLUMN OWNER FORMAT A20;
COLUMN DIRECTORY_NAME FORMAT A30;
COLUMN DIRECTORY_PATH FORMAT A50;
COLUMN ORIGIN_CON_ID FORMAT A20;
COLUMN ORACLE_HOME FORMAT A50;
SELECT * FROM all_directories;

image.png

To get the privilege assigned to each directory:

SET LINESIZE 200;
SET PAGESIZE 50;

COLUMN TABLE_NAME FORMAT A25;
COLUMN PRIVILEGE FORMAT A15;
COLUMN GRANTEE FORMAT A20;
COLUMN DIRECTORY_PATH FORMAT A80;

SELECT dp.TABLE_NAME, 
       dp.PRIVILEGE, 
       dp.GRANTEE, 
       d.DIRECTORY_PATH
FROM ALL_TAB_PRIVS dp
JOIN ALL_DIRECTORIES d 
    ON dp.TABLE_NAME = d.DIRECTORY_NAME
WHERE dp.TABLE_NAME IN (
    SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'DIRECTORY'
);

image.png