使用基于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中的保留字应该包含在Double Quotes“TIMESTAMP”中。但这似乎执行了最后一次成功运行的查询。
我也试过
'TIMESTAMP'
[TIMESTAMP]
(TIMESTAMP = " ")
("TIMESTAMP = " ")
空白区域是
上次成功的查询是:
SELECT knz, count(*)
from TXN_HEADER
group by knz
我很困惑,至少可以说,我不是数据库管理的专家 - 任何帮助都会令人难以置信。
编辑 - 制作于10/1/2013
我也尝试在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的图形用户界面指向了我曾经看过的保留词的解决方案。
我连接的服务器是Oracle 11服务器
谢谢你, 大卫伯金
答案 0 :(得分:0)
使用下表def,更新适用于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
)
你能提供你的表创建声明吗?