本文介绍了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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!