按每个文件导出数据库的所有存储过程
来源:互联网 发布:淘宝分享送红包设置 编辑:程序博客网 时间:2024/05/17 02:25
查询数据库的所有存储过程:
SELECT obj.id , obj.name , com.textFROM sysobjects obj JOIN syscomments com ON obj.id = com.idWHERE obj.xtype = 'P'ORDER BY com.id
按文件导出数据库的所有存储过程,具体代码如下:
package com.edenred;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class GenerateProcedureFile {// 加载驱动private final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";private final String DBURL = "jdbc:sqlserver://localhost:1433;databasename=myolay";private final String DBUSER = "sa";private final String DBPASSWORD = "abc123$";private Connection conn = null;public GenerateProcedureFile() {try {Class.forName(DBDRIVER);this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);} catch (Exception e) {e.printStackTrace(); }}public Connection getConnection() {return this.conn;}public void close() {try {this.conn.close();} catch (Exception e) {}}public static void main(String[] args) throws Exception {GenerateProcedureFile jdbcUtil = new GenerateProcedureFile();Connection conn = jdbcUtil.getConnection();PreparedStatement ps = conn.prepareStatement("SELECT id,name FROM sysobjects WHERE xtype ='P'");ResultSet rs = ps.executeQuery();while (rs.next()) {Integer id = rs.getInt("id");String name = rs.getString("name");StringBuffer sb = new StringBuffer();sb.append(" IF EXISTS ( SELECT * FROM sys.objects ").append("\r\n");sb.append(" WHERE NAME = '").append(name).append("' )").append("\r\n");sb.append(" BEGIN ").append("\r\n");sb.append(" DROP PROCEDURE ").append(name).append("\r\n");sb.append(" END ").append("\r\n");sb.append(" GO ").append("\r\n");PreparedStatement pstemp = conn.prepareStatement("SELECT * FROM syscomments WHERE id = "+id);ResultSet rstemp = pstemp.executeQuery();while (rstemp.next()) {String text = rstemp.getString("text");sb.append(text);}generateFile(name, sb.toString());}//关闭数据库jdbcUtil.close();}// 生成文件public static void generateFile(String fileName, String fileContent) {FileOutputStream fos = null;PrintWriter pw = null;try {File file = new File("E:\\pro\\" + fileName.trim() + ".sql");// 创建文件file.createNewFile();fos = new FileOutputStream(file);// 写入数据fos.write(fileContent.getBytes());pw = new PrintWriter(fos);pw.write(fileContent.toCharArray());pw.flush();} catch (Exception e) {e.printStackTrace();} finally {if (fos != null) {try {fos.close();} catch (IOException e) {e.printStackTrace();}}if (fos != null) {pw.close();}}}}
- 按每个文件导出数据库的所有存储过程
- sybase ASE 导出数据库的所有存储过程、触发器到文件
- mysql存储过程利用游标查询每个数据库的所有表
- 从数据库中导出所有的存储过程的4种方法
- SQLServer 查询数据库每个表占用空间的存储过程
- SQLServer 查询数据库每个表占用空间的存储过程
- ORACLE导出一个用户下的所有存储过程
- 导出所有DB2存储过程的四种方法
- 更新数据库所有表及所有字段的存储过程
- shell实现,将mysql每个存储过程导出为单个文件
- [PL/SQL]导入文件内的数据到数据库(针对本博的导出存储过程)
- SQL SERVER数据库,建立存储过程导出XML文件
- oracle数据库下导出、导入某个用户下的所有相关信息,包括表、存储过程和视图
- SQL SERVER数据库导出表或查询到EXCEL文件的存储过程
- 导出oracle数据库存储过程
- Oracle中用sql查询获取数据库的所有触发器,所有存储过程,所有视图,所有表
- oracle使用export user objects导出所有,包括存储过程、数据库函数、视图等时,不想导出数据库表怎么办?
- 用Java实现导出SQLServer数据库中所有存储过程,视图,函数和触发器
- 影响sql效率
- 表变量与临时表的优缺点
- Google常用搜索技巧及"index of"详细使用方法
- 认知 android.app.SearchManager
- CentOS 6.2 上编译安装 Nginx 1.0.15 + PHP 5.3.12 + MySQL 5.1.62
- 按每个文件导出数据库的所有存储过程
- Linux文本格式样式修改
- 获取鼠标点击处的控件并获取其坐标
- CMMI的五个级别是什么?域是什么?
- 优秀程序员和一般程序员差别在哪?
- find命令的使用
- gvim 多标签页打开
- 【phpcms-v9】利用[后台]->[类别管理]为文章前后台添加类别名称
- 解析不了域名