Как я могу избежать NULL на MySQL в пакетном режиме? - PullRequest
3 голосов
/ 12 августа 2011

Чтобы выгрузить и перезагрузить некоторые данные, я использую клиент mysql с запросом выбора (-e 'SELECT ...') в пакетном режиме (точнее, в очень тихом режиме, '-ss')Направление промежуточного результата на стандартный вывод.В свою очередь, результат затем обрабатывается с помощью LOAD DATA INFILE.

SELECT INTO OUTFILE не является опцией, потому что нет перенаправления stdout (если у кого-то есть какие-то приемы, чтобы выполнить эту операцию без использования памяти пропорционально запросуразмер результата, они очень приветствуются).

Теперь проблема с '-ss -e' состоит в том, что NULL выводятся как 'NULL'.

Теперь, предполагая, что набор данных неиметь любое значение NULL (строка), я мог бы сделать какую-то замену [с awk]Или, без этого предположения, я мог бы использовать IFNULL (), используя крайне маловероятную строку, которую я бы снова заменил [на awk].

Что я хотел бы знать, так это: есть ли способ сделать«чистый» выход из SQL?Очевидно, я не могу получить '\ N' в выводе, используя IFNULL, потому что косые черты экранированы.

1 Ответ

0 голосов
/ 12 августа 2011

Вы можете использовать функцию NVL для преобразования чего-либо в SQL из NULL во что-то другое.http://www.techonthenet.com/oracle/functions/nvl.php

...