plsql中怎么批量导出数据库数据

plsql中怎么批量导出数据库数据,第1张

首先登录到数据中,通过PLSQL工具等到到数据库,然后点击工具栏上的tools(工具)

选择导出用户对象,点击tools工具之后,向下查找Export User Objects功能,通过这个功能导出数据。

选择需要导出的表或者序列或者存储过程等。在Type列中展示的是对象属性,表、序列和存储过程等。

选择多个导出的对象。按住ctrl键进行多选导出的对象。点击Output File输出文件路径,选择文件路径输入文件名称,后缀是sql。

开始导出数据脚本。点击Export按钮,开始对选中的对象进行导出成数据脚本。

查看导出文件。导出完成后,双击打开导出后的文件,就可以看到是一些建表存储过程等脚本。

材料/工具:SQL Server

1、打开SQL Server,找到需要导出的数据库。

2、在需要导出的数据库上右击,选择任务选项中的导出数据选项。

3、SQL Server导入和导出向导窗口中,单击下一步按钮。

4、选择数据源对话框中,选择数据源选项中的Microsoft OLE DB Provider for SQL Server选项。

5、选择使用SQL Server身份验证,输入用户名和密码,选择要导出的数据库,单击下一步。

6、选择目标对话框中,选择目标选项中的Microsoft OLE DB Provider for SQL Server选项。

7、选择使用SQL Server身份验证,输入用户名和密码,单击新建按钮。

8、出现的创建数据库窗口中,在名称处输入一个导出数据库的名字,本例为NewData。

9、可以看到在数据库选项中,多出了一个NewData的名称,单击下一步。

10、指定复制或查询对话框中,选择复制一个或多个表或视图的数据选项,单击下一步。

11、选择源表和源视图对话框中,选择自己要导出的表和视图。

12、运行包对话框中,单击完成按钮,数据就成功导出了。

我给你一些数据库常用的导入导出命令吧:\x0d\该命令在“开始菜单>>运行>>CMD”中执行\x0d\一、数据导出(expexe)\x0d\1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochudmp文件中\x0d\exp system/accp@orcl file=d:\daochudmp full=y\x0d\\x0d\2、将数据库orcl中scott用户的对象导出\x0d\exp scott/accp@orcl file=d:\daochudmp owner=(scott)\x0d\\x0d\3、将数据库orcl中的scott用户的表emp、dept导出\x0d\exp scott/accp@orcl file= d:\daochudmp tables=(emp,dept)\x0d\\x0d\4、将数据库orcl中的表空间testSpace导出\x0d\exp system/accp@orcl file=d:\daochudmp tablespaces=(testSpace)\x0d\\x0d\二、数据导入(impexe)\x0d\1、将d:\daochudmp 中的数据导入 orcl数据库中。\x0d\imp system/accp@orcl file=d:\daochudmp full=y\x0d\\x0d\2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。\x0d\imp scott/accp@orcl file=d:\daochudmp full=y ignore=y\x0d\\x0d\3、将d:\daochudmp中的表emp导入\x0d\imp scott/accp@orcl file=d:\daochudmp tables=(emp)

注重非凡字段如BLOB(TEXT)之类的不能直接导入、导出,一般只是将记实导入到新数据库中,其它的如SP、UDF、TRUGGER等等自行在新数据库下年夜头成立。这是两个分歧的数据库,撑持的字段类型、长度、SQL语句语法、函数等等分歧,只能将数据导入好比先导出到TXT,再用LOAD

MYSQL

1完整的导出整个数据库表结构即dmp文件方法:

Tools-->ExportTables,选择OracleExport默认选项即可,在Outputfile选择一个输出目标

点击Export,即可导出表结构

2导出表中数据:

Tools-->ExportTables:选择SQLInserts遇到大字段(clob,blob)会出问题导不出来,在此可以

选择需要导出的表,在Outputfile中选择导出的目标,点击Export即可导出,在此有几个选项

可以去掉所有的可选项直接导出

3导出数据库中所有的或是所选表的数据库建表脚本:

Tools-->ExportUserObjects去掉下面三个include可选项,选择Singlefile)在Outputfile

中选择输出目标,点击Export即可

如果你一表包含一个lob类型的列如果存在一个与这个表同名的同义词那么在导入这个表的数据时会报ora-01403错:

在oracle10g中的测试情况如下:

1创建两个用户test和cs

idle> conn sys/zzh_2046@jy_1 as sysdba

已连接。

sys@JINGYONG> grant dba to test identified by test;

授权成功。

sys@JINGYONG> grant dba to cs identified by cs;

授权成功。

2在用户test中创建一个有clob类型的列的表emp并向表中插入几行记录

sys@JINGYONG> conn test/test@jy_1

已连接。

test@JINGYONG> create table emp (col_a number, col_b varchar2(3), c_lob clob);

表已创建。

test@JINGYONG>

test@JINGYONG> INSERT INTO EMP VALUES (180, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (181, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (182, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (183, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (184, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (185, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> commit;

提交完成。

连接到用户cs并创建一个同义词叫EMP

1创建同义词EMP是使用testemp表来创建(也可以用任意表来创建同义词EMP,只要保证同义词的名字与要导入表的名字相同就行)

test@JINGYONG> conn cs/cs@jy_1

已连接。

cs@JINGYONG> create synonym EMP for testEMP;

同义词已创建。

cs@JINGYONG> commit;

提交完成。

cs@JINGYONG>

C:\Documents and Settings\Administrator>exp test/test@jy_1 file=f:\empdmp table

s=EMP

Export: Release 102010 - Production on 星期四 12月 19 22:00:15 2013

Copyright (c) 1982, 2005, Oracle All rights reserved

连接到: Oracle Database 10g Enterprise Edition Release 102010 - Production

With the Partitioning, OLAP and Data Mining options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的表通过常规路径

正在导出表 EMP导出了 6 行

成功终止导出, 没有出现警告。

C:\Documents and Settings\Administrator>imp cs/cs@jy_1 file=f:\empdmp tables=EM

P ignore=y

Import: Release 102010 - Production on 星期四 12月 19 22:01:48 2013

Copyright (c) 1982, 2005, Oracle All rights reserved

连接到: Oracle Database 10g Enterprise Edition Release 102010 - Production

With the Partitioning, OLAP and Data Mining options

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

正在将 TEST 的对象导入到 CS

正在将 TEST 的对象导入到 CS

正在导入表 "EMP"

IMP-00058: 遇到 ORACLE 错误 1403

ORA-01403: no data found导入了 6 行

成功终止导入, 但出现警告。

2使用表t1来创建同义词EMP

cs@JINGYONG> create synonym EMP for syst1;

同义词已创建。

cs@JINGYONG> drop table emp;

drop table emp

第 1 行出现错误:

ORA-00942: 表或视图不存在

C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\empdmp tables=

EMP ignore=y

Import: Release 102010 - Production on 星期五 12月 20 08:13:07 2013

Copyright (c) 1982, 2005, Oracle All rights reserved

连接到: Oracle Database 11g Enterprise Edition Release 112010 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

正在将 TEST 的对象导入到 CS

正在将 TEST 的对象导入到 CS

正在导入表 "EMP"

IMP-00058: 遇到 ORACLE 错误 1403

ORA-01403: 未找到任何数据

IMP-00058: 遇到 ORACLE 错误 904

ORA-00904: "C_LOB": 标识符无效

成功终止导入, 但出现警告。

11g的测试

1创建两个用户test和cs

idle> conn sys/zzh_2046@jy_201 as sysdba

已连接。

sys@JINGYONG> grant dba to test identified by test;

授权成功。

sys@JINGYONG> grant dba to cs identified by cs;

2在用户test中创建一个有clob类型的列的表emp并向表中插入几行记录

sys@JINGYONG> conn test/test@jy_201

已连接。

test@JINGYONG> create table emp (col_a number, col_b varchar2(3), c_lob clob);

表已创建。

test@JINGYONG>

test@JINGYONG> INSERT INTO EMP VALUES (180, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (181, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (182, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (183, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (184, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> INSERT INTO EMP VALUES (185, 'a', '01010101010101');

已创建 1 行。

test@JINGYONG> commit;

提交完成。

连接到用户cs并创建一个同义词叫EMP

1创建同义词EMP是使用testemp表来创建(也可以用任意表来创建同义词EMP,只要保证同义词的名字与要导入表的名字相同就行)

test@JINGYONG> conn cs/cs@jy_201

已连接。

cs@JINGYONG> create synonym EMP for testEMP;

同义词已创建。

cs@JINGYONG> commit;

提交完成。

cs@JINGYONG>

使用10g的客户端连接到11g的数据库进行导出 *** 作

C:\Documents and Settings\Administrator>exp test/test@jy_201 file=f:\empdmp tab

les=EMP

Export: Release 102010 - Production on 星期四 12月 19 22:10:28 2013

Copyright (c) 1982, 2005, Oracle All rights reserved

连接到: Oracle Database 11g Enterprise Edition Release 112010 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的表通过常规路径

正在导出表 EMP导出了 6 行

成功终止导出, 没有出现警告。

使用10g的客户端连接到11g的数据库进行导入 *** 作也会报ora-01403错误

C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\empdmp tables=

EMP ignore=y

Import: Release 102010 - Production on 星期四 12月 19 22:11:27 2013

Copyright (c) 1982, 2005, Oracle All rights reserved

连接到: Oracle Database 11g Enterprise Edition Release 112010 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

正在将 TEST 的对象导入到 CS

正在将 TEST 的对象导入到 CS

正在导入表 "EMP"

IMP-00058: 遇到 ORACLE 错误 1403

ORA-01403: 未找到任何数据导入了 6 行

成功终止导入, 但出现警告。

使用11g的客户端连接到11g的数据库进行导出 *** 作

[oracle@jingyong ~]$ exp test/test file=/home/oracle/empdmp tables=EMP

Export: Release 112010 - Production on Sat Dec 7 01:41:44 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates All rights reserved

Connected to: Oracle Database 11g Enterprise Edition Release 112010 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path

exporting table EMP 12 rows exported

Export terminated successfully without warnings

使用11g的客户端连接到11g的数据库进行导出 *** 作在有与导入表同名的同义词的情况下不会报ora-01403错误

[oracle@jingyong ~]$ imp cs/cs file=/home/oracle/empdmp tables=EMP ignore=y

Import: Release 112010 - Production on Sat Dec 7 01:42:20 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates All rights reserved

Connected to: Oracle Database 11g Enterprise Edition Release 112010 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V110200 via conventional path

Warning: the objects were exported by TEST, not by you

import done in ZHS16GBK character set and AL16UTF16 NCHAR character set

importing TEST's objects into CS

importing TEST's objects into CS

importing table "EMP" 12 rows imported

Import terminated successfully without warnings

[oracle@jingyong ~]$

下面删除与表同名的同义词而且使用10g的客户端连接11g数据库进行导入 *** 作也是不会报ora-01403错误的

C:\Documents and Settings\Administrator>sqlplus /nolog

SQLPlus: Release 102010 - Production on 星期五 12月 20 07:51:34 2013

Copyright (c) 1982, 2005, Oracle All rights reserved

idle> conn cs/cs@jy_1

已连接。

cs@JINGYONG> drop synonym EMP;

同义词已删除。

C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\empdmp tables=

EMP ignore=y

Import: Release 102010 - Production on 星期五 12月 20 09:02:40 2013

Copyright (c) 1982, 2005, Oracle All rights reserved

连接到: Oracle Database 11g Enterprise Edition Release 112010 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

正在将 TEST 的对象导入到 CS

正在将 TEST 的对象导入到 CS

正在导入表 "EMP"导入了 6 行

成功终止导入, 没有出现警告。

出现这个问题的原因:

是因为bug 7422758 IMPORTING A TABLE WITH A BLOB OR CLOB USING A SYNONYM CAUSES ORA-1403, fixed with 112

解决方法:

1 升级到112

2 打7422758补钉

注意:

在oracle11gr2版本中如果在对某个用户导入某个表时,而这个表有一个lob类型的列且这个用户存一个与要导入表同名的同义词,在这种情况下使用oracle11gr2版本的客户端进行导出再导入是不会报ora-01403错误如果使用oracle11gr2版本以下的客户端进行导出和导入也是会报ora-01403错误的

来自 “ ITPUB博客 ” ,链接:>

MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。

MySQL的四种BLOB类型

TinyBlob: 最大 255字节

Blob: 最大 65K

MediumBlob:最大 16M

LongBlob: 最大 4G

注意:如果你存储的文件过大,数据库的性能会下降很多。

2、PHP *** 作BLOB案例

<php

mysql_connect( "localhost", "root", "password"); //连接数据库

mysql_select_db( "database"); //选定数据库

//数据插入:

$CONTENT="测试内容"; //$CONTENT为新闻内容

$COMPRESS_CONTENT = bin2hex(gzcompress($CONTENT));

$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库news表中

//展示:

$query = "select data from testtable where filename=$filename";

$result = mysql_query($query);

$COMPRESS_CONTENT=@gzuncompress($result["COMPRESS_CONTENT"]);

echo $COMPRESS_CONTENT;

>

[2]存储

<php

mysql_connect( "localhost", "root", "password"); //连接数据库

mysql_select_db( "database"); //选定数据库

//存储:

$filename="" //这里填入路径

$COMPRESS_CONTENT = addslashes(fread(fopen($filename, "r"), filesize($filename)));//打开文件并规范化数据存入变量$data中

$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库test表中

//展示:

ob_end_clean();

Header( "Content-type: image/gif");

$query = "select data from testtable where filename=$filename";

$result = mysql_query($query);

echo $result["COMPRESS_CONTENT"];

>

以上就是关于pl/sql中怎么批量导出数据库数据全部的内容,包括:pl/sql中怎么批量导出数据库数据、sqlserver怎么导出数据库、oracle怎样导入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9619940.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存