无法使用java.sql.Connection类获取列元数据

时间:2015-02-06 18:31:27

标签: java oracle connection metadata production

我有2个软件的安装,其中java.sql.Connection类在某些部分代码中尝试获取列的元数据,我使用以下代码:

   public class DbColumnRules {
        public static void loadMetaDataColumns(final Connection conn) {
        try {
           String schema = conn.getMetaData().getUserName();
           RsultSet columns = conn.getMetaData().getColumns(null, schema, "CATEGORY", "%");
           while(columns.next()){
               //Name of column
               System.out.println("Name: " + columns.getString(4));
               System.out.println("Length: " + columns.getInt(7));
           }
        } catch (Exception e) {
                e.printStackTrace();
        }
        }
   }

假设java Connection类成功建立了通信。在生产环境中,代码不打印元数据,我的客户端告诉我两个db用户的权限是相同的,但DB是不同的实例,每个用户一个。我使用的是Oracle 11g。

所以这就是问题:如何通过查询了解用户对数据库的权限?应用程序的用户是否必须具有使用java.sql.Connection类获取列元数据的特殊权限?

0 个答案:

没有答案