Переменная в файле sql с одинарной кавычкой

SELECT SWAP_PARTITIONS_BETWEEN_TABLES
(':SCHEMA_NAME.:TABLE_NAME',:PARTITION_KEY,:PARTITION_KEY,
':SCHEMA_NAME.:TABLE_NAME');

Это запрос vertica в файле sql:SCHEMA_NAME а также :TABLE_NAME в файле sql не заменяется аргументом, переданным, вероятно, из-за одинарных кавычек

1 ответ

Решение

Попробуй это:

\set source '''src_schema.src_table'''
\set target '''tgt_schema.tgt_table'''
SELECT SWAP_PARTITIONS_BETWEEN_TABLES
    (:source,:PARTITION_KEY,:PARTITION_KEY,:target);

Если вы хотите использовать разные переменные для SCHEMA и TABLE, вы можете:

\set schema '''myschema'''
\set table '''mytable'''

А потом:

SELECT SWAP_PARTITIONS_BETWEEN_TABLES
    (:schema||'.'||:table,:PARTITION_KEY,...);
Другие вопросы по тегам