Encontré una forma no muy intuitiva de hacer esto usando DUMP()
SELECT DUMP(A.NAME),
DUMP(A.surname),
DUMP(B.ordernum)
FROM customer A
JOIN orders B
ON A.id = B.id
Devolverá algo como:
'Typ=1 Len=2: 0,48' para cada columna.
Type=1 significa VARCHAR2/NVARCHAR2 Type=2 significa NUMBER/FLOAT Type=12 significa DATE , etc
Puede consultar este documento de Oracle para obtener información sobre el Código de tipo de datos
o esto para obtener una asignación simple Asignaciones de código de tipo de Oracle