db2导出表结构的db2look命令应该在哪里写

tianping168 2009-09-30 11:10:28
我是db2新手,在网上查导出表结构的命令db2look -d [dbname] -e -z [user] -l -o out.sql
怎么我试了半天就是不行呢,是我的步骤不对吗?

我先cmd ,输入db2cmd ,弹出新窗口DB2 CLP - db2,输入db2

db2 =>connect to 数据库名 user 用户名using 密码

连接成功

db2 =>db2look -d [dbname] -e -z [user] -l -o out.sql
DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 之后发现意外的标记
"db2look"。期望的标记可能包括:"DECLARE"。 SQLSTATE=42601
db2 =>

--------------------------------------------------
请问这是怎么回事,这个db2装在我本机的虚拟机中Linux系统。
...全文
4574 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitianfujishan 2010-10-10
  • 打赏
  • 举报
回复
指定 schema_name 的话,就把这个下边的都出来了,
可不可以指定某个表呢??
cln1127 2009-12-22
  • 打赏
  • 举报
回复
问题解决 楼主太幸福了
crespo1985ban 2009-10-12
  • 打赏
  • 举报
回复
在调用db2look之前,是不需要进行数据库连接的。
1.在命令行输入:db2cmd,进入、CLP;

2.db2look -d dbname -e -z schema_name -i userid -w password -o C:/out.sql

-e表示提取数据库对象的DDL语句
-z表示将输出限制为具有指导模式名称的对象。
tianping168 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 crespo1985ban 的回复:]
在调用db2look之前,是不需要进行数据库连接的。
1.在命令行输入:db2cmd,进入、CLP;

2.db2look -d dbname -e -z schema_name -i userid -w password -o C:/out.sql

-e表示提取数据库对象的DDL语句
-z表示将输出限制为具有指导模式名称的对象。

[/Quote]

这个好使,谢谢了,终于成功了。
yangxiao_jiang 2009-10-10
  • 打赏
  • 举报
回复
晕了,我把所有的步骤都写出来吧
db2cmd
db2
connect to sample
!db2look -d sample -e -l -o out.sql


你是这样做的吗?
quiettown 2009-10-10
  • 打赏
  • 举报
回复
不是在CMD下运行,是在DB2CMD环境下运行!
tianping168 2009-10-10
  • 打赏
  • 举报
回复
还是不行啊

db2 => !db2look -d 数据库名 -e -l -o out.sql
-- USER 是:
-- 创建表的 DDL
-- 输出被发送到文件: out.sql
SQL30082N 尝试建立连接失败,安全性原因为 "3"("PASSWORD MISSING")。
SQLSTATE=08001
db2 =>

---------------------------------------

在DB2提示符下运行。 也不行
db2 connect to db user XXX using XXX

DB21061E 未初始化命令行环境。
xiaosheng2008 2009-10-10
  • 打赏
  • 举报
回复
和虚拟机没关系,db2look可以远程执行

你的-w参数和密码之间有空格?
yangxiao_jiang 2009-10-10
  • 打赏
  • 举报
回复
虚拟机,不知道。
tianping168 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hiyoung 的回复:]
db2look -d DBName -a -e -o out.sql
Hope to do some help to u.
[/Quote]

这个我也试了,也不行
hiyoung 2009-10-10
  • 打赏
  • 举报
回复
db2look -d DBName -a -e -o out.sql
Hope to do some help to u.
tianping168 2009-10-10
  • 打赏
  • 举报
回复
这是我的步骤:
1 cmd
2 输入 db2cmd
3 在弹出的cmd中输入db2

结果如下:
-------------------------------------------------
C:\>db2
(c) Copyright IBM Corporation 1993,2003
DB2 SDK 8.2.3 的命令行处理器

可从命令提示符处发出数据库管理器命令和 SQL 语句。例如:
db2 => connect to sample
db2 => bind sample.bnd

要获得一般帮助,输入:?。
要获得命令帮助,输入:? command,其中 command 可以是
数据库管理器命令的前几个关键字。例如:
? CATALOG DATABASE 用于关于 CATALOG DATABASE 命令的帮助
? CATALOG 用于关于所有 CATALOG 命令的帮助。

要退出 db2 交互方式,在命令提示符处输入
QUIT。在非交互方式下,所有命令必须以“db2”作前缀。
要列出当前命令选项设置,输入 LIST COMMAND OPTIONS。

要获取更详细的帮助,请参阅 Online Reference Manual。

db2 => connect to 数据库名 user 用户名 using 密码

数据库连接信息

数据库服务器 = DB2/LINUX 8.2.2
SQL 授权标识 = 数据库名
本地数据库别名 = 数据库名

db2 => !db2look -d 数据库名 -e -l -o out.sql
-- USER 是:
-- 创建表的 DDL
-- 输出被发送到文件: out.sql
SQL30082N 尝试建立连接失败,安全性原因为 "3"("PASSWORD MISSING")。
SQLSTATE=08001
db2 =>
-------------------------------------------------

这个数据库装在我本机的虚拟机中Linux系统,难道是有什么安全设置吗,我是可以查表的。
----------------------------------------------
db2 => select * from test

ID
--------------------

0 条记录已选择。

db2 =>
------------------------------------------------
亮剑_ 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tianping168 的回复:]
SQL30082N  尝试建立连接失败,安全性原因为 "3"("PASSWORD MISSING")。
SQLSTATE=08001

[/Quote]
没有连接数据库

照大胖这个步骤没问题
tianping168 2009-10-09
  • 打赏
  • 举报
回复
楼上的好啊,今天长假第一天上班,我又试了一遍,还是不行啊。请多指教。

我先cmd ,输入db2cmd ,弹出新窗口DB2 CLP - db2,输入db2

db2 =>connect to 数据库名 user 用户名using 密码

连接成功

db2 => !db2look -d 数据库名 -e -z 用户名 -w 密码 -l -o out.sql
-- USER 是:
-- 指定的模式为: 数据库名
-- 创建表的 DDL

-- 联合部分的模式名被忽略
-- 输出被发送到文件: out.sql
SQL30082N 尝试建立连接失败,安全性原因为 "3"("PASSWORD MISSING")。
SQLSTATE=08001
db2 =>
quiettown 2009-10-09
  • 打赏
  • 举报
回复
可以试试不在DB2提示符下运行。
db2 connect to db user XXX using XXX
db2look -d db -e -l -o out.sql
yangxiao_jiang 2009-10-09
  • 打赏
  • 举报
回复
已经连接过了,第二次就不用在用用户名密码了;
db2 => !db2look -d 数据库名 -e -l -o out.sql
亮剑_ 2009-10-09
  • 打赏
  • 举报
回复
用户名或者密码不对
yangxiao_jiang 2009-09-30
  • 打赏
  • 举报
回复
db2cmd
然后直接在命令行写
c:\......\db2look -d .....
不要进db2 命令行。

或者进入命令行,用!db2look来执行db2look


yangxiao_jiang 2009-09-30
  • 打赏
  • 举报
回复
你需要先连接数据库的
db2 connect to sample
tianping168 2009-09-30
  • 打赏
  • 举报
回复
谢谢楼上的,我试过你的两种方法,倒是都能执行了,可是还是报错:

-- 联合部分的模式名被忽略
SQL30082N 尝试建立连接失败,安全性原因为 "3"("PASSWORD MISSING")。
SQLSTATE=08001

我又在命令中加上密码的 -w 密码
还是同样的问题

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧