Sou novo em Oracle e administração de banco de dados em geral.
Como contexto, quero criar uma classe Java que me forneça as informações que obteria usando DESC SOME_TABLE
.
Não consigo encontrar nenhuma maneira específica de fazer isso em Java, no entanto, descobri que ALL_TAB_COLUMNS
poderia me fornecer informações semelhantes. Eu tentei no SQL Developer para ver quão diferente era a saída. Acontece que os resultados são muito mais diferentes do que eu esperava.
Eu estava esperando que alguém pudesse me orientar sobre como interpretar o seguinte:
desc SOME_TABLE;
select
COLUMN_NAME
, DATA_TYPE
, DATA_LENGTH
, NULLABLE
from ALL_TAB_COLUMNS
where TABLE_NAME='SOME_TABLE'
order by column_id;
Dá a saída:
Name Null Type
--------------- ------- ----------------------
UIDPK NUMBER(20)
NAME VARCHAR2(255)
2 rows selected
COLUMN_NAME DATA_TYPE DATA_LENGTH NULLABLE
--------------- -------------- -------------- --------
UIDPK NUMBER 22 N
UIDPK NUMBER 22 N
UIDPK NUMBER 22 Y
NAME VARCHAR2 255 N
NAME VARCHAR2 255 Y
NAME VARCHAR2 255 N
6 rows selected
Por que cada coluna é repetida 3 vezes? Por que o datatype
e é length
diferente UIDPK
e por que NULLABLE
não é o mesmo?