Plsql 显示错误';ORA-01858:在需要数字的位置找到非数字字符';在这个命令中
这是我的密码Plsql 显示错误';ORA-01858:在需要数字的位置找到非数字字符';在这个命令中,plsql,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 V
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;
/
当我执行代码时
执行新教授('P0026','罗纳尔多','克里斯蒂亚诺','1978年7月25日','MM/DD/YYYY'),'Senior','Programming',0.40)
执行此代码后,它会显示“在预期的数字位置找到了非数字字符”的日期。您以错误的顺序传递参数 为了避免这样的问题,最好显式地传递参数,而不是依赖于它们的顺序 例如:
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;
您在过程中错误地传递了值,日期是第6个参数,但您作为第4个参数传递