2011-10-21 7 views
8

Ho una mezza dozzina di visualizzazioni in SQL Server che devo replicare in Teradata, ma non sono stato in grado di trovare l'equivalente TD delle tabelle dei metadati SQL. Mi piacerebbe replicare le seguenti funzionalità (che presumo è abbastanza auto-explainatory):Recupero colonna e altre informazioni sui metadati in Teradata

select table_name, column_id ordinal_position, column_name, 
    data_type, char_length char_max_length, 
    data_precision numeric_precision, data_scale numeric_scale 
from user_tab_columns 

select name as FUNCTION_NAME 
from sys.objects 
where type_desc='SQL_SCALAR_FUNCTION' 

select TABLE_NAME as VIEW_NAME 
from INFORMATION_SCHEMA.VIEWS 

mi piacerebbe anche sapere se ci sono riferimenti Teradata utilizzabili on-line; tutto ciò che corro sembra essere pubblicità piuttosto che informazioni pratiche.

+0

Follow-up: dbc.columns (come emailenin raccomandato) sembra darmi tutto ciò di cui ho bisogno per la prima vista tranne che per la posizione ordinale. TD salva queste informazioni? – William

+0

COLUMN_ID in DBC.Columns può essere utilizzato per la posizione ordinale per una colonna nella tabella o vista. In genere semina a 1025 e incrementa da lì. –

+0

Troverai tutti i manuali Teradata su info.teradata.com, scegli semplicemente la tua versione. La scelta migliore è il CD completo di documentazione che include la ricerca completa. – dnoeth

risposta

12

Tutte le tabelle di sistema Teradata sono memorizzate nello schema DBC.

Per le colonne, è dbc.columns

select * from dbc.columns 

Per le viste, è dbc.tables con un filtro su una TABLE_TYPE 'V' colonna qualcosa di nome (dove V sta per Viste)

select * from dbc.tables 

Non sono sicuro su come ottenere tutte le funzioni in Teradata. Chiunque lo sappia, per favore modifica questa risposta.

In Teradata DBC.Tables contiene molti degli oggetti presenti sul sistema. (Ad esempio procedure memorizzate, UDF, trigger, macro, viste, tabelle, indice hash, indice join, ecc.) Il tipo di tabella delle colonne viene utilizzato per identificare il tipo di oggetto.

SELECT * 
FROM DBC.TABLES 
WHERE TABLEKIND = '<see below>' 

A = Aggregate Function 
B = Combined Aggregate Function and ordered analytical function 
D = JAR 
E = External Stored Procedure 
F = Standard Function 
G = Trigger 
H = Instance or Constructor Method 
I = Join Index 
J = Journal 
M = Macro 
N = Hash Index 
O = No Primary Index (Table) 
P = Stored Procedure 
Q = Queue Table 
R = Table Function 
S = Ordered Analytical Function 
T = Table 
U = User-defined data type 
V = View 
X = Authorization 
Y = GLOP Set 
+1

Aggiunti dettagli su TableKind per trovare altri oggetti in un database Teradata. –

+0

Fantastico, grazie ragazzi. – William

+2

Solo un commento: usa 'dbc.tablesV' invece di' dbc.tables'. Le viste non V sono deprecate dal TD12, emulano il vecchio dizionario dei dati con i nomi degli oggetti in CHAR (30) LATIN. Tutto è VARCHAR (128) UNICODE ora e TD14.10 finalmente consente 128 nomi di oggetti di carattere. – dnoeth

Problemi correlati