ORA -00909 //sql 语句被忽略...创建的过程有编译错误
ORA -00909 //sql statement ignored ...procedure created with compilation errors
create or replace procedure Pupdate(
peno in emp.empno%type,
psal in emp.sal%type,
pcomm in emp.comm%type)
IS
BEGIN
UPDATE emp SET sal=sal+psal, comm=NVL(comm)+pcomm WHERE empno=peno;
END Pupdate;
/
存储过程从用户那里获取 sal 和 comm,并将其更新到 emp table。
NVL()
有两个参数,但我更喜欢 ANSI 标准 COALESCE()
:
UPDATE emp
SET sal=sal + psal,
comm = COALESCE(comm, 0) + COALESCE(pcomm, 0)
WHERE empno = peno;
create or replace procedure Pupdate(
peno in emp.empno%type,
psal in emp.sal%type,
pcomm in emp.comm%type)
IS
BEGIN
UPDATE emp SET sal=sal+psal, comm=NVL(comm,0)+nvl(pcomm,0) WHERE empno=peno;
END Pupdate;
/
试试这个。 NVL 将类似于 NVL(column_name,value_if_null).
create or replace procedure Pupdate(
peno in emp.empno%type,
psal in emp.sal%type,
pcomm in emp.comm%type)
IS
BEGIN
UPDATE emp SET sal=sal+psal, comm=NVL(comm)+pcomm WHERE empno=peno;
END Pupdate;
/
存储过程从用户那里获取 sal 和 comm,并将其更新到 emp table。
NVL()
有两个参数,但我更喜欢 ANSI 标准 COALESCE()
:
UPDATE emp
SET sal=sal + psal,
comm = COALESCE(comm, 0) + COALESCE(pcomm, 0)
WHERE empno = peno;
create or replace procedure Pupdate(
peno in emp.empno%type,
psal in emp.sal%type,
pcomm in emp.comm%type)
IS
BEGIN
UPDATE emp SET sal=sal+psal, comm=NVL(comm,0)+nvl(pcomm,0) WHERE empno=peno;
END Pupdate;
/
试试这个。 NVL 将类似于 NVL(column_name,value_if_null).