我正在尝试使用 DB2 运行一个简单的 SQL 语句,但遇到了一些问题。我想在 txt/db2 文件中有一个脚本,并让引擎处理所有命令
这是脚本:
CONNECT TO MYDB
CREATE TABLE PERSONS(
PID SMALLINT NOT NULL,
NAME VARCHAR(20) NOT NULL
)
TERMINATE
Run Code Online (Sandbox Code Playgroud)
当我运行 db2 -f /pathtofile 时,我得到:
SQL0104N An unexpected token "(" was found following "CREATE TABLE PERSONS".
Expected tokens may include: "END-OF-STATEMENT". SQLSTATE=42601
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我的脚本有问题吗?另外,为什么它没有“;”就可以工作 在我的语句末尾有终止符吗?
谢谢,
可能这会有所帮助,
\n http://www.uc.edu/R/r25/documentation/Version3.2/install_instructions.pdf:
\n\n\n这些脚本使用分号 (;) 来终止每个 SQL \n 命令。如果您使用 DB2 命令行处理器,\n 您应该记住使用 \xe2\x80\x9c-t\xe2\x80\x9d 标志。
\n
\n ...
\n 如果不使用 -t 标志,则
在运行 db2ct32.sql 脚本时将收到如下错误:
\n create table \xe2\x80\x9cACCOUNTS\xe2\x80\ x9d (
\n DB21034E 该命令被作为 SQL 语句进行处理,因为它不是
有效的命令行处理器命令。在 SQL 处理期间,它返回:
\n SQL0104N 意外标记 \xe2\x80\x9c(\xe2\x80\在 \xe2\x80\x9cate 表 \xe2\x80\x9cACCOUNTS\xe2\x80\x9d\xe2\x80\x9d 后找到 x9c。
\n 预期的标记可能包括: \xe2\x80\x9cEND-OF-STATMENT\xe2\ x80\x9d.SQLSTATE=42601
因此,我会添加分号并使用 -t 开关调用它所代表的任何废话。
\n我查看了样本,他们使用类似的东西
db2 -tf "pathtofile"\nRun Code Online (Sandbox Code Playgroud)\n\n还带有
\n\ndb2 -tvf "pathtofile"\nRun Code Online (Sandbox Code Playgroud)\n\n您可能会得到更多诊断。
\n不要将专有软件推向极限,它们并没有那么广泛。
| 归档时间: |
|
| 查看次数: |
41051 次 |
| 最近记录: |