2014-02-27 38 views
0

我正在創建一個存儲過程,該存儲過程將向當前表中添加一個馬,但我收到此錯誤。有誰知道爲什麼會出現這個錯誤?當期望以下某個時,遇到符號「@」sql

CREATE OR REPLACE PROCEDURE ADDHORSE (
HorseID IN INTEGER, 
Stable IN VARCHAR2, 
Horse_Name IN VARCHAR2, 
DateofBirth IN DATE, 
Sex Char:=1); 
Height FLOAT, 
Dam VARCHAR2:=30), 
Sire VARCHAR2:=30) 
) 

AS 
BEGIN 
    INSERT INTO horse(
     [HorseID], 
     [Stable], 
     [Horse_Name], 
     [DateofBirth], 
     [Sex], 
     [Height], 
     [Dam], 
     [Sire] 
) VALUES (
     HorseID, 
     Stable, 
     Horse_Name, 
     DateofBirth, 
     Sex, 
     Height, 
     Dam, 
     Sire 
) 
END ADDHORSE; 
+0

什麼版本的SQL您使用的是? – Paul

+0

Oracle SQL Developer Version 3.2.20.09 – user3360874

回答

1

你有一個分號,並在參數列表中的一個額外的支架,這是否對你的工作......

CREATE PROCEDURE ADDHORSE (
    HorseID INTEGER, 
    Stable VARCHAR2, 
    Horse_Name VARCHAR2, 
    DateofBirth DATE, 
    Sex CHAR(1), 
    Height FLOAT, 
    Dam VARCHAR2(30), 
    Sire VARCHAR2(30) 
) 

AS 
BEGIN 
     INSERT INTO horse(
      [HorseID], 
      [Stable], 
      [Horse_Name], 
      [DateofBirth], 
      [Sex], 
      [Height], 
      [Dam], 
      [Sire] 
    ) VALUES (
      HorseID, 
      Stable, 
      Horse_Name, 
      DateofBirth, 
      Sex, 
      Height, 
      Dam, 
      Sire 
    ) 
END ADDHORSE; 
+0

我看到這可能會讓人困惑,所以我編輯了我的主代碼,我也在我的SQL中編輯了它,但它仍然不能解決問題:\ – user3360874

+0

道歉 - 用於輸入SQL Server東東!取出參數修飾符! – Paul

+0

在insert語句的末尾還有一個流氓NULL。 – Paul

2

我注意到你和你的varchar有一些失蹤引號(')和char和一個失蹤';'在insert的末尾。

這個工作對我來說:

CREATE OR REPLACE PROCEDURE ADDHORSE (
HorseID IN INTEGER, 
Stable IN VARCHAR2, 
Horse_Name IN VARCHAR2, 
DateofBirth IN DATE, 
Sex Char := '1', 
Height FLOAT, 
Dam VARCHAR2 := '30', 
Sire VARCHAR2 := '30' 
) 
AS 
BEGIN 
    INSERT INTO horse(
     HorseID, 
     Stable, 
     Horse_Name, 
     DateofBirth, 
     Sex, 
     Height, 
     Dam, 
     Sire 
) VALUES (
     HorseID, 
     Stable, 
     Horse_Name, 
     DateofBirth, 
     Sex, 
     Height, 
     Dam, 
     Sire 
); 
END ADDHORSE; 
+0

謝謝你先生,這也適用於我:) – user3360874

+0

@ user3360874:不客氣。既然你是新來者,請不要忘記將你的問題標記爲已回答。 –

相關問題