2013-03-14 37 views
0

我有一個C++代碼,我在其中使用sql加載器使用system()。當SQL執行裝載機運行代碼時,我得到了下文提到的,我想禁用消息:禁用sql加載器的C++輸出消息

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 

回答

3

可以使用silent=ALL選項來禁止這些消息:

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

SQL*Loader Command-Line Reference參見:

由於SQL * Loader的執行,你也可以在屏幕上看到反饋信息,例如:

已到達提交點 - 邏輯人的記錄數20

可以通過指定SILENT與一個或多個值抑制這些信息:

  • ...
  • ALL - 實現了所有抑制值:HEADER,反饋,錯誤,丟棄和PARTITIONS。

根據SQL * LDR實現,您可能還是落得一個或另一個輸出 - 如果你需要完全沉默,看到從下面@Joachim答案。

+0

請注意,SILENT = ALL也會將該過濾器應用於日誌文件,而不僅僅是您在終端屏幕上看到的內容 – 2013-04-13 13:09:38

4

記住system函數使用shell執行命令。所以,你可以正常使用shell重定向:

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