2017-04-05 4 views
0

ここに私のコードです。エラーを表示しています 'ORA-01858:このコマンドでは数字が必要な場所に数字以外の文字が見つかりました'

Iコードを実行すると、

はnew_prof( 'P0026'、 'ロナウド'、 'クリスティアーノ' を実行

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; 
/

、TO_DATE('07/1978' 分の25、 'MM/DD/YYYY') 、 'Senior'、 'Programming'、0.40);

私はこのコードを実行した後、そこに日付のところに「数値でない文字がありました」と表示されます。

+0

、日付が6日のparamですが、uは第四のparamとして渡すrを – Rams

答えて

0

パラメータを間違った順序で渡しています。

このような問題を回避するには、その順序に頼るのではなく、パラメータを明示的に渡す方がよいでしょう。例えば

:あなたはprocの中で誤った値を渡している

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; 
関連する問題