2013-05-30 51 views
0

爲什麼它不起作用? 我在oracle中運行這個。 我想這樣的創造aprocedure:在oracle中創建程序

CREATE OR REPLACE PROCEDURE ME(X in NUMBER)IS 
declare 
num1 number; 
BEGIN 
num1:=1; 
insert into a (year) values(7);  
END; 

這是錯誤:

PLS-00103:出現符號「申報」在需要下列之一時: 開始函數編譯程序亞型類型 當前光標刪除 存在之前的外部語言 符號「開始」代替「DECLARE」繼續。 7/5 PLS-00103:出現符號「檔案結尾」期待下列之一時: (開始的情況下宣告結束退出異常的轉到如果環模 空編譯提高收益選擇更新而與 < <繼續關閉當前刪除獲取鎖 插入開放回滾保存點設置SQL執行承諾FORALL 合併管道淨化

回答

3

DECLARE僅在匿名PL/SQL塊中使用和嵌套PL/SQL塊。你的時候你不會使用它假設表A存在列YEAR,類似於

CREATE OR REPLACE PROCEDURE ME(X in NUMBER) 
IS 
    num1 number; 
BEGIN 
    num1:=1; 
    insert into a (year) values(7);  
END; 

在語法上是有效的。當然,代碼有各種各樣的問題......你使用一個你不使用的參數,你聲明一個你不使用的局部變量,這個過程的名字與這個過程沒有任何關係確實,等

1

嘗試爲

CREATE OR REPLACE PROCEDURE me (x IN NUMBER) 
IS 
    num1  NUMBER; 
BEGIN 
    num1 := 1;  
    insert into a (year) values(7);  
END; 
/