精华内容
下载资源
问答
  • Oracle11G数据库的的exp和imp工具,数据库在做备份时若出现导出导入文件错误,一般是缺少exp.exe 和imp.exe工具或者该工具出行问题所致。使用方法:解压后将文件放到X:\development\Oracle\product\11.2.0\dbhome_1...
  • oracle 数据库expdp 和impdp 详细操作说明 针对imp、exp 做简要说明
  • Oracle数据库导入导出脚本文件(需要修改文件路径以及数据库名称密码等信息)
  • NULL 博文链接:https://cqh520llr.iteye.com/blog/2084643
  • DB2数据库导入导出

    2013-01-25 17:11:03
    文档是自己测试后空闲时记录下来的,描述将用户的DB2上的一个数据库导出导入到自己的DB2上的操作方法和记录,DB2没有直接的数据库导出,需导出表结构、表数据,然后在导入,详见文档。
  • 此工具为java编写的桌面程序,可以进行Oracle数据库导入导出,里面的解压后有相应的操作说明文档,里面的jre不建议删除
  • 主要介绍了Django import export实现数据库导入导出方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇Python之csv文件从MySQL数据库导入导出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • NULL 博文链接:https://yxwang0615.iteye.com/blog/1853522
  • mysql 数据库导入导出方法

    万次阅读 多人点赞 2019-03-14 11:04:37
    mysql 数据库导入导出 一般形式: mysqldump -h IP -u 用户名 -p -d 数据库名 > 导出的文件名 参数解析: -h:表示host地址 -u:表示user用户 -p:表示password密码 -d:表示不导出数据 注意: (1)-p 后面不...

    mysql 数据库导入导出

    一般形式:

    mysqldump -h IP -u 用户名 -p -d 数据库名 > 导出的文件名
    
    参数解析:
    -h:表示host地址
    -u:表示user用户
    -p:表示password密码
    -d:表示不导出数据
    

    注意:

    (1)-p 后面不能加password,只能单独输入数据库名称
    (2)mysqldump是在cmd下的命令,不能再mysql下面,即不能进入mysql的(如果进入了mysql,得exit退出mysql后才可以的。)
    

    一:数据库的导出

    1. 导出数据库结构和数据(此时不用加-d),如下导出库dbtest中所有表结构和数据
    mysqldump -h 192.168.182.134 -u root -p dbtest > C:\Users\Administrator\Desktop\users2.sql
    
    1. 只导出数据库表结构(此时要加-d),如下导出库dbtest中的users表结构没有数据
    mysqldump -h 192.168.182.134 -u root -p -d dbtest > C:\Users\Administrator\Desktop\users2.sql
    
    1. 导出某张表结构和数据(此时不用加-d),如下导出库dbtest中的users表结构和数据
    mysqldump -h 192.168.182.134 -u root -p dbtest users > C:\Users\Administrator\Desktop\users2.sql
    
    1. 导出某张表结构(此时要加-d),如下导出库dbtest中的users表结构
    mysqldump -h 192.168.182.134 -u root -p -d dbtest users > C:\Users\Administrator\Desktop\users2.sql
    

    二:数据库的导入

    1. 已经建好数据库,导入数据库文件
      (1)首先登录并进入数据库:

      本地访问:
      mysql -h localhost -u root -p
      
      远程访问:
      mysql -h 192.168.182.120 -uroot -p
       
      参数解析:
      -h:表示host地址,本地直接使用localhost,远程需要使用ip地址
      -u:表示user用户
      -p:表示password密码
      

    2.登录成功后执行导入命令source+文件路径

    source C:\Users\Administrator\Desktop\users2.sql
    

    二:没有数据库,需要先创建数据库

    1. mysql -h localhost -u root -p(进入mysql下面)

    2. create database dbtest; (创建数据库)

    3. show databases;(查看数据库列表)

    4. use dbtest;(进入dbtest数据库下面)

    5. show tables;(刚创建的数据库dbtest下面空没有表)

    6. source C:\Users\Administrator\Desktop\users2.sql(导入数据库表)

    7. show tables;(查看dbtest数据库下面的所有表,就可以看到表了)

    8. desc users;(查看表结构设计)

    9. select * from users;(查询所有的数据)

    10. exit;(或者ctrl + c)退出mysql

    展开全文
  • 一款强大的异构数据库导入导出工具,还可以检查两个数据库的异同
  • oracle11g数据库导入导出方法教程

    万次阅读 多人点赞 2018-03-04 15:03:09
    oracle11g数据库导入导出: ①:传统方式——exp(导出)和(imp)导入: ②:数据泵方式——expdp导出和(impdp)导入; ③:第三方工具——PL/sql Develpoer;一、什么是数据库导入导出? oracle11g数据库的导入/导出,...

    oracle11g数据库导入导出:

    ①:传统方式——exp(导出)和(imp)导入:
    ②:数据泵方式——expdp导出和(impdp)导入;
    ③:第三方工具——PL/sql Developer;

    一、什么是数据库导入导出?
    oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。
    数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);
    数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。
    .dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式);

    二、二者优缺点描述:
    1.exp/imp:
    优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就                                         保证了服务器上数据文件的安全性。
    缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。如果文件超过几个G,大众性能的电                                       脑,至少需要4~5个小时左右。
    2.expdp/impdp:
    优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
    缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。我们                                       都知道数据库服务器的重要性,所以在上面的操作必须慎重。所以这种方式一般由专业的程序人员来完                                           成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。
    3.PL/sql Develpoer:
    优点:封装了导入导出命令,无需每次都手动输入命令。方便快捷,提高效率。
    缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。

    三、特别强调:
    目标数据库:数据即将导入的数据库(一般是项目上正式数据库);
    源数据库:数据导出的数据库(一般是项目上的测试数据库);
    1.目标数据库要与源数据库有着名称相同的表空间。
    2.目标数据在进行导入时,用户名尽量相同(这样保证用户的权限级别相同)。
    3.目标数据库每次在进行数据导入前,应做好数据备份,以防数据丢失。
    4.使用数据泵时,一定要现在服务器端建立可用的逻辑目录,并检查是否可用。
    5.弄清是导入导出到相同版本还是不同版本(oracle10g版本与oracle11g版本)。
    6.目标数据导入前,弄清楚是数据覆盖(替换),还是仅插入新数据或替换部分数据表。
    7.确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间。
    8.导入导出时注意字符集是否相同,一般Oracle数据库的字符集只有一个,并且固定,一般不改变。
    9.导出格式介绍:
       Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好; 
       Sql格式:.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,
    适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会报错; 
       Pde格式:.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具
    导入导出,不能用文本编辑器查看;
    10.确定操作者的账号权限。

    四、二者的导入导出方法:
    1、传统方法:
    通用命令:exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" full = y;
    数据库导出举例:

    exp xinxiaoyong/123456@127.0.0.1:1521 file="e:\temp.dmp" full = y;

    exp:导出命令,导出时必写。
    imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
    username:导出数据的用户名,必写;
    password:导出数据的密码,必写;
    @:地址符号,必写;
    SERVICENAME:Oracle的服务名,必写;
    1521:端口号,1521是默认的可以不写,非默认要写;
    file="e:\temp.dmp" : 文件存放路径地址,必写;
    full=y :表示全库导出。可以不写,则默认为no,则只导出用户下的对象;
    方法细分:
    1.完全导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" full = y;
    2.部分用户表table导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" tabels=                                                                  (table1,table2,table3,...);
    3.表空间tablespaces导入导出:
    //一个数据库实例可以有N个表空间(tablespace),一个表空间下可以有N张表(table)。
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" tablespaces=                                                         (tablespace1,tablespace2,tablespace3,...);
    4.用户名username对象导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp"                                                                                owner(username1,username2,username3);

    2、数据泵方法:
    创建directory:
    expdp(impdp) username/password@SERVICENAME:1521 schemas=username                                                                       dumpfile=file1.dmp logfile=file1.log directory=testdata1 remap_schema=test:test;
    数据库导出举例:
    expdp xinxiaoyong/123456@127.0.0.1:1521 schemas=xinxiaoyong dumpfile=test.dmp 
    logfile=test.log directory=testdata1;

    exp:导出命令,导出时必写。
    imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
    username:导出数据的用户名,必写;
    password:导出数据的密码,必写;
    @:地址符号,必写;
    SERVICENAME:Oracle的服务名,必写;
    1521:端口号,1521是默认的可以不写,非默认要写;
    schemas:导出操作的用户名;
    dumpfile:导出的文件;
    logfile:导出的日志文件,可以不写;
    directory:创建的文件夹名称;
    remap_schema=源数据库用户名:目标数据库用户名,二者不同时必写,相同可以省略;
    1.查看表空间:
    select * from dba_tablespaces;
    2.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存                                                    在,则出错)。
    select * from dba_directories;
    3.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。 
    create directory testdata1 as 'd:\test\dump';
    4.给xinxiaoyong用户赋予在指定目录的操作权限,最好以system等管理员赋予。
    //xinxiaoyong 是用户名(123456是用户密码)
    grant read,write on directory testdata1 to xinxiaoyong;
    5.导出数据

    1)按用户导 expdp xinxiaoyong/123456@orcl schemas=xinxiaoyong                                                                                           dumpfile=expdp.dmp directory=testdata1;

    2)并行进程parallel expdp xinxiaoyong/123456@orcl directory=testdata1                                                                                    dumpfile=xinxiaoyong3.dmp parallel=40 job_name=xinxiaoyong3
    3)按表名导 expdp xinxiaoyong/123456@orcl tables=emp,dept dumpfile=expdp.dmp                                                                directory=testdata1;
    4)按查询条件导 expdp xinxiaoyong/123456@orcl directory=testdata1                                                                                            dumpfile=expdp.dmp tables=emp query='WHERE deptno=20';
    5)按表空间导 expdp system/manager directory=testdata1 dumpfile=tablespace.dmp                                                                    tablespaces=temp,example;
    6)导整个数据库 expdp system/manager directory=testdata1 dumpfile=full.dmp FULL=y;
    6.还原数据
    1)导到指定用户下 impdp xinxiaoyong/123456 directory=testdata1 dumpfile=expdp.dmp                                                              schemas=xinxiaoyong;
    2)改变表的owner impdp system/manager directory=testdata1 dumpfile=expdp.dmp                                                               tables=xinxiaoyong.dept remap_schema =xinxiaoyong:system;
    3)导入表空间 impdp system/manager directory=testdata1 dumpfile=tablespace.dmp                                                         tablespaces=example;
    4)导入数据库 impdb system/manager directory=dump_dir dumpfile=full.dmp FULL=y;
    5)追加数据 impdp system/manager directory=testdata1 dumpfile=expdp.dmp                                                         schemas=system  table_exists_action;

    3、PLSQL方法:
    登录plsql工具,所使用用户为源数据库有导出权限(exp_full_database,dba等)的用户。 
      1.导出建表语句(包括存储结构) 

      导出步骤tools ->export user object,选择要导出的对象,导出.sql格式文件并等待导出完成,如 下图:

                                                

    导出数据文件 ;
       2.导出步骤tools ->export tables,选择要导出的表及导出的格式进行导出。 

       导出为dmp格式,如下图:

    导出为sql格式,如下图: 

    导出为pde格式,如下图: 

                提示说明:采用第三方工具导出导入整个数据库的话,耗时较长,一定要有足够

                            的时间来操作(数据量大的话需要好几个小时)。

    3.导入建表语句 
       导入步骤tools->import tables->SQL Inserts 导入.sql文件 
    4.导入数据; 
       tools->import talbes,然后再根据导出的数据格式选择导入dmp文件,或者sql文件,
    或者pde文件。 
       提示说明:导入之前最好把以前的表删除,当然导入另外数据库除外。 
          另外导入时当发现进度条一直卡在一个点,而且导出的文件不再增大时,甚至是提示程序
    未响应,千万不要以为程序卡死了,这个导入导出就是比较缓慢,只要没有提示报错,

    或者导入完成就不要停止程序。

    提示:创建数据库,表空间这里略过,本文主要讨论数据的导入导出,如果对此感觉稍有遗漏,尽请见谅。由于水平有限,本文档仅提供参考。如代码有错误之处,请见谅。如果有更好的开发经验,感谢回复。谢谢观看!!!;

    展开全文
  • xx最新Oracle数据库导入导出命令总结 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份exp命令可以把数据从远程数据库服务器导出到本地的dmp文件imp命令可以把dmp文件从本地导入到远处的数据库服务器中利用这...
  • 对oracle数据库导入导出进行了详细的说明并有详细的命令、语句说明,适合于oracle初学者了解oralce数据库导入导出流程。另外还介绍了oracle数据库将dmp文件导入到不同的用户及表空间。
  • oracle11g数据库导入导出: ①传统方式——exp(导出)和(imp)导入; ②数据泵方式——expdp导出和(impdp)导入; ③第三方工具——PL/sql Develpoer
  • oracle数据库导出,然后建用户说明,以及导出SQL脚本
  • C#数据库数据导入导出系列之四 WinForm数据库导入导出到Excel 在日常的项目中,Excel,Word,txt等格式的数据导入到数据库中是很常见的,我在这里做一下总结 这里将分为Asp.net导入Sql Server,Oracle数据库和...

    C#数据库数据导入导出系列之四 WinForm数据库导入导出到Excel

    在日常的项目中,Excel,Word,txt等格式的数据导入到数据库中是很常见的,我在这里做一下总结

    这里将分为Asp.net导入Sql Server,Oracle数据库和WinForm导入Sql Server,Oracle数据库。

     

    C#数据库数据导入导出系列之一 ASP.NET Excel导入Sql Server数据库

    C#数据库数据导入导出系列之二 数据库导出到Excel上

    C#数据库数据导入导出系列之三 数据库导出到Excel下

    C#数据库数据导入导出系列之四 WinForm数据库导入导出到Excel

    (注意 这里四篇文章只是基础的方法,若有更高的要求,可以参考

    http://www.cnblogs.com/atao/archive/2009/11/15/1603528.html

    http://www.cnblogs.com/tonyqus/category/182110.html 

    http://www.yongfa365.com/Item/NPOI-MyXls-DataTable-To-Excel-From-Excel.html .net 通过NPOI或MyXls把DataTable导出到Excel

     

    这里将的数据库数据库导入导出,其实对Sql Server 和Oracle都是通用的

    如果使用ADO.Net连接Oracle数据库,需要在引用里添加“System.Data.OracleClient ”,其他方面与连接Sql Server数据库是一样的

    SqlConnection cn = new SqlConnection();
    OracleConnection oraleCn = new OracleConnection();

    如果使用诸如Ibatis等持久层框架的话,唯一的区别就是在数据库连接语句上的差别而已。下面是两个例子

    Oracle:Data Source=192.168.0.11/Contact;User ID=system;Password=ss;Unicode=True

    Sql Server: Data Source=Contact;Server=localhost;uid=sa;pwd=ss

    1,数据库导出到Excel

    先看界面

    然后是代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;
    using Microsoft.Office.Interop.Excel;
    using System.Reflection;
    using System.IO;
    using System.Data.SqlClient;
    using System.Data.OracleClient;
    
    namespace SqlServer__Excel
    {
        public partial class SqlDB_To_Excel : Form
        {
            public SqlDB_To_Excel()
            {
                InitializeComponent();
            }
    
            private Microsoft.Office.Interop.Excel.Application myExcel = null;
    
            private void button1_Click(object sender, EventArgs e)
            {
                print(dataGridView1);
            }
    
            public void print(DataGridView dataGridView1)
            {
                //导出到execl   
                try
                {
                    SaveFileDialog saveFileDialog = new SaveFileDialog();
                    saveFileDialog.Filter = "导出Excel (*.xls)|*.xls";
                    saveFileDialog.FilterIndex = 0;
                    saveFileDialog.RestoreDirectory = true;
                    saveFileDialog.CreatePrompt = true;
                    saveFileDialog.Title = "导出文件保存路径";
                    saveFileDialog.ShowDialog();
                    string strName = saveFileDialog.FileName;
                    if(strName.Length != 0)
                    {
                        //没有数据的话就不往下执行   
                        if(dataGridView1.Rows.Count == 0)
                            return;
    
                        // toolStripProgressBar1.Visible = true;
                        System.Reflection.Missing miss = System.Reflection.Missing.Value;
                        //实例化一个Excel.Application对象
                        Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                        excel.Application.Workbooks.Add(true);
                        excel.Visible = false;//若是true,则在导出的时候会显示EXcel界面。
                        if(excel == null)
                        {
                            MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                        Microsoft.Office.Interop.Excel.Workbooks books = (Microsoft.Office.Interop.Excel.Workbooks)excel.Workbooks;
                        Microsoft.Office.Interop.Excel.Workbook book = (Microsoft.Office.Interop.Excel.Workbook)(books.Add(miss));
                        Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)book.ActiveSheet;
                        sheet.Name = "test";
                        int m = 0, n = 0;
                        //生成Excel中列头名称   
                        for(int i = 0; i < dataGridView1.Columns.Count; i++)
                        {
                            excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;//输出DataGridView列头名
                        }
                        //把DataGridView当前页的数据保存在Excel中   
                        for(int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                        {
                            for(int j = 0; j < dataGridView1.Columns.Count; j++)
                            {
                                if(dataGridView1[j, i].ValueType == typeof(string))
                                {
                                    excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();
                                }
                                else
                                {
                                    excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
                                }
                            }
                        }
                        sheet.SaveAs(strName, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);
                        book.Close(false, miss, miss);
                        books.Close();
                        excel.Quit();
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(books);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
                        GC.Collect();
                        MessageBox.Show("数据已经成功导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        // toolStripProgressBar1.Value = 0;
                        System.Diagnostics.Process.Start(strName);
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message, "错误提示");
                }
            }
    
            public void printAll(System.Data.DataTable dt)
            {
                //导出到execl
                try
                {
                     SaveFileDialog saveFileDialog = new SaveFileDialog();
                    saveFileDialog.Filter = "导出Excel (*.xls)|*.xls";
                    saveFileDialog.FilterIndex = 0;
                    saveFileDialog.RestoreDirectory = true;
                    saveFileDialog.CreatePrompt = true;
                    saveFileDialog.Title = "导出文件保存路径";
                    saveFileDialog.ShowDialog();
                    string strName = saveFileDialog.FileName;
                    if(strName.Length != 0)
                    {
                        //没有数据的话就不往下执行
                        if(dt.Rows.Count == 0)
                            return;
    
                        // toolStripProgressBar1.Visible = true;
                        System.Reflection.Missing miss = System.Reflection.Missing.Value;
                        //实例化一个Excel.Application对象
                        Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                        excel.Application.Workbooks.Add(true);
                        excel.Visible = false;//若是true,则在导出的时候会显示EXcel界面。
                        if(excel == null)
                        {
                            MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                        Microsoft.Office.Interop.Excel.Workbooks books = (Microsoft.Office.Interop.Excel.Workbooks)excel.Workbooks;
                        Microsoft.Office.Interop.Excel.Workbook book = (Microsoft.Office.Interop.Excel.Workbook)(books.Add(miss));
                        Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)book.ActiveSheet;
                        sheet.Name = "test";
                        int m = 0, n = 0;
    
    
                        //生成Excel中列头名称
                        for(int i = 0; i < dt.Columns.Count; i++)
                        {
                            excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;//输出DataGridView列头名
                        }
    
                        //把DataGridView当前页的数据保存在Excel中
                        if(dt.Rows.Count > 0)
                        {
                            for(int i = 0; i < dt.Rows.Count; i++)//控制Excel中行,上下的距离,就是可以到Excel最下的行数,比数据长了报错,比数据短了会显示不完
                            {
                                for(int j = 0; j < dt.Columns.Count; j++)//控制Excel中列,左右的距离,就是可以到Excel最右的列数,比数据长了报错,比数据短了会显示不完
                                {
                                    string str = dt.Rows[i][j].ToString();
                                    excel.Cells[i + 2, j + 1] = "'" + str;//i控制行,从Excel中第2行开始输出第一行数据,j控制列,从Excel中第1列输出第1列数据,"'" +是以string形式保存,所以遇到数字不会转成16进制
                                }
                            }
                        }
                        sheet.SaveAs(strName, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);
                        book.Close(false, miss, miss);
                        books.Close();
                        excel.Quit();
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(books);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
    
                        GC.Collect();
                        MessageBox.Show("数据已经成功导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        // toolStripProgressBar1.Value = 0;
                        System.Diagnostics.Process.Start(strName);
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message, "错误提示");
                }
            }
    
            private void SqlDB_To_Excel_Load(object sender, EventArgs e)
            {
                dataGridView1.DataSource = GetDataTableFromSqlServer();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                printAll(GetDataTableFromSqlServer());
            }
    
            private System.Data.DataTable GetDataTableFromSqlServer()
            {
                string sqlconn = "database=database1;server=localhost;uid=sa;pwd=sa";
                SqlConnection cn = new SqlConnection(sqlconn);
                string cmdText = "select * from users";
                SqlDataAdapter da = new SqlDataAdapter(cmdText, cn);
                DataSet ds = new DataSet();
                da.Fill(ds, "table1");
                return ds.Tables[0];
            }
    
            private System.Data.DataTable GetDataTableFromOracle()
            {
                string oracleconn = "Data Source=192.168.2.105/Database1;User ID=system;Password=ss;Unicode=True";
                OracleConnection cn = new OracleConnection(oracleconn);
                string cmdText = "select * from users";
                OracleDataAdapter da = new OracleDataAdapter(cmdText, cn);
                DataSet ds = new DataSet();
                da.Fill(ds, "table1");
                return ds.Tables[0];
            }
        }
    }



    结果:

    代码的思想就是将数据从数据库中读出到DataTable或者DataGridView中,然后遍历他们的每一个单元格的值,给Excel对应的单元格赋值。

    使用DataTable作为遍历的对象,是为了去除分页的困扰。

    看到这里,如果换一个List<T>对象集合,也应该能导出到数据库中了。

    2,Excel数据导入到数据库

     

    在WinForm中Excel导入到数据库中和在WebForm中的导入过程是一样的。可参见前面的内容。

    这个系列的博客到此结束!

    展开全文
  • NULL 博文链接:https://yjck.iteye.com/blog/794011
  • POSTGRESQL 数据库导入导出

    万次阅读 2019-06-13 11:29:30
    2.1 pg_dump 及pgsql配置密码导入导出数据 3.pgsql导入整个数据库 4. pg_dumpall导出及psql恢复 5.pg_restore恢复 6.压缩方法 7.xz压缩数据导入数据库方法 8.pg_restore数据导入工具 9.pg_d...

    参考文章:

    pg_dump 详解/使用举例

    目录

    1.pg_dump导出整个数据库

    2.pg_dump导出某个表

    2.1 pg_dump 及pgsql配置密码导入导出数据

     3.pgsql导入整个数据库

    4. pg_dumpall导出及psql恢复

    5.pg_restore恢复

    6.压缩方法

    7.xz压缩数据导入数据库方法

    8.pg_restore数据导入工具

    9.pg_dump工具参数

    10.pg_dumpall工具参数


    关于pg_dump:

    • pg_dump --  将一个PostgreSQL数据库抽出到一个脚本文件或者其它归档文件中。
    • pg_dump是一个用于备份PostgreSQL数据库的实用工具,即使当前数据库正在使用,也能够生成一致性的备份,且不会阻塞其他用户访问数据库(包括读、写)。
    • PostgreSQL提供的一个工具pg_dump,逻辑导出数据,生成sql文件或其他格式文件。
    • pg_dump是一个客户端工具,可以远程或本地导出逻辑数据,恢复数据至导出时间点。
    • pg_dump只能备份一个数据库
    • pg_dump 一次只转储一个数据库,并不会转储有关角色或表空间的信息 (因为那些是群集范围而不是每个数据库)。。

    关于pg_dumpall:

    • 如果要备份Cluster中数据库共有的全局对象,例如角色和表空间,需要使用pg_dumpall。
    • 备份文件以文本或存档文件格式输出。
    • Script dumps是一个普通文本文件,包含将数据库重构到保存时的状态所需的SQL命令。
    • 要从这样的脚本恢复,需要将其提供给psql。脚本文件甚至可以用来在其他机器或者其他架构上重构数据库;进行一些必要的修改,甚至可以在其他数据库上使用。
    • pg_dumpall 在给定的群集中备份每个数据库, 并保留群集范围内的数据, 如角色和表空间定义。

    关于pg_restore:

    • PostgreSQL提供的一个工具pg_restore用来导入数据

    1.pg_dump导出整个数据库

    pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)>/data/dum.sql
    
    #use
    [postgres@vmonline postgres]$pg_dump -h localhost -U postgres pgtest> ~/dum.sql
    
    #特别注意:数据库名称:pgtest与'>' 之间不能存在空格
    

    其它导出示例:

    # 操作系统平面文件格式
    $ pg_dump -h 192.168.6.16 -U highgo -p 5433 -Fp -t test_dump > /tmp/test_dump1.dmp highgo
    #自定义格式
    $ pg_dump -h 192.168.6.16 -U highgo -p 5433 -Fc -t test_dump > /tmp/test_dump2.dmp highgo
    #tar包格式
    $ pg_dump -h 192.168.6.16 -U highgo -p 5433 -Ft -t test_dump > /tmp/test_dump3.dmp highgo
    #自定义、0级压缩格式
    $ pg_dump -h 192.168.6.16 -U highgo -p 5433 -Fc -Z 0 -t test_dump > /tmp/test_dump4.dmp highgo
    #自定义、9级压缩格式
    $ pg_dump -h 192.168.6.16 -U highgo -p 5433 -Fc -Z 9 -t test_dump > /tmp/test_dump5.dmp highgo
    #显示信息内容
    $ pg_dump -h 192.168.6.16 -U highgo -p 5433 -Fc -v -t test_dump > /tmp/test_dump6.dmp highgo

    验证不同格式的文件:

    # ll
    -rw-rw-r-- 1 pg   pg   379738 Nov  1 15:05 test_dump1.dmp
    -rw-rw-r-- 1 pg   pg   217142 Nov  1 15:05 test_dump2.dmp
    -rw-rw-r-- 1 pg   pg   384512 Nov  1 15:05 test_dump3.dmp
    -rw-rw-r-- 1 pg   pg   429852 Nov  1 15:08 test_dump4.dmp
    -rw-rw-r-- 1 pg   pg   217142 Nov  1 15:07 test_dump5.dmp
    压缩格式的文件明显较小
    
    不同格式的文件
    # file test_dump1.dmp
    test_dump1.dmp: ASCII text
    # file test_dump2.dmp
    test_dump2.dmp: PostgreSQL custom database dump - v1.13-0
    # file test_dump3.dmp
    test_dump3.dmp: POSIX tar archive
    # file test_dump4.dmp
    test_dump4.dmp: PostgreSQL custom database dump - v1.13-0
    注意1:默认是-Fp格式(操作系统平面文件)
    注意2:并行导出只支持-Fd 目录格式
    
    $ pg_dump -h 192.168.6.16 -U highgo -p 5433 -Fc -v -Z 1 -t test_dump > /tmp/test_dump3.dmp highgo
    pg_dump: parallel backup only supported by the directory format

    2.pg_dump导出某个表

    pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) -t table(表名) >/data/dum.sql
    
    #use
    pg_dump -h localhost -U postgres pgtest -t public.test_table> ~/dum_test_table.sql
    
    #注意:public.test_table中, 'public'是模式名称, 'test_table'是模式中的表名称

    pg_dump导出某个模式

    pg_dump导出public模式:  
      pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) -s public(模式名称) >/data/dum.sql  
      [postgres@vmonline ~]$pg_dump -h localhost -U postgres pgtest -s public> /home/lpf/public.sql

    2.1 pg_dump 及pgsql配置密码导出数据

    # 数据库导出 -- 
    psql "host=XX.XX.XX.XX port=5432  user=XXX password=XXX dbname=XXX" -f table_name.sql
    
    #use
    pg_dump "host=localhost port=5432 user=postgres password=123456 dbname=pgtest" -f ~/table_name.sql
    
    # ---------------------------------------------------- #
    # 数据库表导出
    pg_dump "host=XX.XX.XX.XX port=5432 user=XXXX password=XXXX dbname=XXXXX" -t table_name -f table_name.sql

     3.pgsql导入整个数据库

    psql -U postgres(用户名)  数据库名(缺省时同用户名) < /data/dum.sql
    
    #use
    [postgres@vmonline ~]$ psql -U postgres pgtest < ~/dum.sql
    
    #pg_restore导入数据库
    pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v "/root/us2010.backup"

    4. pg_dumpall导出及psql恢复

    #pg_dumpall导出
    su postgres #(需要切换到系统的postgres用户来进行备份)
    pg_dumpall > /backup/all_the_data.backup #(备份整个数据库集群)
    
    #psql恢复
    su postgres
    psql -f /backup/all_the_data.backup postgres
    exit
    

    5.pg_restore恢复

    #pg_restore恢复示例
    pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v "/root/us2010.backup"

    6.压缩方法

    一般用dump导出数据会比较大,推荐使用xz压缩

    压缩方法: 

    xz dum.sql 

    压缩后会生成 dum.sql.xz 的文件

    7.xz压缩数据导入数据库方法

    xzcat /data/dum.sql.xz | psql -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)

    8.pg_restore数据导入工具

    [postgres@vmonline ~]$ pg_restore --help
    pg_restore 从一个归档中恢复一个由 pg_dump 创建的 PostgreSQL 数据库.
    
    用法:
      pg_restore [选项]... [文件名]
    
    一般选项:
      -d, --dbname=名字        连接数据库名字
      -f, --file=文件名        输出文件名
      -F, --format=c|d|t       备份文件格式(应该自动进行)
      -l, --list               打印归档文件的 TOC 概述
      -v, --verbose            详细模式
      -V, --version            输出版本信息, 然后退出
      -?, --help               显示此帮助, 然后退出
    
    恢复控制选项:
      -a, --data-only             只恢复数据, 不包括模式
      -c, --clean                  在重新创建之前,先清除(删除)数据库对象
      -C, --create                 创建目标数据库
      -e, --exit-on-error          发生错误退出, 默认为继续
      -I, --index=NAME             恢复指定名称的索引
      -j, --jobs=NUM               执行多个并行任务进行恢复工作
      -L, --use-list=FILENAME      从这个文件中使用指定的内容表排序
                                   输出
      -n, --schema=NAME            在这个模式中只恢复对象
      -N, --exclude-schema=NAME    do not restore objects in this schema
      -O, --no-owner               不恢复对象所属者
      -P, --function=NAME(args)    恢复指定名字的函数
      -s, --schema-only           只恢复模式, 不包括数据
      -S, --superuser=NAME         使用指定的超级用户来禁用触发器
      -t, --table=NAME             restore named relation (table, view, etc.)
      -T, --trigger=NAME          恢复指定名字的触发器
      -x, --no-privileges          跳过处理权限的恢复 (grant/revoke)
      -1, --single-transaction     作为单个事务恢复
      --disable-triggers           在只恢复数据的过程中禁用触发器
      --enable-row-security        启用行安全性
      --if-exists              当删除对象时使用IF EXISTS
      --no-comments                do not restore comments
      --no-data-for-failed-tables  对那些无法创建的表不进行
                                   数据恢复
      --no-publications            do not restore publications
      --no-security-labels         不恢复安全标签信息
      --no-subscriptions           do not restore subscriptions
      --no-tablespaces             不恢复表空间的分配信息
      --section=SECTION            恢复命名节 (数据前、数据及数据后)
      --strict-names               要求每个表和/或schema包括模式以匹配至少一个实体
      --use-set-session-authorization
                                   使用 SESSION AUTHORIZATION 命令代替
                    ALTER OWNER 命令来设置所有权
    
    联接选项:
      -h, --host=主机名        数据库服务器的主机名或套接字目录
      -p, --port=端口号        数据库服务器的端口号
      -U, --username=名字      以指定的数据库用户联接
      -w, --no-password        永远不提示输入口令
      -W, --password           强制口令提示 (自动)
      --role=ROLENAME          在恢复前执行SET ROLE操作
    
    The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified
    multiple times to select multiple objects.

    9.pg_dump工具参数

    [root@vmonline ~]# pg_dump --help
    pg_dump 把一个数据库转储为纯文本文件或者是其它格式.
    
    用法:
      pg_dump [选项]... [数据库名字]
    
    一般选项:
      -f, --file=FILENAME          输出文件或目录名
      -F, --format=c|d|t|p         输出文件格式 (定制, 目录, tar)
                                   明文 (默认值))
      -j, --jobs=NUM               执行多个并行任务进行备份转储工作
      -v, --verbose                详细模式
      -V, --version                输出版本信息,然后退出
      -Z, --compress=0-9           被压缩格式的压缩级别
      --lock-wait-timeout=TIMEOUT  在等待表锁超时后操作失败
      --no-sync                    do not wait for changes to be written safely to disk
      -?, --help                   显示此帮助, 然后退出
    
    控制输出内容选项:
      -a, --data-only              只转储数据,不包括模式
      -b, --blobs                  在转储中包括大对象
      -B, --no-blobs               exclude large objects in dump
      -c, --clean                  在重新创建之前,先清除(删除)数据库对象
      -C, --create                 在转储中包括命令,以便创建数据库
      -E, --encoding=ENCODING      转储以ENCODING形式编码的数据
      -n, --schema=SCHEMA          只转储指定名称的模式
      -N, --exclude-schema=SCHEMA  不转储已命名的模式
      -o, --oids                   在转储中包括 OID
      -O, --no-owner               在明文格式中, 忽略恢复对象所属者
    
      -s, --schema-only            只转储模式, 不包括数据
      -S, --superuser=NAME         在明文格式中使用指定的超级用户名
      -t, --table=TABLE            只转储指定名称的表
      -T, --exclude-table=TABLE    不转储指定名称的表
      -x, --no-privileges          不要转储权限 (grant/revoke)
      --binary-upgrade             只能由升级工具使用
      --column-inserts             以带有列名的INSERT命令形式转储数据
      --disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号
      --disable-triggers           在只恢复数据的过程中禁用触发器
      --enable-row-security        启用行安全性(只转储用户能够访问的内容)
      --exclude-table-data=TABLE   不转储指定名称的表中的数据
      --if-exists              当删除对象时使用IF EXISTS
      --inserts                    以INSERT命令,而不是COPY命令的形式转储数据
      --load-via-partition-root    load partitions via the root table
      --no-comments                do not dump comments
      --no-publications            do not dump publications
      --no-security-labels         不转储安全标签的分配
      --no-subscriptions           do not dump subscriptions
      --no-synchronized-snapshots  在并行工作集中不使用同步快照
      --no-tablespaces             不转储表空间分配信息
      --no-unlogged-table-data     不转储没有日志的表数据
      --quote-all-identifiers      所有标识符加引号,即使不是关键字
      --section=SECTION            备份命名的节 (数据前, 数据, 及 数据后)
      --serializable-deferrable   等到备份可以无异常运行
      --snapshot=SNAPSHOT          为转储使用给定的快照
      --strict-names               要求每个表和/或schema包括模式以匹配至少一个实体
      --use-set-session-authorization
                                   使用 SESSION AUTHORIZATION 命令代替
                    ALTER OWNER 命令来设置所有权
    
    联接选项:
      -d, --dbname=DBNAME       对数据库 DBNAME备份
      -h, --host=主机名        数据库服务器的主机名或套接字目录
      -p, --port=端口号        数据库服务器的端口号
      -U, --username=名字      以指定的数据库用户联接
      -w, --no-password        永远不提示输入口令
      -W, --password           强制口令提示 (自动)
      --role=ROLENAME          在转储前运行SET ROLE
    
    如果没有提供数据库名字, 那么使用 PGDATABASE 环境变量
    的数值.

    10.pg_dumpall工具参数

    [postgres@vmonline ~]$ pg_dumpall --help
    pg_dumpall 抽取一个 PostgreSQL 数据库簇进一个 SQL 脚本文件.
    
    用法:
      pg_dumpall [选项]...
    
    一般选项:
      -f, --file=FILENAME          输出文件名
      -v, --verbose                详细模式
      -V, --version                输出版本信息,然后退出
      --lock-wait-timeout=TIMEOUT  在等待表锁超时后操作失败
      -?, --help                   显示此帮助, 然后退出
    
    控制输出内容选项:
      -a, --data-only              只转储数据,不包括模式
      -c, --clean                  在重新创建数据库前先清除(删除)数据库
      -E, --encoding=ENCODING      转储以ENCODING形式编码的数据
      -g, --globals-only           只转储全局对象, 不包括数据库
      -o, --oids                   在转储中包括 OID
      -O, --no-owner               不恢复对象所属者
      -r, --roles-only             只转储角色,不包括数据库或表空间
      -s, --schema-only            只转储模式, 不包括数据
      -S, --superuser=NAME         在转储中, 指定的超级用户名
      -t, --tablespaces-only       只转储表空间,而不转储数据库或角色
      -x, --no-privileges          不要转储权限 (grant/revoke)
      --binary-upgrade             只能由升级工具使用
      --column-inserts             以带有列名的INSERT命令形式转储数据
      --disable-dollar-quoting     取消美元 (符号) 引号, 使用 SQL 标准引号
      --disable-triggers           在只恢复数据的过程中禁用触发器
      --if-exists              当删除对象时使用IF EXISTS
      --inserts                    以INSERT命令,而不是COPY命令的形式转储数据
      --load-via-partition-root    load partitions via the root table
      --no-comments                do not dump comments
      --no-publications            do not dump publications
      --no-role-passwords          do not dump passwords for roles
      --no-security-labels         不转储安全标签的分配
      --no-subscriptions           do not dump subscriptions
      --no-sync                    do not wait for changes to be written safely to disk
      --no-tablespaces             不转储表空间分配信息
      --no-unlogged-table-data     不转储没有日志的表数据
      --quote-all-identifiers      所有标识符加引号,即使不是关键字
      --use-set-session-authorization
                                   使用 SESSION AUTHORIZATION 命令代替
                    ALTER OWNER 命令来设置所有权
    
    联接选项:
      -d, --dbname=CONNSTR        连接数据库使用的连接串
      -h, --host=主机名        数据库服务器的主机名或套接字目录
      -l, --database=DBNAME    另一个缺省数据库
      -p, --port=端口号        数据库服务器的端口号
      -U, --username=名字      以指定的数据库用户联接
      -w, --no-password        永远不提示输入口令
      -W, --password           强制口令提示 (自动)
      --role=ROLENAME          在转储前运行SET ROLE

     

    展开全文
  • 数据库导入导出工具数据库导入导出工具数据库导入导出工具
  • oracle数据库导入导出工具

    千次阅读 2019-05-23 10:32:01
    早上看了一下《oracle从入门到精通》中数据的导入导出,这个之前在项目中经常用到,但是命令都是网上找的,并不了解其中的含义,现在刚好看到这,做了一些笔记 94.数据导出工具 expdp expdp是服务器端工具,只能在...
  • 达梦数据库导入导出命令总结

    千次阅读 2020-02-18 20:44:32
    一、导出 1.语法: ./dexp PARAMETER= { ...将用户名和密码均为SYSDBA,IP地址为192.168.0.248,端口号为8888的 数据库采用FULL方式完全导出。/user/data为数字证书路径。导出文件名为db_str.dmp, 导出的日志文件...
  • DM达梦数据库导入导出dmp文件实战演示,dexp和dimp命令详细使用方法。 达梦数据库:导入导出数据库 第一章:dexp、dimp 命令导入导出数据库 ① 导出数据库演示 ② 导入数据库演示 ③ dexp 详细命令参数 ④ dimp 详细...
  • 数据库导入导出

    2013-09-10 16:20:04
    讲述sql导入导出excel的脚本,excel导入到数据库数据库导出到excel
  • oracle数据库导入导出命令

    千次阅读 2018-09-15 15:23:40
    Oracle数据导入导出imp/exp  功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。   大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。  Oracle有个好处,虽然你的...
  • 数据库导入导出的几种方式

    千次阅读 2019-01-10 15:21:03
    一、导入数据库数据: 1)创建数据库create database dbname 方案一: a)选择数据库 mysql&amp;amp;amp;amp;amp;gt;use dbname ; b)设置数据库编码 mysql&amp;amp;amp;amp;amp;gt;set names utf8; ...
  • mysql数据库导入导出文件sql文件

    千次阅读 2021-03-07 11:49:25
    mysql数据库导入导出文件sql文件 window下 1.导出整个数据库 mysqldump -u用户名-p数据库名>导出的文件名 mysqldump -u dbuser -p dbname > dbname.sql 2.导出一个表 mysqldump -u用户名-p数据库名 ...
  • 主要介绍了oracle数据库导入导出命令格式,对单表导出、多张表导出的方法
  • 数据库导入导出两种方式,导入导出生成日记,把下面例子修改一下信息复制到一个.bat文件中运行即可。 修改以下导入导出例子的用户、密码和实例、导出文件名称、日记名称即可使用 创建数据泵(名称和地址)(创建...
  • 数据库做备份exp 或imp 命令导出导入文件的时候报错,很多情况下是缺少exp.exe 和imp.exe工具或者该工具出行问题,下载好后,将该文件放在D:\development\Oracle\product\11.2.0\dbhome_1\BIN该目录替换即可

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 173,642
精华内容 69,456
关键字:

数据库的导入导出