我有一个名为_VERSION_HISTORY的表,截断此表时出现 ORA-00911 错误。Oracle 允许名称以下划线 (_) 开头,但在截断它时会引发错误。这是一个愚蠢的错误吗?
问问题
2413 次
2 回答
5
Oracle不允许数据库对象名称以下划线开头:
SQL> create table _T34 (col1 number);
create table _T34 (col1 number)
*
ERROR at line 1:
ORA-00911: invalid character
SQL>
因此,您在创建该表时必须使用双引号:
SQL> create table "_T34" (col1 number);
Table created.
SQL>
这样做后,您必须在引用该对象时使用双引号吗?
SQL> truncate table "_T34";
Table truncated.
SQL>
那么这是一个“愚蠢的错误”吗?是的,但是你(或者决定使用双引号来规避 Oracle 命名约定的人)很遗憾。 了解更多。
于 2013-07-23T06:58:23.453 回答
0
似乎您试图执行带有特殊章程的 SQL 语句。我认为这与 truncate 命令无关。您可能只需将截断替换为简单的 Select 并测试此场景。请注意,由于您使用的字体,特殊字符可能会显示为空白。
于 2013-07-23T06:57:28.803 回答