ORA-00904: invalid identifier, when calling a function inside the own schema [message #276575] |
Thu, 25 October 2007 09:30  |
psignore
Messages: 6 Registered: October 2007
|
Junior Member |
|
|
I have a user with the following privileges
GRANT CONNECT TO ADMINIMP WITH ADMIN OPTION;
GRANT RESOURCE TO ADMINIMP WITH ADMIN OPTION;
GRANT EXP_FULL_DATABASE TO ADMINIMP;
GRANT IMP_FULL_DATABASE TO ADMINIMP;
ALTER USER ADMINIMP DEFAULT ROLE EXP_FULL_DATABASE, IMP_FULL_DATABASE;
-- 19 System Privileges for ADMINIMP
GRANT ANALYZE ANY TO ADMINIMP;
GRANT CREATE SESSION TO ADMINIMP WITH ADMIN OPTION;
GRANT DROP ANY INDEX TO ADMINIMP;
GRANT DROP ANY TABLE TO ADMINIMP;
GRANT ALTER ANY INDEX TO ADMINIMP;
GRANT ALTER ANY TABLE TO ADMINIMP;
GRANT CREATE ANY VIEW TO ADMINIMP;
GRANT CREATE ANY INDEX TO ADMINIMP;
GRANT CREATE ANY TABLE TO ADMINIMP;
GRANT EXECUTE ANY TYPE TO ADMINIMP;
GRANT INSERT ANY TABLE TO ADMINIMP;
GRANT SELECT ANY TABLE TO ADMINIMP WITH ADMIN OPTION;
GRANT UPDATE ANY TABLE TO ADMINIMP;
GRANT SELECT ANY SEQUENCE TO ADMINIMP WITH ADMIN OPTION;
GRANT UNLIMITED TABLESPACE TO ADMINIMP WITH ADMIN OPTION;
GRANT EXECUTE ANY PROCEDURE TO ADMINIMP;
GRANT SELECT ANY DICTIONARY TO ADMINIMP WITH ADMIN OPTION;
GRANT CREATE PUBLIC DATABASE LINK TO ADMINIMP WITH ADMIN OPTION;
GRANT CREATE ANY MATERIALIZED VIEW TO ADMINIMP;
which has a function:
Function ADMINIMP.Get_Step_Id(p_object_owner IN varchar2,
p_object_name IN varchar2,
p_step_number IN number) return number;
When I try to use the function logged as user ADMINIMP:
SELECT Get_Step_Id(T2.OBJECT_OWNER,T2.OBJECT_NAME,T2.STEP_LOADING)
FROM ADMINIMP.MD_ALL_PROCESSES T2
it gives me the error
ORA-00904: "GET_STEP_ID": invalid identifier
when I add the function owner, it works:
SELECT ADMINIMP.Get_Step_Id(T2.OBJECT_OWNER,T2.OBJECT_NAME,T2.STEP_LOADING)
FROM ADMINIMP.MD_ALL_PROCESSES T2
--OK--
Anyone has an idea why?
The funny thing is that this happens only on our test DB. It works both ways on our development DB.
I tried to look for any privs differences or oracle parameters, but I couldn?t find the answer.
|
|
|
|
|
|
|
|
|
|
|
Re: ORA-00904: invalid identifier, when calling a function inside the own schema [message #276883 is a reply to message #276575] |
Fri, 26 October 2007 10:49   |
psignore
Messages: 6 Registered: October 2007
|
Junior Member |
|
|
The answer for this query
SELECT *
FROM USER_PROCEDURES
WHERE OBJECT_NAME = 'GET_STEP_ID'
In development:
GET_STEP_ID,,NO,NO,,,NO,NO,NO,DEFINER
In test:
GET_STEP_ID,,NO,NO,,,NO,NO,NO,DEFINER
The results are identical...
|
|
|
|
Re: ORA-00904: invalid identifier, when calling a function inside the own schema [message #277182 is a reply to message #276575] |
Mon, 29 October 2007 03:17   |
psignore
Messages: 6 Registered: October 2007
|
Junior Member |
|
|
Development DB
SQL> select user from dual;
USER
------------------------------
ADMINIMP
SQL> SELECT Get_Step_Id('ADMINIMP','IMP_ETL','100000')
2 FROM DUAL
3 /
GET_STEP_ID('ADMINIMP','IMP_ETL','100000')
--------------------------------------------
2
Test DB
SQL> select user from dual;
USER
------------------------------
ADMINIMP
SQL> SELECT Get_Step_Id('ADMINIMP','IMP_ETL','100000')
2 FROM DUAL
3 /
SELECT Get_Step_Id('ADMINIMP','IMP_ETL','100000')
*
ERRORE alla riga 1:
ORA-00904: "GET_STEP_ID": identificativo non valido
SQL> SELECT * FROM USER_PROCEDURES
2 WHERE OBJECT_NAME = 'GET_STEP_ID'
3 /
OBJECT_NAME PROCEDURE_NAME AGG PIP
------------------------------ ------------------------------ --- ---
IMPLTYPEOWNER IMPLTYPENAME PAR INT DET
------------------------------ ------------------------------ --- --- ---
AUTHID
------------
GET_STEP_ID NO NO
NO NO NO
DEFINER
|
|
|
|
|
|
|
|
Re: ORA-00904: invalid identifier, when calling a function inside the own schema [message #277288 is a reply to message #277283] |
Mon, 29 October 2007 07:37  |
 |
Michel Cadot
Messages: 68757 Registered: March 2007 Location: Saint-Maur, France, https...
|
Senior Member Account Moderator |
|
|
Given that many don't read the general guidelines, I carry on my crusade for better posting.
I think clearly posting a question is much more important in professional life than getting an immediate answer to the current problem.
(but of course it is much more boring and I greatly prefer to search, find and answer a question than continually posting the same stuff.)
Regards
Michel
|
|
|