本文介绍了Teradata中的DBC.Columns与BigQuery中的INFORMATION_SCHEMA.COLUMNS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人能建议一下,如何在BigQuery中利用列名查找对象名称吗?

在Teradata中,我们可以通过使用DBC.Columnsv获取对象(在所有数据库中),其中使用了特定的列。我们可以使用BigQuery中的Dataset.INFORMATION_SCHEMA.COLUMNS来查找这样的对象列表。但是,它将给出属于某个特定数据库的对象名称。因此,我的问题是如何在所有数据库中查找BigQuery中使用某一特定列的所有对象?

提前谢谢。

推荐答案

这应该可以用

DECLARE
  col_to_search string DEFAULT "col1";
DECLARE
  sql_stmts string;
SET
  sql_stmts = (
  SELECT
    ARRAY_TO_STRING((
      SELECT
        ARRAY (
        SELECT
          CONCAT("SELECT * FROM `",sc.catalog_name,"`.",schema_name,".INFORMATION_SCHEMA.COLUMNS WHERE column_name = ","'",col_to_search,"'")
        FROM
          `planar-effect-325211`.INFORMATION_SCHEMA.SCHEMATA sc ))," UNION ALL ") );

EXECUTE IMMEDIATE sql_stmts;

这篇关于Teradata中的DBC.Columns与BigQuery中的INFORMATION_SCHEMA.COLUMNS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 23:22