Oracle 报错ORA-00904:标示符无效 (百度了没有解决 )
create or replace procedure raisesalary(eno in number)as --定义一个变量保存涨前的薪水 psal emp.sal%type; begin --得到员工涨前的薪水 select sal into psal from emp where empno=eno; --给该员工涨100 update emp set sal=sal+100 where empno=eno; --需不需要commit? --注意:一般不在存储过程或者存储函数中,执行commit和rollback --打印 dbms_output.put_line('涨前:'||psal||' 涨后:'||(psal+100)); end; 调试时 :
看着好像是没毛病啊,检查下emp表,看下select和update的这个列名是否就是你创建的,有没有写错不一致之类的
1、字段名或者表名写错了,仔细检查核对一下,如果实在是没有发现错的地方就有可能是第二种情况了
第二种情况就是:你的字段包含了oracle的关键字,把报错的字段用双引号括起来试试
现在举一个我今天遇到的例子:
insert into SSQX_SURGERY_INFO (ID, PackId, REMARK, DEPARTID, AMOUNT, PRIORITY)
values (3, 11, '1rt', 1, 1, 'fdg') 一直报PackId是无效标识符
改成insert into SSQX_SURGERY_INFO (ID, ”PackId“, REMARK, DEPARTID, AMOUNT, PRIORITY)
values (3, 11, '1rt', 1, 1, 'fdg') 就OK啦, PackId在oracle的关键字