今天在连接db2数据库的时候,在连接的URL中指定了schema的值,但是一直都查询不了,后来在网上查了下,得在引用的表名前面指定模式名(schema)的值

String url = "jdbc:db2://197.1.5.105:60000/testdb:currentShcema=ETL;";  <------特别注意这里还有一个分号

String sql="select * from ETL.ETL_TASK t,ETL.ETL_MODULE m,ETL.ETL_DOMAIN d where t.DOMAIN_ID=D.DOMAIN_ID and t.MODULE_ID=d.DOMAIN_ID";

原因如下:
如果用的是缺省的情况,不可能出现这种错误,因为连结时用的用户名会作为缺省的模式。所以执行select * from ETL.ETL_TASK t,ETL.ETL_MODULE m,ETL.ETL_DOMAIN d where t.DOMAIN_ID=D.DOMAIN_ID and t.MODULE_ID=d.DOMAIN_ID 应该去查询ETL.ETL_TASK t,ETL.ETL_MODULE m,ETL.ETL_DOMAIN d。 
表建立了以后不能更改模式名称。 
如果要改变用户当前缺省的模式,可以用db2 set current sqlid <模式名称>.