View 如何查询teradate数据库中所有视图中所有Teradata视图列的数据类型

View 如何查询teradate数据库中所有视图中所有Teradata视图列的数据类型,view,teradata,View,Teradata,我需要为清单类型任务找到数据库中所有teradata视图列的数据类型(>15k视图,>500模式) 我知道通过使用以下查询可以找到单个列的类型(我使用DBC.ColumnsV作为通用示例): 结果:=>VARCHAR(128)字符集UNICODE 但是 获取数据库中所有视图的所有列将花费很长时间,并会产生大量开销和流量 我需要在目标视图上找到没有“选择”权限的数据类型 不幸的是,对于视图,DBC.ColumnsV中的列ColumnType始终为空 例如: SELECT C.ColumnId

我需要为清单类型任务找到数据库中所有teradata视图列的数据类型(>15k视图,>500模式)


我知道通过使用以下查询可以找到单个列的类型(我使用DBC.ColumnsV作为通用示例):

结果:=>
VARCHAR(128)字符集UNICODE

但是

  • 获取数据库中所有视图的所有列将花费很长时间,并会产生大量开销和流量
  • 我需要在目标视图上找到没有“选择”权限的数据类型
不幸的是,对于视图,DBC.ColumnsV中的列ColumnType始终为空

例如:

SELECT C.ColumnId-1024, ColumnName, ColumnType
  FROM DBC.TablesV AS T
  JOIN DBC.ColumnsV AS C ON T.DatabaseName=C.DatabaseNAme aND T.TableNAme=C.TableNAme
 WHERE T.TableName LIKE 'ColumnsV' AND T.DatabaseNAme='DBC'
 ORDER BY 1
 ;

存在
dbc.ColumnsQV
,但由于某些问题,QVCI功能目前已被禁用。要获取单个视图的定义,可以使用dbc.ColumnsV中的
HELP COLUMN*,但无法加入或插入/选择。您可以从处理输出的应用程序运行它,也可以从BTEQ导出到平面文件,然后再导入。
SELECT C.ColumnId-1024, ColumnName, ColumnType
  FROM DBC.TablesV AS T
  JOIN DBC.ColumnsV AS C ON T.DatabaseName=C.DatabaseNAme aND T.TableNAme=C.TableNAme
 WHERE T.TableName LIKE 'ColumnsV' AND T.DatabaseNAme='DBC'
 ORDER BY 1
 ;