2012-05-04 64 views
0

我有一個連接到Oracle數據庫的電子表格。它使用從數據庫中抽取特定字段的查詢填充Excel。我想查看它正在使用的查詢,以便我可以修改它。如何查看填充Excel電子表格的Oracle查詢?

它使用Office 2003 &的Oracle 11g。目前,它會自動刷新最新數據。我需要對查詢進行逆向工程,所以它只能提供來自昨天的所有信息。

任何人都可以建議嗎?

+2

是否Alt-F11在Excel中查看VBA代碼? – MatBailie

+0

是的,謝謝,這似乎打開了VBAProject視圖!我可以從這裏找到查詢嗎? – GrumP

+0

現在是時候去探索。您可能會發現模塊等已被密碼保護。也許有點像搜索「SELECT」或「EXEC」一樣有趣? – MatBailie

回答

0

我沒有的版本的Excel在我的電腦上,所以我不能給你一個確切的按鈕按下/屏幕看,但是我已經做了堆與各種數據庫嵌入數據源。

你需要看的「外部數據」連接。我想在2003年,你仍然可以用數據右鍵單擊表格並從那裏訪問外部數據屬性(以及選擇'刷新')

在裏面你會發現一個導致定義的按鈕: - 一個表(/圖) - 或SELECT語句

select語句是你需要看看。

注意:有兩種方法可以查看他的查詢 - 一種加載外部MS查詢工具 - 您不需要 - 而另一種只在Excel中顯示原始查詢 - 這正是您想要的。

+0

當我右鍵單擊時,我可以看到編輯查詢,數據範圍屬性,參數(灰色)和刷新數據。當我點擊編輯查詢時,它會加載一個小窗口「Microsoft ODBC for Oracle Connect」,然後「連接到數據源」,並打開一個基本嚮導來從db中選擇要顯示的列。 – GrumP

+0

我覺得你很接近...你可以檢查數據範圍屬性嗎,你看到一個圖標就像拿着文檔的手?這應該點擊一個屬性對話框,讓你編輯查詢定義。我使用XL2007,但我認爲外部數據嚮導在2003年是相同的。 –

1

我們仍在使用的Excel 2003也。我從來沒有看到任何像拿着文件的手的圖標,但我找到了一個方法。當您選擇編輯查詢時,只需點擊下一個按鈕,直到按鈕更改完成,您將看到一個保存查詢按鈕。我保存了查詢,然後進入筆記本,它看起來像這樣 -

XLODBC 
1 
DBQ=J:\SHEALY.mdb;DefaultDir=J:\;Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes; 
SELECT `Inventory by Class - Detail`.ITEMNO, `Inventory by Class - Detail`.CLASS, `Inventory by Class - Detail`.ONHAND, `Inventory by Class - Detail`.EPLANT_ID FROM `J:\SHEALY`.`Inventory by Class - Detail` `Inventory by Class - Detail` WHERE (`Inventory by Class - Detail`.ITEMNO Like 'I%') OR (`Inventory by Class - Detail`.ITEMNO Like 'UI%') ORDER BY `Inventory by Class - Detail`.ITEMNO, `Inventory by Class - Detail`.EPLANT_ID 


ITEMNO CLASS ONHAND EPLANT_ID 

我的目標是找到原始源查詢。這告訴我什麼是,然後我可以回到源並改變選擇標準。

+0

這非常有趣。我明天會看看這個! – GrumP

0

在Excel 2013:

  1. 數據>現有連接
  2. 上(之一)的連接(一個或多個)
  3. 屬性>定義

的SQL將雙擊在命令文本