текущая дата В ПРОЦЕДУРЕ Снежинка

#javascript #snowflake-cloud-data-platform

Вопрос:

 CREATE OR REPLACE PROCEDURE PROC_XXGSI_AR_ACCOUNT_DETAILS_V()
returns string not null
language javascript
as
$
var cmd = "SELECT COUNT(*) total FROM  staging_xxgsi_ar_account_details_v" ;
var cmd1=  "DELETE FROM xxgsi_ar_account_details_v WHERE invoice_date>= "  DATEADD(Day ,-30, 
          current_date) ;
var sql = snowflake.createStatement({sqlText: cmd});
var result = sql.execute();

while (result.next())  {
       var column1 = result.getColumnValue(1)

if (column1 > 0) 
{ 
var sql1 = snowflake.createStatement({sqlText: cmd1});
var result1 = sql1.execute();
}
}
return 'A';
$;
 

В столбце «дата выставления счета» есть пробел, а не дата выставления счета. Как я могу справиться с этим ?

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

1. Спасибо. Знаете ли вы, как я могу обрабатывать пробел в имени столбца в инструкции select?

2. Заключите имя столбца в двойные кавычки, чтобы включить пробелы, но имейте в виду, что, как только вы введете двойные кавычки, имя столбца также будет учитываться регистр, поэтому вы должны быть точными.

Ответ №1:

Нет необходимости в объединении строк:

 var cmd1="DELETE FROM xxgsi_ar_account_details_v WHERE invoice_date>= "  DATEADD(Day ,-30, 
          current_date) ;
 

Это должно быть:

 var cmd1=`DELETE FROM xxgsi_ar_account_details_v WHERE "invoice date">= DATEADD(Day,-30, current_date)`
 

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

1. Спасибо. Знаете ли вы, как я могу обрабатывать пробелы в имени столбца. Дата выставления счета на самом деле является датой выставления счета в таблице.

2. Если у вас есть специальные символы в имени столбца/таблицы, то кавычка обозначается " : "invoice date" (с учетом регистра)

3. не могли бы вы, пожалуйста, ответить всем заявлением select. Извините, мне еще не все ясно. Спасибо

4. @Chints DELETE FROM xxgsi_ar_account_details_v WHERE "invoice date">= DATEADD(Day,-30, current_date) .

5. Спасибо. Это не удалось с приведенным ниже сообщением [ФАТАЛЬНО] Соединителю Snowflake не удалось инициализировать операцию чтения из-за следующей ошибки: Ошибка компиляции JavaScript: Неперехваченная синтаксическая ошибка: Неожиданный идентификатор в PROC_XXGSI_AR_ACCOUNT_DETAILS_V в ‘var cmd1= УДАЛИТЬ ИЗ xxgsi_ar_account_details_v ,ГДЕ «дата выставления счета» >= DATEADD(День, -30, текущая дата) ;’ позиция 18