2017-04-05 30 views
0

這是我的代碼。在這個命令中顯示錯誤「ORA-01858:發現一個非數字字符,其中的數字是預期的」

Create OR Replace Procedure new_prof 
(
Pno IN VARCHAR2, 
ProLast_Name IN VARCHAR2, 
ProFirst_Name IN VARCHAR2, 
Pro_rank IN VARCHAR2, 
ProResearch_Specialty IN VARCHAR2, 
Pro_DOB IN DATE, 
Time_percentage DECIMAL 
) 
IS 
BEGIN 
INSERT INTO professors VALUES(Pno,ProLast_Name,ProFirst_Name,Pro_DOB,Pro_rank,ProResearch_Specialty,Time_percentage); 
DBMS_OUTPUT.PUT_LINE('New Professors'||Pno||'is successfully created'); 

END; 
/

當我執行代碼,

EXECUTE new_prof( 'P0026', '羅', '克里斯蒂',TO_DATE('07 /1978分之25' , 'MM/DD/YYYY') , '高級', '編程',0.40);

執行此代碼後,它會顯示「在預計數字時發現的非數字字符」。

+0

您錯誤地傳遞值在proc,日期是6 PARAM但ü[R傳遞爲第4 PARAM – Rams

回答

0

您正在傳遞錯誤順序的參數。

爲了避免這樣的問題,您應該更好地傳遞參數,而不是依賴它們的順序。

例如:

begin 
    new_prof(Pno => 'P0026', 
       ProLast_Name => 'Ronaldo', 
       ProFirst_Name => 'Christiano', 
       Pro_rank => 'Senior', 
       ProResearch_Specialty => 'Programming', 
       Pro_DOB => TO_DATE('07/25/1978','MM/DD/YYYY'), 
       Time_percentage => 0.40 
      ); 
end; 
相關問題