Teradata ha una vista utile denominata dbc.tables
che è possibile utilizzare per eseguire query sugli oggetti. Ho usato questo per interrogare lo RequestText
nelle viste con successo, ma le procedure sembrano essere compilate in modo leggermente diverso.Posso interrogare il RequestText di una procedura in Teradata?
Quando guardo il RequestText
di una procedura (TableKind P), tutto quello che ottiene è qualcosa di simile:
ALTER PROCEDURE '468137'xn.'546321987654321345646556213165468654654654'xn COMPILE /* mydb.procedurename */;
È questo un riferimento alla RequestText effettivo che è memorizzato altrove? Come ci arrivo?
Voglio realmente interrogarlo con SQL, non scaricarlo in un file di testo.
Il motivo è perché ho bisogno di eseguire un'istruzione LIKE contro di esso per cercare riferimenti a un nome di tabella specifico. Sarebbe inevitabile doverlo scaricare in un file di testo e quindi cercare manualmente il file di testo.
ho finito per scrivere un programma di utilità .NET che fa quello che hai suggerito e funziona molto bene. Un avvertimento che altri potrebbero trarre beneficio è che è necessario leggere 'show procedure mydb.mysproc' in un TdDatareader e quindi eseguire' while (reader.Read()) 'poiché ogni riga nella sproc è una riga separata. Il semplice ritorno di uno scalare restituirà solo la prima riga della sproc. Grazie per il suggerimento. – oscilatingcretin