免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 33187 | 回复: 11

执行:db2 -tvf 输出文件名.sql不行,求救~ [复制链接]

论坛徽章:
0
发表于 2004-09-14 09:27 |显示全部楼层
想把windows上的db2数据库转移到linux上,在看了这里的贴子后按步骤执行:
在windows上
db2look -d 数据库名 -e -c -o 输出文件名   此命令为导出库的结构,并生成一个输出文件名.sql的文件
db2 connect to 数据库名
db2move 数据库名  export

将前步操作导出的所有文件传到linux上
编辑 输出文件名.sql,确保各TABLESPCE名称等一致
执行:db2 connect to 数据库名

而后执行:db2 -tvf 输出文件名.sql

但就在执行
db2 -tvf 输出文件名.sql的时候老是DB21007E  End of file reached while reading the command.

不知道怎么回事,另外-tvf这几个参数的含义也不清楚。向大家请教一下,十分感谢!

论坛徽章:
0
发表于 2004-09-14 09:38 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

db2 [option ...] [db2-command | sql-statement |
    [? [phrase | message | sqlstate | class-code]]]
选项:-a, -c, -e{c|s}, -finfile, -lhistfile, -n, -o, -p, -rreport, -s, -t,
        -td;, -v, -w, -x, -zoutputfile。

选项    说明                                      缺省设置
------  ----------------------------------------  ---------------
   -a    显示 SQLCA                                OFF
   -c    自动落实                                  ON
   -e    显示 SQLCODE/SQLSTATE                     OFF
   -f    读取输入文件                              OFF
   -l    将命令记录到历史文件中                    OFF
   -n    除去换行字符                              OFF
   -o    显示输出                                  ON
   -p    显示 db2 交互式提示                       ON
   -r    将输出报告保存到文件                      OFF
   -s    在命令出错时停止执行                      OFF
   -t    设置语句终止字符                          OFF
   -v    回送当前命令                              OFF
   -w    显示 FETCH/SELECT 警告信息                ON
   -x   不打印列标题                            OFF
   -z    将所有输出保存到输出文件                  OFF

注意:
使用 DB2OPTIONS 环境变量定制选项缺省值。
紧跟选项字母后的减号(-)使该选项关闭。
在交互方式或文件输入方式下使用 UPDATE COMMAND OPTIONS
更改选项设置。

语法: db2look -d DBname [-u Creator] [-s] [-g] [-a] [-t Tname1 Tname2...TnameN]

                          [-p] [-o Fname] [-i userID] [-w password]
        db2look -d DBname [-u Creator] [-a] [-e] [-t Tname1 Tname2...TnameN]
                          [-m] [-c] [-r] [-x] [-l] [-f] [-o Fname] [-i userID] [
-w password]
        db2look [-h]

        -d: 数据库名:这必须指定

        -a: 为所有创建者生成统计信息
        -c: 不要生成模拟的 COMMIT 语句
        -e: 抽取复制数据库所需要的 DDL 文件
        -g: 使用图形来显示索引的页取装对
        -h: 更详细的帮助信息
        -m: 在模拟方式下运行 db2look 实用程序
        -o: 将输出重定向到给定的文件名
        -p: 使用简单文本格式
        -r: 不要生成模拟的 RUNSTATS 语句
        -s: 生成 postscript 文件
        -t: 生成指定表的统计信息
        -x: 生成“权限”语句 DDL
        -l: 生成数据库布局:节点组、缓冲池和表空间
        -f: 抽取配置参数和环境变量
        -u: 创建者 ID:若 -u 和 -a 都未指定,则将使用 $USER
        -i: 注册到数据库驻留的服务器时所使用的用户 ID
        -w: 注册到数据库驻留的服务器时所使用的口令

论坛徽章:
0
发表于 2004-09-14 09:38 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

就是想通过生成的ddl,批量的把表结构导到新建的数据库中,再把数据导进去。

论坛徽章:
0
发表于 2004-09-14 09:42 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

那时你的.SQL文件中每条命令中间没加分隔符
DB2默认的是";"号,直接db2 -v -f就可以了
如果要自定义分隔符号 命令写成db2 -td自定义分隔符号 -v -f

论坛徽章:
0
发表于 2004-09-14 09:42 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

如果是FTP传到LINUX服务器上的话一定要用ASC方式哦!

论坛徽章:
0
发表于 2004-09-14 11:16 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

多谢大家,现在就去试试。另外asc方式是什么东西?新手上路,大家多包涵。

论坛徽章:
0
发表于 2004-09-14 14:08 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

asc意思是以ASCII方式传送文件,另外还是bin方式,即以二进制方式传送!

是FTP命令!

论坛徽章:
0
发表于 2004-09-14 20:45 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

那个DDL的.sql文件是通过db2look命令生成的,因此它中间的分隔符db2的导入命令肯定认。默认;肯定是对的。可db2 -tvf 文件名.sql 就是不行。db2 -vf 文件名.sql就可以,不过出来一堆DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1024N  A database connection does not exist.  SQLSTATE=08003,我是先连接数据库再db2 -vf 文件名.sql的,怎么说连接不存在?傻了。另外数据文件我是用压缩工具打成tar包放在ftp上,然后linux中get下来,再解开的。我刚学linux,db2,麻烦大家了,谢谢。

论坛徽章:
0
发表于 2004-09-15 08:06 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

对于用db2look生成的文件也可以用db2sql92 -d dbname -f filename的方式来执行。会更容易些。

论坛徽章:
0
发表于 2004-09-15 10:06 |显示全部楼层

执行:db2 -tvf 输出文件名.sql不行,求救~

原帖由 "askimos" 发表:
那个DDL的.sql文件是通过db2look命令生成的,因此它中间的分隔符db2的导入命令肯定认。默认;肯定是对的。可db2 -tvf 文件名.sql 就是不行。db2 -vf 文件名.sql就可以,不过出来一堆DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL1024N A database connection does not exist. SQLSTATE=08003,我是先连接数据库再db2 -vf 文件名.sql的,怎么说连接不存在?傻了。另外数据文件我是用压缩工具打成tar包放在ftp上,然后linux中get下来,再解开的。我刚学linux,db2,麻烦大家了,谢谢。


试一下:
1、确认sql文件分隔符是";"
2、把connect to db写到sql文件头
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP