创建了个函数,不知道为什么会出现下面的编译错误,请高手指点下!SQL> create or replace function Aver_Sal(ID HR.JOBS.JOB_ID%TYPE) return char AS
2 msg char(50);
3 begin
4 select JOB_TITLE into msg from HR.JOBS where JOB_ID=ID;
5 return msg;
6 end;
7 /警告: 创建的函数带有编译错误。SQL> show error
FUNCTION AVER_SAL 出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PL/SQL: Compilation unit analysis terminated
1/22 PLS-00201: 必须说明标识符 'HR.JOBS'
SQL>
他说必须指明标识符,HR方案中有表JOBS。
为什么会出现这样的错误?
2 msg char(50);
3 begin
4 select JOB_TITLE into msg from HR.JOBS where JOB_ID=ID;
5 return msg;
6 end;
7 /警告: 创建的函数带有编译错误。SQL> show error
FUNCTION AVER_SAL 出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PL/SQL: Compilation unit analysis terminated
1/22 PLS-00201: 必须说明标识符 'HR.JOBS'
SQL>
他说必须指明标识符,HR方案中有表JOBS。
为什么会出现这样的错误?
当然前提是JOBS表建了公共SYNONYM
而且我也去过前面的HR试过了,出现了编译错误;真不晓得是什么原因啊!
SQL> create or replace function Aver_Sal(ID JOBS.JOB_ID%TYPE)
return char AS
2 msg char(50);
3 begin
4 select JOB_TITLE into msg from JOBS where JOB_ID=ID;
5 return msg;
6 end;
7 /警告: 创建的函数带有编译错误。SQL> show error
FUNCTION AVER_SAL 出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PL/SQL: Compilation unit analysis terminated
1/22 PLS-00201: 必须说明标识符 'JOBS.JOB_ID'
你确定HR用户下有JOBS表,该表下有JOB_ID字段?
|
数据库
|
ORCL_SYSTEM AS SYSDBA
|
例程
|
方案
|
HR
|
表
|
JOBS
里面有JOB_ID字段。你知道是什么原因么?谢谢啦
但是你说的JOBS表建立公共SYNONYM是什么意思,我不是很明白啊!能给我讲讲具体事怎么弄的吗?谢谢你啊
但是我还是有个问题想问下你,只有DBA权限的用户才能创建函数吗?谢谢你呀!
谢谢你啊!果然是你说的,我的HR一开始没有设置DBA权限!设置了权限之后就没有这样的编译错误了!
但是我还是有个问题想问下你,只有DBA权限的用户才能创建函数吗?谢谢你呀!
grant create procedure to hr;或者给resource的role权限grant resource to hr;