使用基于 Java 的 Squirrel SQL 客户端版本 3.4.0 的简单更新语句应该是一个简单的更新语句(注意:这在 TOAD for Oracle 中运行良好,但从长远来看,我希望使用 Squirrel。
查询是:
UPDATE txn_header
SET KNZ = ' ', "TIMESTAMP" = ' '
WHERE ORGU_CODE_CMPY = '001'
and ORGU_CODE = '0040'
and TILL_SHORT_DESC = '061'
and KNZ = 'WT'
and TXHD_TXN_NR between 729167 and 730881;
我的问题是,TIMESTAMP 是 Oracle PL/SQL 保留字。研究表明,Oracle 中的保留字应包含在双引号“TIMESTAMP”中。但这似乎执行了最后一个成功的查询。
我也试过
'TIMESTAMP'
[TIMESTAMP]
(TIMESTAMP = " ")
("TIMESTAMP = " ")
空格的目的是
上次成功的查询是:
SELECT knz, count(*)
from TXN_HEADER
group by knz
至少可以说我很困惑,而且我不是数据库管理方面的专家 - 任何帮助都会令人难以置信。
编辑 - 2013 年 10 月 1 日制作
我还尝试在 TIMESTAMP 列名上使用反引号
UPDATE txn_header
SET KNZ = ' ', TXN_HEADER.`TIMESTAMP` = ' '
WHERE ORGU_CODE_CMPY = '001'
and ORGU_CODE = '0040'
and TILL_SHORT_DESC = '061'
and KNZ = 'WT'
and TXHD_TXN_NR between '729167' and '729167'
我收到以下错误:
Error: ORA-00911: invalid character
SQLState: 42000
ErrorCode: 911
Position: 44
Squirrel 的 GUI 指向反引号,我已经将其视为保留字的解决方案。
我连接的服务器是 Oracle 11 服务器
谢谢你,大卫伯金