【发布时间】:2015-09-10 19:53:06
【问题描述】:
这是我下面给出的代码。我正在尝试将函数接受的 5 个参数添加到表 Employee 中。但是我做的并不成功,尝试了很多东西。
错误
ORA-01858:在数字所在的位置发现了一个非数字字符 预期的 ORA-06512:在“xxxxxxx.A1SF_ADDEMP”,第 14 行 01858. 00000 - “在需要数字的地方发现了一个非数字字符” *原因:使用日期格式模型转换的输入数据是 不正确。输入数据不包含数字 格式模型所要求的。 *行动:修复输入数据或日期格式模型,以确保 元素在数量和类型上匹配。然后重试操作。
另外,如何测试包含插入/更新或删除语句的存储函数?
执行声明
Select A1SF_ADDEMP('Adesh', '33', 'M', 8000, '26/03/1990')
From dual;
代码
CREATE OR REPLACE Function A1SF_ADDEMP
(pEmpName In Varchar2,
pTaxFileNo In Varchar2,
pGender In Varchar2,
pSalary In Number,
pBirthdate In Varchar2
) Return Varchar2
Is
tEmpId Number(38,0);
tBirthDate Date;
BEGIN
tEmpId := A1Seq_Emp.nextval;
tBirthdate := to_date('pBirthdate','dd/mm/yyyy');
Insert Into Employee(EmpId, EmpName, TaxFileNo, Gender, Salary, Birthdate)
Values (tEmpId, pEmpName, pTaxFileNo, pGender, pSalary, tBirthdate);
Commit;
Return null;
END;
【问题讨论】: