更新记录时出现“ORA-00903:无效的表名”错误

时间:2013-04-02 14:40:49

标签: sql oracle

我有一个名为iowe的表。 已创建并存在于我的数据库中。这就是它的样子:

NAME           AMOUNT Serial Number
---------- ---------- -------------
Praveen         20500
Roshan           5000             2
Rohit            5000             3
Shashi           7500             4

当我尝试通过输入命令

更新与Praveen名称对应的序列号时
update table iowe
set "Serial Number" = 1 where amount = 20500

update table iowe
set "Serial Number" = 1 where name = 'Praveen'

我收到以下错误:ORA-00903: invalid table name

其他命令在此表上执行正常。

2 个答案:

答案 0 :(得分:13)

update statement

中不需要关键字table
update iowe
set "Serial Number" = 1
where amount = 20500

正如您所知,它正在寻找一个名为 'table'的表,同时为其提供别名'iowe'。

与问题无关,但我也建议不要给对象提供混合大小写或非标准名称,因为你必须引用它们 - 就像使用"Serial Number"一样。我还没有看到一个案例,其中增加的复杂性和混淆的机会是合理的。

答案 1 :(得分:0)

从更新声明中删除“table”一词:

update iowe
set "Serial Number" = 1 
where name = 'Praveen'