Teradata tiene una vista útil llamada dbc.tables
que puede usar para consultar objetos. Lo he usado para consultar el RequestText
en vistas con éxito, pero los procedimientos parecen compilarse de forma un poco diferente.¿Puedo consultar un RequestText de un procedimiento en Teradata?
Cuando miro el RequestText
de un procedimiento (TableKind P), lo único que consigue es algo como esto:
ALTER PROCEDURE '468137'xn.'546321987654321345646556213165468654654654'xn COMPILE /* mydb.procedurename */;
¿Es esta una referencia a la RequestText real que se almacena en otro lugar? ¿Cómo puedo llegar?
Quiero consultarlo realmente con SQL, no volcarlo en un archivo de texto.
La razón es porque necesito ejecutar una declaración LIKE en su contra para buscar referencias a un nombre de tabla específico. Sería inconcebible tener que volcarlo en un archivo de texto y luego buscar el archivo de texto manualmente.
terminé escribiendo una utilidad de .NET que hace lo que sugiere y funciona muy bien. Una advertencia de la que otros pueden beneficiarse es que debe leer 'show procedure mydb.mysproc' en un TdDatareader y luego' 'while (reader.Read())' ya que cada línea en el sproc es una fila separada. Simplemente devolver un escalar solo devolverá la primera línea del sproc. Gracias por la sugerencia. – oscilatingcretin