显示错误'ORA-01858:在此命令中找到了数字所在的非数字字符'

时间:2017-04-05 14:47:13

标签: plsql

这是我的代码。

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

当我执行代码时,

执行new_prof('P0026','Ronaldo','Christiano',TO_DATE('07 / 25/1978','MM / DD / YYYY'),'Senior','Programming',0.40);

执行此代码后,它显示“在那里的日期找到了非数字字符所在的数字”。

1 个答案:

答案 0 :(得分: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;