2011-05-13 11 views
2

我必須編寫一個查詢數據庫中的View的SQL命令。我沒有自己創建它們,也沒有訪問表格的權限。只有我們的軟件製造商向我們提供意見。我正在使用Oracle SQL Developer 3.0進行查詢。下面的命令完美的作品如預期:關於查看的查詢會導致Oracle SQL中的奇怪錯誤開發人員

SELECT * FROM EDBADM.VW_THEVIEWNAME 

然而,當我問某列(稱爲)不包含任何null值:

SELECT * FROM EDBADM.VW_THEVIEWNAME WHERE filename IS NOT NULL; 

....我得到出現以下錯誤:

ORA-00979: 
00979. 00000 - "not a GROUP BY expression" 
*Cause:  
*Action: 
Error in line: 3 column: 75 

這對我來說似乎難以置信,因爲在我的查詢部分中沒有涉及聚合。此外,當我查詢以匹配特定的模式:

SELECT * FROM EDBADM.VW_THEVIEWNAME WHERE filename LIKE 'abc%' 

...我仍然得到結果行,其中爲NULL。

這可能是潛在的,不可訪問的視圖定義不正確,導致這種奇怪的行爲?

+1

你能在'ALL_VIEWS'中看到視圖源嗎? – 2011-05-13 10:14:29

回答

0

你可以發佈你的視圖的創建腳本?在名爲VW_THEVIEWNAME的視圖中是否明確聲明瞭名爲filename的列?

+1

正如我最初所寫:數據庫是由外部軟件製造商創建的。它是客戶管理系統的後端。除了通過視圖外,製造商不向我們提供任何*直接訪問此後端的權限。這意味着,不幸的是我沒有創建腳本可用,對不起! – user748261 2011-05-13 13:32:04

+1

在使用軟件時,您可以使用Toad(Quest Software)的SESSION BROWSER來查看服務器上已啓動的查詢。這實際上是一個「查詢嗅探」工作。你已經嘗試過了嗎?在Oracle中,有用的系統視圖是V $ SQLTEXT,例如V $ SQLAREA。 – UltraCommit 2011-05-17 14:55:17