linux — отключение выходного сообщения c ++ для загрузчика sql

У меня есть код C ++, в котором я использую загрузчик SQL с помощью system(), Когда SQL Loader выполняется во время выполнения кода, я получил ниже упомянутые сообщения, которые я хочу отключить:

SQL*Loader: Release 10.2.0.1.0 - Production on Thu Mar 14 14:11:25 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Commit point reached - logical record count 20
Commit point reached - logical record count 40
Commit point reached - logical record count 60
Commit point reached - logical record count 80

0

Решение

Вы можете использовать silent=ALL возможность подавления этих сообщений:

system("/orahomepath/bin/sqlldr silent=ALL ...")

Смотрите также Справочник по командной строке SQL * Loader:

При запуске SQL * Loader вы также видите на экране сообщения обратной связи, например:

Достигнута точка фиксации — количество логических записей 20

Вы можете подавить эти сообщения, указав SILENT с одним или несколькими значениями:

  • ALL — реализует все значения подавления: HEADER, FEEDBACK, ERRORS, DISCARDS и PARTITIONS.

В зависимости от реализации sql * ldr, вы может быть по-прежнему получается один или другой вывод — если вам нужно полное молчание, см. ответ @Joachim ниже.

3

Другие решения

Помните, что system Функция использует оболочку для выполнения команды. Таким образом, вы можете использовать обычное перенаправление оболочки:

system("/some/program > /dev/null");
4

По вопросам рекламы [email protected]