askimos 发表于 2004-09-14 09:27

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

想把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的时候老是DB21007EEnd of file reached while reading the command.

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

flasher 发表于 2004-09-14 09:38

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


db2 [db2-command | sql-statement |
    [? ]]
选项:-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: 注册到数据库驻留的服务器时所使用的口令

askimos 发表于 2004-09-14 09:38

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

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

javacool 发表于 2004-09-14 09:42

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

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

reallytrue 发表于 2004-09-14 09:42

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

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

askimos 发表于 2004-09-14 11:16

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

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

mymm 发表于 2004-09-14 14:08

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

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

是FTP命令!

askimos 发表于 2004-09-14 20:45

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

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

huyuhui001 发表于 2004-09-15 08:06

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

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

mymm 发表于 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文件头
页: [1] 2
查看完整版本: 执行:db2 -tvf 输出文件名.sql不行,求救~