-1

使用基于 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 服务器

谢谢你,大卫伯金

4

1 回答 1

0

使用下表定义,更新适用于 v3.4:

create table txn_header (
    knz varchar2(100),
    "TIMESTAMP" timestamp,
    ORGU_CODE_CMPY varchar2(100),
    ORGU_CODE varchar2(100),
    TILL_SHORT_DESC varchar2(100),
    TXHD_TXN_NR integer
)

你能提供你的表创建语句吗?

于 2013-01-10T12:11:26.693 回答