2013-10-11 54 views
-2

我在我的Python代碼中使用sqlplus連接到數據庫並執行查詢並讀取結果。任何人都可以幫助我如何從sysout讀取數據。如何在python中讀取sql查詢輸出

我的代碼是這樣的:

stdout = os.popen(cmd) 
for line in stdout: 
    print line 
stdout.close() 

但我可以看到結果爲每隔三行標題重複這樣的:

Name    ID 

----    --- 

AB     1 

AC     2 

AD     3 

Name    ID 

----    --- 

BC     1 

BD     2 

這樣。

是否可以控制這個,不用重複標題,標題只應該出現一次,它應該只出現在開頭。

+1

我不太明白這是什麼。哪些是列標題,哪些是值? – njzk2

+0

名稱,ID是該表中的列 – GHK

+0

您是否可以發佈您的查詢? – njzk2

回答

0

你在做什麼:

  • 啓動其查詢數據庫,並打印出結果到stdout
  • 閱讀該程序的標準輸出和思考解析它一個獨立的程序。

,你應該做的事情:

  • 使用Python中的數據庫API。

該頁面包含Oracle數據庫的API列表,你可以使用:https://wiki.python.org/moin/Oracle

許多好處來自於使用一個真正的API來查詢數據庫,比如更好的機會來處理錯誤,可能是更好的性能,未來的代碼維護者不會因爲你而感到不安。

+0

是的,我同意,但是在使用它們時存在一些限制,所以我們使用sqlplus。 – GHK

+0

這些限制是什麼?也許我們可以解決這個問題。 –

+0

我們可以用sqlplus實現預期的行爲,所以不建議安裝其他的,我們需要證明它們不能用sqlplus來實現,然後在需要批准後纔會安裝。我相信我們可以用sqlplus來實現,並且在我們提出時發生得更早。 – GHK