我正在尝试使用 DB2 运行一个简单的 SQL 语句,但遇到了一些问题。
我希望在 txt/db2 文件中有一个脚本,并让引擎处理所有命令
这是脚本:
CONNECT TO MYDB
CREATE TABLE PERSONS(
PID SMALLINT NOT NULL,
NAME VARCHAR(20) NOT NULL
)
TERMINATE
当我运行 db2 -f /pathtofile 时,我得到:
SQL0104N An unexpected token "(" was found following "CREATE TABLE PERSONS".
Expected tokens may include: "END-OF-STATEMENT". SQLSTATE=42601
我究竟做错了什么?我的脚本有问题吗?
另外,为什么它在没有“;”的情况下工作?我的陈述末尾有终止符吗?
谢谢你,
也许这会有所帮助,
http://www.uc.edu/R/r25/documentation/Version3.2/install_instructions.pdf http://www.uc.edu/R/r25/documentation/Version3.2/install_instructions.pdf:
脚本使用分号 (;) 来终止每个 SQL
命令。如果您使用 DB2 命令行处理器,
你应该记住使用“-t”标志。
...
如果不使用 -t 标志,您将收到诸如以下错误:
运行 db2ct32.sql 脚本后执行以下操作:
创建表“帐户”(
DB21034E 该命令被作为 SQL 语句处理,因为它不是
有效的命令行处理器命令。在 SQL 处理过程中,它返回:
SQL0104N 在“ate 表“ACCOUNTS””之后发现意外标记“(”。
预期的标记可能包括:“END-OF-STATMENT”。 SQL状态=42601
因此,我会添加分号并使用 -t 开关调用它所代表的任何废话。
我查看了样本,他们使用类似的东西
db2 -tf "pathtofile"
还带有
db2 -tvf "pathtofile"
您可能会得到更多诊断。
不要将专有软件推向极限,它们并没有那么广泛。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)