Teradata各种类型Show 语句
来源:互联网 发布:siesta软件是啥 编辑:程序博客网 时间:2024/06/05 19:45
根据上一篇中的TableKind类型可以写相应的show table 语句。
下面是一段示例代码,代码实现使用show语句获取各种Table(Object)的DDL(Create语句等)以及对应的Drop语句:
- /**
- *
- * @param TableName : The name of Production DB's table
- * @param TableKind : The kind of table
- * @return
- * @throws SQLException
- */
- private String showTable(String TableName, String TableKind)
- throws SQLException {
- String sqlCREATE = "";
- PreparedStatement ps = null;
- ResultSet rs = null;
- String sql = null;
- switch(TableKind) {
- case "T":
- sql = CommonConfig.sqlShowTable + "\"" + TableName + "\"";
- this.sqlListDrop.add(CommonConfig.sqlDropTable +
- "\"" + TableName + "\"");
- break;
- case "V":
- sql = CommonConfig.sqlShowView + "\"" + TableName + "\"";
- this.sqlListDrop.add(CommonConfig.sqlDropView +
- "\"" + TableName + "\"");
- break;
- case "M":
- sql = CommonConfig.sqlShowMacro + "\"" + TableName + "\"";
- this.sqlListDrop.add(CommonConfig.sqlDropMacro +
- "\"" + TableName + "\"");
- break;
- case "P":
- case "E":
- sql = CommonConfig.sqlShowProcedure + "\"" + TableName + "\"";
- this.sqlListDrop.add(CommonConfig.sqlDropProcedure +
- "\"" + TableName + "\"");
- break;
- case "D":
- logger.info(" -- TableKind is D, SKIP. -- ");
- break;
- case "R":
- case "F":
- sql = CommonConfig.sqlShowFunction + "\"" + TableName + "\"";
- this.sqlListDrop.add(CommonConfig.sqlDropFunction +
- "\"" + TableName + "\"");
- break;
- default:
- break;
- }
- logger.info(sql);
- if(sql == null) return null;
- ps = conn.prepareStatement(sql);
- //logger.info(sql);
- rs = ps.executeQuery();
- while(rs.next()) {
- // Be careful, replace = with +=
- sqlCREATE += rs.getString(1);
- }
- // Remove the DB name in the CREATE statement
- sqlCREATE = sqlCREATE.replace(DBConn.getDatabase() + ".", "");
- sqlCREATE = sqlCREATE.replace(DBConn.getDatabase().toLowerCase() + ".", "");
- sqlCREATE = sqlCREATE.replace(DBConn.getDatabase().toUpperCase() + ".", "");
- sqlCREATE = sqlCREATE.replace("\"" + DBConn.getDatabase() + "\".", "");
- sqlCREATE = sqlCREATE.replace("\"" + DBConn.getDatabase().toLowerCase() + "\".", "");
- sqlCREATE = sqlCREATE.replace("\"" + DBConn.getDatabase().toUpperCase() + "\".", "");
- rs.close();
- ps.close();
- return sqlCREATE;
- }
注意:
1. CommonConfig.sqlShowTable是字符串"show table ",其他类似。
2. 最值得注意的情况是
- sqlCREATE += rs.getString(1);
这句必须使用+=,而不能使用=;因为存在show procedure的结果集(ResultSet)有可能是当作多行返回的。即如下图的情况(使用=时的返回值):
- INFO [main] (DDLTransfer.java:93) - show procedure "wikiproc"
- **************************************
- replace procedure
- **************************************
- wikiproc
- **************************************
- (IN RUNID INTEGER)
- dynamic result sets 1
- main:begin
- declare cur_report cursor with return only for
- sel *
- from pct_run r
- where r.run_id=RUNID;
- open cur_report;
- end;
每行用一行星号隔开,可见返回了三行。
0 0
- Teradata各种类型Show 语句
- Teradata各种类型Show 语句
- teradata常用语句
- gbase,hive,teradata,db2,oracle数据库查询字段信息,类型,注释的sql语句.
- Teradata 修改表字段类型
- Teradata Join类型(Types of Teradata Joins)
- Teradata
- Teradata
- mysql 各种show
- Teradata数据库TableKind表类型对应
- Teradata 日期类型转换(特殊方式)
- oracle,db2,teradata,hive字段类型汇总
- show和descrebe语句
- mysql常用show语句
- MySQL语句之show
- mysql - show语句大全
- mysql常用show语句
- mysql show 语句
- Nginx出现413 Request Entity Too Large错误解决方法,phpmyadmin导入mysql数据库提示,您想上传更大的文件/您可能想上传更大的文件的解决方法
- POJ-3735-Training little cats-构造矩阵+矩阵快速幂+稀疏矩阵乘法优化
- JDBC性能小贴
- 超酷算法:用四叉树和希尔伯特曲线做空间索引
- 关于camera 构架设计的一点看法
- Teradata各种类型Show 语句
- SetFilePointer设置文件指针使用示例(可用于读取大文件!!!)
- app集成微信支付服务器端开发(java)
- 中国剩余定理
- JS当中获取Web访问基路径
- 在 CSS 中使用 LESS 实现更多功能
- 多线程总结(5)
- Android 滑动菜单框架完全解析
- hjtag