Snowflake存储过程SQL编译错误

问题描述 投票:0回答:0
CREATE OR REPLACE PROCEDURE view_proc()
returns varchar 
  language javascript
  as
  $$
  var list_of_tables=['TEST','TEST1'];
  var loop_len=list_of_tables.length;
  var results =  "";
for(var i=0;i<loop_len;i++){
try{
  var sql_statement=" ";
  var get_databases_stmt="SELECT DATABASE_NAME FROM SNOWFLAKE.INFORMATION_SCHEMA.DATABASES WHERE DATABASE_NAME LIKE 'TEST%'";
  var get_databases_stmt= snowflake.createStatement({sqlText:get_databases_stmt });
  var database_list=get_databases_stmt.execute();
  while(database_list.next()){
     var database_name=database_list.getColumnValue(1);
     var st= "SHOW TABLES LIKE " + " " +list_of_tables[i]+"" + " IN DATABASE " +database_name;
     var table_list= snowflake.execute({sqlText: st});
     if (table_list.getRowCount() > 0)
     {
        sql_statement +="SELECT * FROM " + database_name + ".PUBLIC." + list_of_tables[i] +" UNION ALL ";
     }
  }
  if (sql_statement.length > 0)
  {
       sql_statement = sql_statement.slice(0, -11);
       sql_statement = "CREATE OR REPLACE VIEW " + " TEST.PUBLIC. "+ list_of_tables[i] + "ALL " + " AS " + sql_statement;
       snowflake.execute({sqlText: sql_statement});
   }
   }//end for try
   catch (err)  {
      return "Failed: " + err;   // Return a success/error indicator.
      }
  }
  return "all view created";
  $$
  ;
  1. 如果表存在,则合并所有来自不同数据库的内容。
  2. 如果表不存在于任何数据库中,则 Union all 不应失败。
  3. ERROR:-Failed: SQL compilation error: syntax error line 1 at position 18 unexpected 'TEST'.
sql stored-procedures snowflake-cloud-data-platform execution
© www.soinside.com 2019 - 2024. All rights reserved.