DB数据库导入导出

合集下载

EXPDB_IMPDB导出数据库和导入数据库操作手册

EXPDB_IMPDB导出数据库和导入数据库操作手册

EXPDB与IMPDB查找oracle的安装路径:echo $ORACLE_HOME;操作步骤:1.需要在数据库创建HEC_DUMP_DIR类似的directory(此命令需要dba权限,例如:在mastest数据库中,需要以masdemo用户身份登陆.)- -Create directory=》create or replace directory DUMP_DIR_TEST as '/u01/oracle/oracle_test';2.授权=》grant read,write on directory DUMP_DIR_TEST to HEC2DEV;3.导出(用su – oracle命令切换到oracle用户下面,执行下面的语句, schemas为当前用户)=》expdp hec2dev/hec2dev directory=DUMP_DIR_TESTdumpfile=hec2dev1102.dmp logfile=DUMP_DIR_TEST:hec2dev1102.log带版本号导出(从高版本导出,导入到低版本时需要带版本号,点击pl/sql的命令窗口或者sqlplus hec2dev/hec2dev@mastest,在最上面都会有版本号):=》expdp hec2dev/ hec2dev directory=DUMP_DIR_TESTdumpfile=autohec2test.dmp logfile=DUMP_DIR_TEST:autohec2test.logschemas=autohec2test version='10.2.0.1.0'可能出现的问题:(1)指定的Net服务名不正确。

解决方法:因为没有配置指定ORACLE_SID,可以用命令:echo $ORACLE_SID 进行查看是否指定了ORACLE_SID,若没有,可以通过命令:exportORACLE_SID=mastest(要导出数据库的sid)解决。

DB2数据导入导出及建库步骤2命令

DB2数据导入导出及建库步骤2命令

文档编号:DB2数据导入导出及建库步骤2013年3月关于本文档说明:类型-创建(C)、修改(U)、删除(D)、增加(A);目录关于本文档 (2)DB2 数据导入导出及建库步骤 (4)一、数据库数据的导出 (4)二、编辑导出的数据 (4)三、数据库的创建 (5)四、数据库数据的导入 (5)五、数据库数据的备份与还原 (5)DB2 数据导入导出及建库步骤【说明:LISG为已有数据库,LISG为想要创建的数据库。

】一、数据库数据的导出1、启动DB2服务本地:db2cmd 远程:telnet2、连接数据库db2 connect to LISG user db2inst1 using db2adm273、重启数据库,断开所有连接db2stop forcedb2start4、导出表结构及函数db2look -d LISG-a -e -x -o 20130309.sql -i db2inst1 -w db2adm275、导出基础数据(需指定文件夹目录cd /home/db2inst1/20130309 )db2move LISG export -u db2inst1 -p db2adm27二、编辑导出的数据1、基础数据打tar包命令:进入上级目录,执行“tar -tvf 20130309.tar20130309 ”;2、将导出的建表语句、基础数据放到指定路径下,编辑导出的20130307.sql文件,按照“表结构\视图\函数\存储\RISKAMNT函数”排序。

去掉所有的双引号,更换表与函数的前缀名为想要用的用户名(如“DB2INST1”),去掉开头的connect 并且把所有存在blob字段的表空间(即create语句的IN 后面的表空间)改成新建pagesize 32 K 的表空间(LISG);3、将所有的创建function语句剪切到另一个function.sql文件中去(直接创建function可能会失败);4、编辑db2move.lst文件,将双引号去掉,更换前缀名为想要用的用户名(如“DB2INST1”);三、数据库的创建1、新建数据库LISGdb2 create database LISG using codeset utf-8 territory cn2、查看库信息db2 get db cfg for LISG3、创建缓冲池(连接到LISG后为LISG创建一个pagesize 为32k的缓冲池)db2 connect to LISG user db2inst1 using db2adm27db2 create bufferpool LISGBF immediate size 1000 pagesize 32K4、创建三个表空间,使用刚才建立的缓冲池,使用D:\DB2\LISG处的容器(自动新建)常规表空间:db2 create regular tablespace LISG pagesize 32K managed by system using ('D:\DB2\ LISG) bufferpool LISGBF系统临时表空间:db2 create system temporary tablespace LISG1 pagesize 32K managed by system using ('D:\DB2\ LISG1) bufferpool LISGBF用户临时表空间:db2 create user temporary tablespace LISG2 pagesize 32K managed by system using ('D:\DB2\ LISG2) bufferpool LISGBF四、数据库数据的导入1、连接数据库db2 connect to LISG user db2inst1 using db2adm272、导入表结构db2 –tvf 20130309.sql3、导入函数db2 –tvf function.sql4、导入基础数据db2move LISG load -u db2inst1 -p db2adm27五、数据库数据的备份与还原(一)数据库数据备份1、重启数据库,断开所有连接db2stop forcedb2start2、备份数据库db2 backup database LISG to ‘指定目录’(二)数据库数据还原(备注:当在同一台主机上还原一个新的数据库时产生容器共享冲突)1、重启数据库,断开所有连接db2stop forcedb2start2、删除数据库db2 drop database LISG3、重建数据库LISGdb2 create database LISG using codeset utf-8 territory cn4、查看库信息db2 get db cfg for LISG5、创建缓冲池(连接到LISG后为LISG创建一个pagesize 为32k的缓冲池)db2 connect to LISG user db2inst1 using db2adm27db2 create bufferpool LISGBF immediate size 1000 pagesize 32K6、创建三个表空间,使用刚才建立的缓冲池,使用D:\DB2\LISG处的容器(自动新建)db2 create regular tablespace LISG pagesize 32K managed by system using (/home/db2inst1/LISG/ LISG’)bufferpool LISGBFdb2 create system temporary tablespace LISG1 pagesize 32K managed by system using ('D:\DB2\ LISG1') bufferpool LISGBFdb2 create user temporary tablespace LISG2 pagesize 32K managed by system using ('D:\DB2\ LISG2') bufferpool LISGBF7、还原数据库【说明:备份的数据库(olddb) 与要还原的数据(newdb)名不相同: db2 restore db olddb into newdb 】db2 restore database LISG into LISG(from C:\Documents and Settings\Administrator)友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。

DB数据库的导入和导出详解

DB数据库的导入和导出详解

本文件为您介绍DB2数据库中表结构的导入和导出的两种常用方法,供您参考选择,希望能够对您有所帮助。

方法一在控制中心的对象视图窗口中,选择所要导出表结构的数据表,按住Ctrl或Shift可多选,单击鼠标右键,选择->生成DDL即可。

方法二◆第一步:打开DB2的命令行工具,在DB2安装目录的BIN文件夹下新建一个文件夹data,并且进入该目录。

创建该目录: mkdir data进入该目录: cd data◆第二步:导出表结构,命令行如下:db2look -d dbname -e -a -x -i username -w password -o ddlfile.sql执行成功之后,你会在刚才新建的文件夹下找到该sql文件。

◆第三步:导出数据,命令行如下:db2move databasename export -u username -p password至此,导出数据结束。

2导出表中数据export to [path(例:D:"TABLE1.ixf)] of ixf select [字段(例: * or col1,col2,col3)] from TABLE1;export to [path(例:D:"TABLE1.del)] of del select [字段(例: * or col1,col2,col3)] from TABLE1;导入表的数据import from [path(例:D:"TABLE1.ixf)] of ixf insert into TABLE1;load from [path(例:D:"TABLE1.ixf)] of ixf insert into TABLE1;load from [path(例:D:"TABLE1.ixf)] of ixf replace into TABLE1; // 装入数据前,先删除已存在记录load from [path(例:D:"TABLE1.ixf)] of ixf restart into TABLE1; // 当装入失败时,重新执行,并记录导出结果和错误信息import from [path(例:D:"TABLE1.ixf)] of ixf savecount 1000 messages [path(例:D:"msg.txt)] insert into TABLE1;// 其中,savecount表示完成每1000条操作,记录一次.存在自增长字段的数据导入:load from [path(例:D:"TABLE1.ixf)] of ixf modified by identityignore insert into TABLE1;// 加入modified by identityignore.解除装入数据时,发生的检查挂起:SET INTEGRITY FOR TABLE1 CHECK IMMEDIATE UNCHECKED;命令只对数据通过约束检查的表有效,如果执行还不能解除,有必要检查数据的完整性,是否不符合约束条件,并试图重新整理数据,再执行装入操作.另外,对load和import,字面上的区别是:装入和导入,但仍未理解两者之间的区别.只是性能上load显然优于import.(load 需要更多的权限)。

常见关系数据库的导出导入

常见关系数据库的导出导入

常见关系数据库的导出导入一般我们在诊断一些问题的时候,都需要基于用户的实际数据进行分析,有时候分析问题只需要几张表就可以了,用户的数据文件问题又比较大,所以整个DB拷贝过来是不太现实的做法,这里总结在SQLServer和Oracle中常用的导出导入指定表的方法:
1.SQLServer
[1]进入“企业管理器”,选中指定的DB,点击右键“所有任务” “导出”(图
1)
[2]点击“下一步”,进入导出的源选择界面,确认正确选择数据源(如图2)
[3]点击“下一步”,进入导出的目标选择界面,为“Excel 97-2000”,选定一个空
的Excele文件(如图3)
[4]点击“下一步”,按照默认选项“从源数据复制表和视图”
[5]点击“下一步”,进入表的选择页面,选择你需要导出的表(如图4)
[6]导入操作将第2步和第3步操作调换一下,第5步选择表的时候在每个表的选
择删除目标表数据(如图5、6)
[7]
图 1
图2
图3
图4
图5
图6
2.Oracle
导出指定的表:
exp userid=trswcm/trs owner=trswcm buffer=204800000 tables=(WCMChannel,WCMWebSite) file=/trs/MyData.dmp grants=y
导入指定的数据:
imp userid=trswcmtest/trs fromuser=trswcm touser=trswcmtest ignore=y buffer=204800000
file=/trs/MyData.dmp。

DB2导入、导出、备份及恢复数据库等操作资料

DB2导入、导出、备份及恢复数据库等操作资料
$ db2 unquiesce database
$ db2 connect reset
说明:
1, 以上指令将会把数据库testdb备份到指定目录 /home/backup下,所以请确保当前登陆用户(db2inst1)对该目录有读写的权限。
题外话,若打算使用root用户来执行备份,请先编辑文件 /etc/group,将root用户加入到与DB2相关的几个组:db2grp1, db2fgrp1, dasadm1.
$ cd /home/movedata
$ db2move mytestdb import –u db2inst1 –p thepasswd
此时屏幕上会显示有关导入数据的信息。
存在的问题:
db2move import方式只能导入“普通”的表,如果表中存在自增长的IDENTITY列,那么使用db2move import时,会出错。这是因为,如果IDENTITY列创建表的时候都是定义成always的话,那么在导入数据的时候该列数据是不能被赋值的,而是 应该由系统生成,使用db2move无法导入这样的表。对于这种含有IDENTITY列的表,只能使用db2 import指令来进行导入,相关的参数是IDENTITYIGNORE,IDENTITYMISSING。我将在下一部分给出具体的指令操作。
建立到数据库的连接:
$ db2
db2 => connect to testdb user db2inst1 using thepasswd
以DEL格式导出:
db2 => export to /home/backup/mytbl.txt of del select * from mytbl
db2 => terminate

db2 导入导出单个表的操作详解

db2 导入导出单个表的操作详解

db2 导入导出单个表的操作详解本文将详细提供db2导入导出单表数据及db2备份恢复等相关一些操作命令汇总,有需求的朋友可以参考1、导出整个数据库表结构、方法、存储过程等,执行脚本:db2look –d dbname –e –o db.sql –i username –w passworddb2 -tvf db.sql2、单表数据的导出及导入:导出:db2move dbname export -tn tablename -u db2user -p psw导入:db2move dbname import -u db2user -p psw3、数据库的备份、恢复:备份:db2 BACKUP DATABASE dbname恢复:db2 RESTORE DATABASE dbname4、使用db2move命令导出、导入数据库数据从另一数据库中导出初始化数据,首先进入导出的目录,先DB2cmd,后输入命令为:db2move dbname export –u username –p password。

注:dbname 为原数据库名,username为用户名 password为密码。

恢复命令为: db2move dbname import -u username -p password5、其它:.导出到一个文件获得sql语句db2look -d cqyancao -e -o db.sql -i db2user -w psw数据库名要出文件名用户名密码示例: db2look -d DEPARTMENT -u walid -e -o db2look.sql-- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句-- db2look 输出被发送到名为 db2look.sql 的文件中示例: db2look -d DEPARTMENT -z myscm1 -e -o db2look.sql-- 这将为模式名为 MYSCM1 的所有表生成 DDL 语句-- 还将生成 $USER 创建的所有联合对象的 DDL。

db2导入导出数据

db2导入导出数据

DB2数据的导入&导出DB2数据的导入(Import)导出(Export)(Load) DB2中所谓的数据移动,包括:1. 数据的导入(Import)2. 数据的导出(Export)3. 数据的装入(Load)导入和装入都是利用DB2的相关命令把某种格式的文件中的数据保存到数据库中的表中导出是指把DB2数据库的表中的数据保存到某种格式的文件当中去数据移动的作用:如果要在不同的数据库管理系统之间转移数据,数据移动通常是最实用的一种方法,因为任何一种数据库管理系统都支持常用的几种文件格式,通过这个通用的接口,就很容易实现不同系统间数据的转移。

这三个命令中,Export最简单,因为从表中向文件转移数据,通常不会出现错误,也不会有非法的数据。

在讲解命令之前,首先介绍一下文件的格式,用于DB2数据移动的文件格式有四种:1. ASC——非定界ASCII文件,是一个ASCII字符流。

数据流中的行由行定界符分隔,而行中的每一列则通过起始和结束位置来定义。

例如:10 Head Office 160 Corporate New York15 New England 50 Eastern Boston20 Mid Atlantic 10 Eastern Washington38 South Atlantic 30 Eastern Atlanta42 Great Lakes 100 Midwest Chicago51 Plains 140 Midwest Dallas66 Pacific 270 Western San Francisco84 Mountain 290 Western Denver2. DEL——定界ASCII文件,也是一个ASCII字符流。

数据流中的行由行定界符分隔,行中的列值由列定界符分隔。

文件类型修饰符可用于修改这些定界符的默认值。

例如:10,"Head Office",160,"Corporate","New York"15,"New England",50,"Eastern","Boston"20,"Mid Atlantic",10,"Eastern","Washington"38,"South Atlantic",30,"Eastern","Atlanta"42,"Great Lakes",100,"Midwest","Chicago"51,"Plains",140,"Midwest","Dallas"66,"Pacific",270,"Western","San Francisco"84,"Mountain",290,"Western","Denver"3. WSF——(work sheet format)为工作表格式,用于与Lotus系列的软件进行数据交换。

Step7下DB数据块导入导出EXCEL

Step7下DB数据块导入导出EXCEL

Step 7 5.5 下DB数据块导入导出及DB当前值存储为默认值
1、导出DB数据块
打开一个DB块
生成源文件
输入文件名DB5,确认
选中你要导出的DB块
在Source> DB5>右键>导出源文件
在“导出源文件”对话框中确定源文件导出文件类型,选择“STL source (*.awl)”作为文件类型且文件名中必须包含扩展名“.AWL ”。

2、打开AWL文件
打开excel软件,在excel软件中选择打开命令(选择所有文件)
打开后选择全文,将对齐方式选择为“右对齐”
将修改好的文件另存为“.prn”的文件(保存的文件后缀名改一下 .prn > .awl)将“.awl”的文件导入到S7源文件中,编译通过即可。

保存的文件后缀名改一下.prn > .awl
3、将excel生成后的文件导入S7
Sources >插入新对象>外部文件选择刚才重命名的awl文件双击.awl
注意DB号,每句结束的; 保存编译,
没有出错的话,就导入导出完成.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

D B数据库导入导出 Revised final draft November 26, 2020D B2数据导入导出2012年3月12日编辑:徐彦一、环境操作系统:RedhatLinuxAS5.5(-128.el5PAE#1SMPi686i386GNU/Linux)数据库版本:DB2WorkGroup版V9.7.0(数据库版本可通过连接数据库来查看,db2connecttodbname)二、声明实例用户,默认为db2inst1Das用户,默认为dasusr1数据库安装目录($INSTHOME),默认为/opt/ibm/db2/V9.7实例安装目录($HOME),默认为/home/db2inst1/实例名:db2inst1数据库名:<dbname>三、导出具体步骤3.1导出对象结构建议单独创建一个数据导出目录,利于导出文件整理的清晰。

$su–db2inst1#切换至db2inst1用户$cd/<backupdir>#<backupdir>为导出目录,例如/home/db2inst1/dbdmp(db2inst1要有相应的读写权限)$db2connectto<dbname>#连接至数据库$db2look–d<dbname>-e–a–l–o<dbname>.sql#导出数据库对象创建脚本例子:数据库名为meibof3.2导出数据库数据(建议在<backupdir>目录下另建db2move的目录用来存放导出数据,因为db2move命令会产生若干文件)db2move<dbname>export(如果导出是发现有warning,在上面的命名后面加上-aw参数)以数据库名为meibof为例:四、导入具体步骤4.1建立新数据库$su–db2inst1#切换至db2inst1用户db2createdb<dbname>(建议使用db2cc工具来进行创建数据库)创建名为meibof的数据库:4.2执行<dbname>.sql脚本创建数据库切换到放置<dbname>.sql的目录db2–tvf<dbname>.sql(单次导入有可能丢失数据结构,建议连续执行3次,导入完成后,和开发人员确认数据库对象的数量,尤其是存储过程。

)4.3导入数据切换到放置db2move导出数据的目录db2move<dbname>load4.4一致性检查原理:如果发现有表存在检查挂起状态(由于检查约束的原因),则输入命令如下db2setintegrityforschema.tablenameimmediatechecked将其转换成正常状态。

首先利用sql语句得到要检查的表的执行语句主要命令:db2"select'db2setintegrityfor<dbname>.'||TABNAME||'immediatechecked'fromsyscat.tableswhereTABSCHEMA='<SCHEMA>'an dSTATUS='C'"以数据库名meibof,SCHEMA名meibof为例:查出有14张表需要转换成正常状态。

在上一条语句末加上>filename.sh把要添加的sql语句添加到脚本文件如下例:用vi文本编辑器打开脚本文件:1)在第一行加入连接数据库sql语句;2)在最后一行加入commit命令,db2commit执行完后再次检查发现没有需要更正的:说明:如果还有需要更正的表,则反复执行上述操作。

五、附录5.1db2look用法db2look版本8.2db2look:生成DDL以便重新创建在数据库中定义的对象语法:db2look-dDBname[-e][-uCreator][-zSchema][-tTname1Tname2...TnameN][-twTname][-h][-oFname][-a][-m][-c][-r][-l][-x][-xd][-f][-fd][-tdx][-noview][-iuserID][-wpassword][-vVname1Vname2...VnameN][-wrapperWrapperName][-serverServerName][-nofed]db2look-dDBname[-uCreator][-s][-g][-a][-tTname1Tname2...TnameN][-p][-oFname][-iuserID][-wpassword]db2look[-h]-d:数据库名称:这必须指定-e:抽取复制数据库所需要的DDL文件此选项将生成包含DDL语句的脚本可以对另一个数据库运行此脚本以便重新创建数据库对象此选项可以和-m选项一起使用-u:创建程序标识:若-u和-a都未指定,则将使用$USER如果指定了-a选项,则将忽略-u选项-z:模式名:如果同时指定了-z和-a,则将忽略-z联合部分的模式名被忽略-t:生成指定表的统计信息可以指定的表的数目最多为30-tw:为名称与表名的模式条件(通配符)相匹配的表生成DDL当指定了-tw选项时,-t选项会被忽略-v:只为视图生成DDL,当指定了-t时将忽略此选项-h:更详细的帮助消息-o:将输出重定向到给定的文件名如果未指定-o选项,则输出将转到stdout-a:为所有创建程序生成统计信息如果指定了此选项,则将忽略-u选项-m:在模拟方式下运行db2look实用程序此选项将生成包含SQLUPDATE语句的脚本这些SQLUPDATE语句捕获所有统计信息可以对另一个数据库运行此脚本以便复制初始的那一个当指定了-m选项时,将忽略-p、-g和-s选项-c:不要生成模拟的COMMIT语句除非指定了-m或-e,否则将忽略此选项将不生成CONNECT和CONNECTRESET语句省略了COMMIT。

在执行脚本之后,需要显式地进行落实。

-r:不要生成模拟的RUNSTATS语句缺省值为RUNSTATS。

仅当指定了-m时,此选项才有效-l:生成数据库布局:数据库分区组、缓冲池和表空间。

-x:如果指定了此选项,则db2look实用程序将生成授权DDL对于现有已授权特权,不包括对象的原始定义器-xd:如果指定了此选项,则db2look实用程序将生成授权DDL对于现有已授权特权,包括对象的原始定义器-f:抽取配置参数和环境变量如果指定此选项,将忽略-wrapper和-server选项-fd:为opt_buffpage和opt_sortheap以及其它配置和环境参数生成db2fopt语句。

-td:将x指定为语句定界符(缺省定界符为分号(;))应该与-e选项一起使用(如果触发器或者SQL例程存在的话)-p:使用明文格式-s:生成postscript文件此选项将为您生成postscript文件当设置了此选项时,将除去所有latex和tmpps文件所需的(非IBM)软件:LaTeX和dvips注意:文件psfig.tex必须在LaTeX输入路径中-g:使用图形来显示索引的页访存对必须安装Gnuplot,并且<psfig.tex>必须在您的LaTeX输入路径中还将随LaTeX文件一起生成<filename.ps>文件-i:登录到数据库驻留的服务器时所使用的用户标识-w:登录到数据库驻留的服务器时所使用的密码-noview:不要生成CREATEVIEWddl语句-wrapper:为适用于此包装器的联合对象生成DDL生成的对象可能包含下列各项:包装器、服务器、用户映射、昵称、类型映射、函数模板、函数映射和索引规范-server:为适用于此服务器的联合对象生成DDL生成的对象可能包含下列各项:包装器、服务器、用户映射、昵称、类型映射、函数模板、函数映射和索引规范-nofed:不要生成FederatedDDL如果指定此选项,将忽略-wrapper和-server选项LaTeX排版:latexfilename.tex以获得filename.dvi示例:db2look-dDEPARTMENT-uwalid-e-odb2look.sql--这将生成由用户WALID创建的所有表和联合对象的DDL语句--db2look输出被发送到名为db2look.sql的文件中示例:db2look-dDEPARTMENT-zmyscm1-e-odb2look.sql--这将为模式名为MYSCM1的所有表生成DDL语句--还将生成$USER创建的所有联合对象的DDL。

--db2look输出被发送到名为db2look.sql的文件中示例:db2look-dDEPARTMENT-uwalid-m-odb2look.sql--这将生成UPDATE语句以捕获关于用户WALID创建的表/昵称的统计信息--db2look输出被发送到名为db2look.sql 的文件中示例:db2look-dDEPARTMENT-uwalid-e-wrapperW1-odb2look.sql--这将生成由用户WALID创建的所有表的DDL语句--还将生成适用于包装器W1的用户WALID所创建所有联合对象的DDL--db2look输出被发送到名为db2look.sql的文件中示例:db2look-dDEPARTMENT-uwalid-e-serverS1-odb2look.sql--这将生成由用户WALID创建的所有表的DDL语句--还将生成适用于服务器S1的用户WALID所创建所有联合对象的DDL--db2look输出被发送到名为db2look.sql的文件中5.2db2move用法db2move<database-name><action>[<option><value>]首先,您必须指定数据库名(想要移动的表所在的数据库)和要执行的操作(export和import或load)。

然后指定一个选项来定义操作的范围。

例如,可以将一个操作限制在特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名(-sn)范围内。

指定表、表空间或表的创建者的一个子集只对export操作有效。

如果指定多个值,就必须使用逗号将其分隔开;在值列表项之间不允许有空格。

可以指定的项最多为10个。

Export同时会导出建表命令!另外,也可以指定-tf选项,此时要使用一个文件名作为参数,其中列出了要导出的表名;在该文件中,每行只能列出一个完整的表名。

您还可以指定以下内容:-ioimport-option指定DB2的import工具可以运行的一种模式。

相关文档
最新文档