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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值