SELECT a.owner "Owner",
a.table_name "Table Name",
a.column_name "Column Name",
a.column_id "Column ID",
a.data_type "Data Type",
a.data_length "Data Length",
DECODE (a.nullable, 'N', 'Mandatory Column', 'Y', 'Nullable Column') "Null Allowed?",
a.last_analyzed "Last Analyzed"
FROM all_tab_columns a
WHERE a.table_name = NVL (UPPER (:table_name), a.table_name)
AND a.column_name = NVL (UPPER (:column_name), a.column_name)
AND a.nullable = NVL (UPPER (:nullable), a.nullable)
