2016-12-26 75 views
0

几年前,我的称为SAMPLE的Oracle表停止接受更新或插入命令。我终于发现,如果我重命名表,所有的都可以工作,所以它看起来SAMPLE可能是一个保护字,但我没有在Oracle保留或保护字列表中看到它。任何关于此的灯光将不胜感激。Oracle表SAMPLE不再更新

+3

'sample'是一个关键字,但不保留。您可以创建一个名为SAMPLE的表。如果没有发布“停止接受更新或插入命令”,则不会发布错误消息。什么“停止接受......”的意思? –

+0

是的,很好,谢谢。错误(来自.Net)是“”动态SQL生成失败。没有找到基表或者找到了多个基表“实际调用是:adapter.Update(dataRows);奇怪的是这个SAMPLE表在12年内工作正常,并且今天仍然有效,但是停止适配器工作。更新调用(但可以用直接SQL填充)。我可能应该创建一个代码片段,但是在我释放表之前可能需要一段时间。 – beanmf

+0

这听起来更像是一个与实际表相关的问题。你为什么要生成动态SQL?你需要解释*更多*关于你在做什么(以及为什么)。 – APC

回答

1

我们可以通过查询v$reserved_words视图中看到所有我们的Oracle版本的关键字:

SQL> select * from v$reserved_words rw 
    2 where rw.keyword = 'SAMPLE' 
    3/

KEYWORD       LENGTH R R R R D 
------------------------------ ---------- - - - - - 
SAMPLE         6 N N N N N 

SQL> 

这就告诉我们,“样本”是一个关键字,但在任何情况下不保留。所以我们被允许创建名为SAMPLE的对象。 Find out more