Teradata ma użyteczny widok o nazwie dbc.tables
, którego można użyć do zapytania obiektów. Używałem tego do sprawdzania RequestText
w widokach z powodzeniem, ale procedury wydają się być skompilowane nieco inaczej.Czy mogę zapytać o tekst procedury RequestText w Teradata?
Kiedy patrzę na RequestText
procedury (TableKind P), wszystko mam coś takiego:
ALTER PROCEDURE '468137'xn.'546321987654321345646556213165468654654654'xn COMPILE /* mydb.procedurename */;
Jest to odniesienie do rzeczywistego RequestText, który jest przechowywany w innym miejscu? Jak się do niego dostać?
Chcę faktycznie zapytać go za pomocą SQL, a nie zrzucić go do pliku tekstowego.
Powód jest taki, że muszę wykonać polecenie LIKE przeciwko niemu, aby wyszukać odniesienia do konkretnej nazwy tabeli. Niewłaściwe byłoby zrzucenie go do pliku tekstowego, a następnie ręczne przeszukanie pliku tekstowego.
skończyło się na napisanie narzędzia .NET, który robi to, co zaproponował i działa bardzo dobrze. Jedynym zastrzeżeniem, z którego mogą skorzystać inni, jest to, że należy przeczytać 'show procedure mydb.mysproc' na TdDatareader, a następnie zrobić' while (read.Read()) ', ponieważ każda linia w sproc jest oddzielnym wierszem. Po prostu zwrócenie skalara zwróci tylko pierwszą linię sproc. Dzieki za sugestie. – oscilatingcretin