一、SQL语句获取默认Schema名称的方法
select sys_context('USERENV', 'CURRENT_SCHEMA') as schema_name from dual
二、Java编程中获取默认的Schema名称的方法
在Spring中,org.springframework.jdbc.core.metadata.OracleTableMetaDataProvider里提供的方法如下:
private static String lookupDefaultSchema(DatabaseMetaData databaseMetaData) {
try {
CallableStatement cstmt = null;
try {
Connection con = databaseMetaData.getConnection();
cstmt = con.prepareCall("{? = call sys_context('USERENV', 'CURRENT_SCHEMA')}");
cstmt.registerOutParameter(1, Types.VARCHAR);
cstmt.execute();
return cstmt.getString(1);
}
finally {
if (cstmt != null) {
cstmt.close();
}
}
}
catch (SQLException ex) {
logger.debug("Exception encountered during default schema lookup", ex);
return null;
}
}
三、小知识
org.springframework.jdbc.core.metadata.GenericTableMetaDataProvider
该类提供了通常关系数据库里获取schema和表及字段等的元信息数据。