2012-12-13 19 views
1

我一直在努力將應用程序從MySQL移動到DB2,並且目前在部署時遇到currentSchema問題。爲Glassfish上的DB2設置currentSchema時遇到問題

查詢:

SELECT count(*) FROM SomeTable WHERE BooleanColumn=1 

將給我一個錯誤(SQLCODE = -204),這意味着該對象不存在。

如果不是我發出這樣的詢問:

SELECT count(*) FROM SCHEMA.SomeTable WHERE BooleanColumn=1 

一切工作爲我所期望的。

看來我應該能夠將其設置爲某個模式的默認模式,並且此時我已將重點放在了Glassfish中的JDBC連接池。看起來我通常能夠構建一個類似「jdbc:db2:// SERVER_NAME:PORT/DATABASE:currentSchema = SCHEMA_NAME」的JDBC URL,而currentSchema會照顧我的需求,但我不知道如何在Glassfish的管理控制中執行此操作。我對Glassfish顯然不瞭解 - 這很可能是我看錯了地方。

我有「其他屬性」部分,配置是這樣的:

胡說。我想我太新的嵌入圖片...這個鏈接是這樣的:

http://i.stack.imgur.com/IqUQd.jpg

在得到這個設置將是偉大的任何幫助......我不希望有追捕每表格參考並以模式名稱作爲序言。

回答

0

您可以在同一個連接發出this statement

SET SCHEMA = my_schema; 

默認情況下,DB2使用您的用戶名作爲模式。

+0

謝謝。我在創建每個連接後立即調用它,並且它完美地工作。 – Nathan

+0

看起來像一個骯髒的解決方法。有沒有辦法在glassfish中設置它? –