java 獲取各種數據庫的視圖、函數、存儲過程

//postgresql ||HWMPP
if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.PostgreSQL.getName()) 
      || dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GreenPlum.getName())
      || dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.HWMPPDB.getName())) {
    sql = "select * from pg_views where schemaname=?";
    sqlValue=dataSource.getSchemaName();
} else if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.Oracle.getName())||dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GaussDB100.getName())) {//oracle
    sql = "select * from all_views where owner=?";
    sqlValue=dataSource.getUserName();
} else if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.MySQL.getName())) {
    sql = "select * from views WHERE TABLE_SCHEMA=?";
    sqlValue=dataSource.getDbServiceName();
} else if(dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.SQLServer.getName())||dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.SQLServer2000.getName()))
{
    sql="select sysobjects.*,OBJECT_DEFINITION (id) AS ObjectDefinition  from sysobjects where xtype='V'";
}else if(dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GBase.getName())) {
   sql = "select * from information_schema.views WHERE TABLE_SCHEMA=?";
    sqlValue=dataSource.getDbServiceName();
}

 

if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.PostgreSQL.getName()) 
      || dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GreenPlum.getName())
      || dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GaussDB200.getName())
        || dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GaussDB100.getName())
      || dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.HWMPPDB.getName())) {//postgresql
    //sql = "select * from pg_proc where proowner=(select usesysid from pg_user where usename ='" + dataSource.getSchemaName() + "')";
   sqlValue=dataSource.getSchemaName();
   sql = "select oid::regprocedure as proname,prosrc from pg_proc where pronamespace=(SELECT oid  FROM pg_namespace where nspname =?)";
    schema = new Schema(null, dataSource.getSchemaName());
} else if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.Oracle.getName())||dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GaussDB100.getName())) {//oracle
    sql = "select all_procedures.*,user_source.TEXT from all_procedures  " +
            "inner join user_source " +
            "on all_procedures.OBJECT_NAME=user_source.name " +
            "where owner=? and object_type='FUNCTION'";
    sqlValue=dataSource.getUserName();
}else if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.MySQL.getName())) {//必須具有讀取msyql系統數據庫的權限
    sql = "select * from mysql.proc where db=? and type='FUNCTION' ";
    sqlValue=dataSource.getDbServiceName();
} else if(dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.SQLServer.getName())||dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.SQLServer2000.getName())){
    sql="select sysobjects.*,OBJECT_DEFINITION (id) AS ObjectDefinition  from sysobjects where xtype in('FN','IF','TF')";
    //sqlValue=dataSource.getDbServiceName();
}else if(dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GBase.getName())) {
    sql = "select * from gbase.proc where db=? and type='FUNCTION' ";
    sqlValue=dataSource.getDbServiceName();
}

 

if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.Oracle.getName())||dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GaussDB100.getName())) {//oracle
    sql = "select all_procedures.*,user_source.TEXT from all_procedures  " +
            "inner join user_source " +
            "on all_procedures.OBJECT_NAME=user_source.name " +
            "where owner=? and object_type='PROCEDURE'";
    sqlValue=dataSource.getUserName();
} else if (dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.MySQL.getName())) {//必須具有讀取msyql系統數據庫的權限
    sql = "select * from mysql.proc where db=?  and type='PROCEDURE'";
    sqlValue=dataSource.getDbServiceName();
}else if(dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.SQLServer.getName())||dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.SQLServer2000.getName())){
    sql="select sysobjects.*,OBJECT_DEFINITION (id) AS ObjectDefinition  from sysobjects where xtype='P'";
}else if(dataSource.getDatabaseType().equalsIgnoreCase(DatabaseType.GBase.getName())) {
   sql = "select * from gbase.proc where db=?  and type='PROCEDURE'";
     sqlValue=dataSource.getDbServiceName();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章