#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