2012-02-21 81 views
1

我在Oracle 10g中創建了一個表,並試圖使用insert語句將一些行插入表中。但我反覆收到以下錯誤:Oracle 10g:使用date和varchar2值插入語句(ORA-00911錯誤)

ORA-00911: invalid character 

這是給了ORA-00911錯誤如下插入語句:

Insert into WinLossByDate (StatusDate, Status) 
     Values (TO_DATE(‘2011-03-01’,‘yyyy-mm-dd’), ‘lose’); 

NBMy表定義如下

Name          Null? Type 
----------------------------------------- -------- ------------- 

STATUSDATE        NOT NULL DATE 
STATUS         NOT NULL VARCHAR2(5) 

有人可以幫助什麼是錯誤?

+0

你使用什麼應用程序?通常情況下,你會得到這個錯誤,因爲你正在使用的工具不希望有分號。 – 2012-02-21 07:30:20

+0

嗨賈斯汀,是的,因爲我在最後刪除了分號,插入語句已經開始成功工作。 Andy Skirrow提到的另一個變化是,我也這樣做了,即用SQL編輯器引號替換了引號,因爲我複製了Word中的引號。順便說一下,我使用的編輯器是Oracle 10g。非常感謝,Somnath! – somnathchakrabarti 2012-02-21 07:43:48

+0

@somnathchakrabarti - Oracle 10g是數據庫。編輯器是用來訪問數據庫的客戶端工具(Oracle SQL * PLUS,Toad,SQL Developer等)。僅供參考。 – 2012-02-21 14:50:56

回答

3

According to the manual這似乎是詞法分析器錯誤(例如,oracle無法將您的語句分解爲令牌,因此可以解析它)。

我注意到,在您的示例中的引號是相當期待那些有左,右手邊(即代替' - 仔細看差別)。有些字處理程序會這樣做,以使文本看起來更漂亮。嘗試手動將語句的引號部分重新輸入到純文本編輯器(如記事本或VIM)中。

+0

嗨,安迪,是的,你說得對。我用我使用的SQL編輯器的引號替換了引號(從Word複製),在我的例子中是Oracle 10g。我還在最後刪除了分號,並且兩次更改都奏效了。非常感謝! – somnathchakrabarti 2012-02-21 07:45:40