2014-10-12 137 views
2

我對數據庫使用SQuirrel SQL Client 3.5.3和HSQLDB。我已經能夠指定相應的驅動程序(內存中)並創建一個別名。HSQLDB用戶在使用select語句時缺少權限或對象未找到錯誤

我創建了一個表

CREATE TABLE ENTRY(
NAME VARCHAR(100) NOT NULL, 
DESC VARCHAR(500) NOT NULL, 
PRIMARY KEY (NAME)) 

,並添加數據的幾行了進去。雖然這樣的工作陳述:

select * from ENTRY 
select NAME from ENTRY 
select DESC from ENTRY 

我總是Error: user lacks privilege or object not found" 添加where子句來我的發言,例如,當select DESC from ENTRY where NAME=CAR

任何幫助是極大的讚賞,因爲我可以慢慢感覺到我的理智逐漸減弱

回答

1

我終於能夠解決這個自己。我在選擇語句時使用了錯誤的表名,並在將其更改爲真實的語句之後運行。唯一讓我困惑的是,我也爲插入語句使用了錯誤的表名,但它們已成功執行,並且所有數據都顯示在其中。

+0

我不認爲消息是有幫助的。我在控制檯上觀看了數據庫管理器的日誌,並且在查詢返回NullPointerException時顯示該消息。錯誤的表格名稱將被限定 - 我爲什麼要阻止_why_我可以創建一個唯一約束(索引),但不能丟棄它,即使我可以刪除表格! – will 2016-09-01 12:31:29

0

當我收到相同的異常時,根本原因是我在SELECT子句中有一個不在FROM子句中的表。

0

HSQLDB具有名爲PUBLIC的默認模式。所有的SQL查詢都將指向PUBLIC;如果您已經創建了自己的模式像如:OWNSCHEMA然後編輯xxx.script和更改以下行

SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC 

SET DATABASE DEFAULT INITIAL SCHEMA OWNSCHEMA 
2

我有同樣的問題,但我的表名和其他的東西都行,除了我爲VARCHAR查詢是雙引號(「」)內,但它應該是用單引號(「」)

例如
假設你有臺這樣它FLIGHTID是主鍵enter image description here

現在這個查詢是錯誤的:

SELECT * FROM flights WHERE flightId="0f3ae9b3-6bb1-4c95-9394-6179555f5879" 

,而這一次是確定:

SELECT * FROM flights WHERE flightId='0f3ae9b3-6bb1-4c95-9394-6179555f5879' 
相關問題