Snowflake вызывает хранимую процедуру с параметрами из другой хранимой процедуры

#stored-procedures #snowflake-cloud-data-platform

Вопрос:

Я пытаюсь вызвать сохраненный процесс с параметрами из другой хранимой процедуры, и я думаю, что путаю кавычки и обратные ссылки. Процедура, которую я пытаюсь вызвать, будет регистрировать шаги последовательного набора задач, чтобы я мог лучше отслеживать ход выполнения задачи.

 var create_temp_table_sql_cmd = `set batch_id = (select MD5_NUMBER_LOWER64(current_timestamp))`

var stmt = snowflake.createStatement(
     {
     sqlText: create_temp_table_sql_cmd
     }
  );
var res = stmt.execute();

var create_temp_table_sql_cmd = `CALL log_stored_procedure(`'raw.silver'`, `   $batch_id   `, `load_customer_visits`, `'load_customer_visit_events'`, `'step1 - load customer visit events table'`, `'log_init'`);`

var stmt = snowflake.createStatement(
     {
     sqlText: create_temp_table_sql_cmd
     }
  );
var res = stmt.execute();
 

Ошибка, которую я получаю, звучит так: Необнаруженная строка

Комментарии:

1. Вам понадобится только один набор обратных галочек, охватывающих всю инструкцию

Ответ №1:

Как сказал Дин:

 var create_temp_table_sql_cmd = `set batch_id = (select MD5_NUMBER_LOWER64(current_timestamp))`

var stmt = snowflake.createStatement(
     {
     sqlText: create_temp_table_sql_cmd
     }
  );
var res = stmt.execute();

var create_temp_table_sql_cmd = `CALL log_stored_procedure('raw.silver', $batch_id, 'load_customer_visits', 'load_customer_visit_events', 'step1 - load customer visit events table', 'log_init');`;

var stmt = snowflake.createStatement(
     {
     sqlText: create_temp_table_sql_cmd
     }
  );
var res = stmt.execute();
 

кстати, вы можете объединить эти два запроса:

 var create_temp_table_sql_cmd = `CALL log_stored_procedure('raw.silver', MD5_NUMBER_LOWER64(current_timestamp), 'load_customer_visits', 'load_customer_visit_events', 'step1 - load customer visit events table', 'log_init');`;

var stmt = snowflake.createStatement(
     {
     sqlText: create_temp_table_sql_cmd
     }
  );
var res = stmt.execute();