Source code for probes.oracle.metadata.columns

"""Probe: oracle.metadata.columns — extract column definitions from ALL_TAB_COLUMNS."""

from core.base_probe import BaseProbe
from core.registry import register


[docs] @register class ColumnsProbe(BaseProbe):
[docs] @staticmethod def probe_name() -> str: return "oracle.metadata.columns"
[docs] @staticmethod def description() -> str: return "Extract column names, types, nullability, and position from ALL_TAB_COLUMNS"
[docs] def execute(self, connection, schema: str, **kwargs) -> list[dict]: with connection.cursor() as cur: cur.execute( """SELECT table_name, column_name, data_type, data_length, data_precision, data_scale, nullable, column_id, data_default FROM all_tab_columns WHERE owner = :schema ORDER BY table_name, column_id""", schema=schema.upper(), ) return [ { "table_name": row[0], "column_name": row[1], "data_type": row[2], "data_length": row[3], "data_precision": row[4], "data_scale": row[5], "nullable": row[6] == "Y", "ordinal_position": row[7], "default_value": str(row[8]).strip() if row[8] else None, } for row in cur.fetchall() ]