'x$kzsro' in dba_objects
Why this table 'x$kzsro' donsen"'t exists in dba_objects
(kernel security, session role used in many SQL scripts in ?/rdbms/admin)
select * from dba_objects where object_name= 'x$kzsro' return nothing
Nota:
the table 'x$kzsro' is used in the view all_objects
You are right.
connect sys/password
SQL> select owner,object_type,object_name
2 from dba_objects where lower(object_name) like '%kzsro%';
no rows selected
SQL> select * from v$fixed_table where lower(name) like '%kzsro%';
NAME OBJECT_ID TYPE TABLE_NUM
X$KZSRO 4294951024 TABLE 421
SQL> desc x$kzsro;
Name Null? Type
ADDR RAW(4)
INDX NUMBER
INST_ID NUMBER
KZSROROL NUMBER
SQL>
Similar Messages
-
Use of "DBA_OBJECTS" in "AFTER CREATE" Trigger
Hi,
We would like to store some extra information about our objects we have in the database. To do so we tought of the idea of creating a 'documenting' table containing an object_id that references to the object_id from the view dba_views.
Now we want to automatically create a new record in our documenting table when a new object is created, in the first stage this should only contain the object_id
To accomplish this we are using an 'AFTER CREATE' trigger, but when this trigger fires and the code searches for the new object_id in dba_objects, it does not return any records and generates an error. Likely because when the trigger is executed, the view is not yet updated?
create or replace
TRIGGER TRG_TEST
AFTER CREATE ON SCOTT.SCHEMA
DECLARE
tmp VARCHAR2(50);
BEGIN
dbms_output.put_line(ora_dict_obj_name);
select object_id
into tmp
from dba_objects
where object_name = ora_dict_obj_name;
dbms_output.put_line(tmp);
END;
Error report:
ORA-04088: Fout bij uitvoering van trigger 'SCOTT.TRG_TEST'.
ORA-01403: Geen gegevens gevonden.
ORA-06512: in regel 6
04088. 00000 - "error during execution of trigger '%s.%s'"
*Cause: A runtime error occurred during execution of a trigger.
*Action: Check the triggers which were involved in the operation.
It's in dutch, so I'll have a go at translating:
Error report:
ORA-04088: Exception while executing trigger 'SCOTT.TRG_TEST'.
ORA-01403: No data found
ORA-06512: in rule 6
04088. 00000 - "error during execution of trigger '%s.%s'"
*Cause: A runtime error occurred during execution of a trigger.
*Action: Check the triggers which were involved in the operation.
Does anyone have an idea of how I can accomplish what I'm trying to do here.. Or maybe something I'm doing wrong?
Thanks in advance!
DavyWhat is "ora_dict_obj_name" defined as?
Another option might be to setup a DBMS_SCHEDULER job to run the following insert
firstly though, create the following table ;
create document_table as (select * from dba_objects where rownum < 1)and then setup a DBMS_SCHEDULER job to run the following:
begin
insert into document_table
(select dbo.*
from dba_objects dbo
,document_Table dtb
where dbo.Object_ID = dtb.Object_ID(+)
and dtb.Object_ID is null);
commit;
exception
when others then
rollback;
-- log a message somewhere with the error, i.e. SQLERRM
end;
/Note, I specified all columns, but you'll probably specify explicitly which column you require, in which case the CREATE table would change as well.
Then you won't have a need for any trigger, and can better manage when you want your documentation to be updated.
Another option might be to use COMMENT, which can be used on tables, views, materialized views, but won't cover all objects
to the extent you might want.
SQL> desc emp2
Name
EMPNO
JOB
START_DATE
SAL
DEPT
END_DATE
SQL> comment on column emp2.sal is 'Existing Salary of employee as paid at most recent month end'; -
Slow query running against DBA_OBJECTS in 10.1.0.4
Running the following query takes ages to return a result (in fact I haven't even bothered waiting for it to return a result):
SELECT a.object_type, a.object_name, b.owner, b.object_type,
b.object_name,
b.object_id, b.status
FROM SYS.dba_objects a,
SYS.dba_objects b,
(SELECT object_id, referenced_object_id
FROM public_dependency
START WITH object_id =
(SELECT object_id
FROM SYS.dba_objects
WHERE owner = :owner
AND object_name = :object
AND object_type = :type)
CONNECT BY PRIOR referenced_object_id = object_id) c
WHERE a.object_id = c.object_id
AND b.object_id = c.referenced_object_id
AND a.owner NOT IN ('SYS', 'SYSTEM')
AND b.owner NOT IN ('SYS', 'SYSTEM')
AND a.object_name <> 'DUAL'
AND b.object_name <> 'DUAL';
If I add an /*+ ALL_ROWS */ hint though I get a result almost instantly. Hints in Oracle 10g are considered to be bad form (?) so what do I do? Is this a badly written query or might it be a database configuration issue?
Any hints (pun intended) would be greatly appreciated.
RichardThe data dictionary views are not really meant to be joined together, not even to themselves, although everybody does it.
Hints, per se, are not necessarily bad. There are "good" hints that give the optimizer more information either about the tables involved, or the intent of the query, without unduly limiting its scope for generating a query plan. The ALL_ROWS hint (and its oposite FIRST_ROWS) are such hints. The ALL_ROWS hint tells the optimizer that I am willing to wait longer for the first row to come back if that means I get the last row faster. It will make the optimizer tend to use more full scans and hash joins as opposed to nested loop joins and index access. Another "good" hint would be the CARDINALITY hint when used on a GTT or a TABLE() cast.
An index hint, or use_nl or those types of hints tend to be "bad" hints in that they tell the optimizer how to access the data. They might work today, but if something changes tomorrow, the hint is still forcing an execution plan.
Try searching asktom for "good hints", you should get a few hits with his opinions on good and bad hints.
HTH
John -
Something in dba_segments but not in dba_objects
Hi,
I think I met a bug. It's Oracle 11.1.0.7.0 Enterprise Edition 64bit on Oracle Enterprise Linux Server Release 5 Update 6.
I tried to drop a tablespace but cannot. The 'drop tablespace' returned error ORA-1561 saying there're some objects in the tablespace. So I checked the dba_segments and dba_extents, and there were some tables owned by SYS in the tablespace. Then I tried to drop the tables manually, but the 'drop table' returned with ORA-942 saying the table did not exist. I checked the dba_tables and dba_objects to ensure the existance of the table, but cannot find them.
As the result, I cannot drop the tablespace.
Anyone has any idea what I can do to drop the tablespace?
Here's the log:
[toracle@localhost etc]$ sqlplus /nolog
SQL*Plus: Release 11.1.0.7.0 - Production on Wed Jun 1 12:09:33 2011
Copyright (c) 1982, 2008, Oracle. All rights reserved.
SQL> conn / as sysdba;
Connected.
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
SQL> drop tablespace tbs1 including contents and datafiles cascade constraints;
drop tablespace tbs1 including contents and datafiles cascade constraints
ERROR at line 1:
ORA-01561: failed to remove all objects in the tablespace specified
SQL> l
1 select owner, segment_type, segment_name
2 from dba_segments
3 where tablespace_name = 'TBS1'
4* and rownum < 3
SQL> /
OWNER SEGMENT_TYPE
SEGMENT_NAME
SYS TABLE
DELETEALLIANCE
SYS TABLE
DISTINCT_TXLOGDETAILS
SQL> drop table sys.DELETEALLIANCE;
drop table sys.DELETEALLIANCE
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select count(*)
2 from dba_objects
3 where object_name = 'DELETEALLIANCE';
COUNT(*)
0
SQL>
Thanks in advance!
Regards,
Chiyuancolumn tablespace_name format a20
column "Name" format a45
break on file_id skip 1
ttitle &1SQL> SQL> SQL> SQL>
Enter value for 1: VHBA
SQL> select file_id, block_id, blocks, owner||'.'||segment_name "Name" from sys.dba_extents where tablespace_name = upper('&1')
2 UNION
3 select file_id, block_id, blocks, 'Free' from sys.dba_free_space where tablespace_name = upper('&1')
4 order by 1,2,3
5 /
Enter value for 1: VHBA
old 1: select file_id, block_id, blocks, owner||'.'||segment_name "Name" from sys.dba_extents where tablespace_name = upper('&1')
new 1: select file_id, block_id, blocks, owner||'.'||segment_name "Name" from sys.dba_extents where tablespace_name = upper('VHBA')
Enter value for 1: VHBA
old 3: select file_id, block_id, blocks, 'Free' from sys.dba_free_space where tablespace_name = upper('&1')
new 3: select file_id, block_id, blocks, 'Free' from sys.dba_free_space where tablespace_name = upper('VHBA')
Mon Apr 16 page 1
VHBA
FILE_ID BLOCK_ID BLOCKS Name
26 9 8192 SYS.PARTICRESPONSES
8201 8192 SYS.PARTICRESPONSES
16393 8192 SYS.PARTICRESPONSES
24585 8192 SYS.PARTICRESPONSES
32777 8192 SYS.PARTICRESPONSES
40969 8192 SYS.PARTICRESPONSES
49161 14840 Free
33 9 8192 SYS.PARTICRESPONSES
8201 8192 SYS.PARTICRESPONSES
16393 8192 SYS.PARTICRESPONSES
24585 8192 SYS.PARTICRESPONSES
32777 8192 SYS.PARTICRESPONSES
40969 23032 Free
34 9 8192 SYS.PARTICRESPONSES
8201 8192 SYS.PARTICRESPONSES
16393 8192 SYS.PARTICRESPONSES
24585 8192 SYS.PARTICRESPONSES
32777 8192 SYS.PARTICRESPONSES
40969 8192 SYS.PARTICRESPONSES
49161 8 SYS.PEDOMETER
49169 16 Free
49185 8 SYS.PEDOMETER_STEP
49193 14808 Free
23 rows selected.
SQL> select status, NAME,owner# from obj$ where name in ('PEDOMETER_STEP','PEDOMETER','PARTICRESPONSES');
STATUS NAME OWNER#
1 PARTICRESPONSES 13850
1 PEDOMETER 13850
1 PEDOMETER_STEP 13850
select USER#, NAME from user$ where USER# = 13850;
SQL>
no rows selected
SQL> select owner,segment_name,segment_type, sum(bytes)/1000000 from sys.dba_extents where
tablespace_name = 'VHBA'
group by owner,segment_name,segment_type
order by 3 desc
OWNER SEGMENT_NAME SEGMENT_TYPE SUM(BYTES)/1000000
SYS PARTICRESPONSES TABLE 1140.85069
SYS PEDOMETER TABLE .065536
SYS PEDOMETER_STEP TABLE .065536
SQL>
select USER#, NAME from user$ where name='SYS';
USER# NAME
0 SYS
update obj$ set OWNER# = 0 where name in ('PEDOMETER_STEP','PEDOMETER','PARTICRESPONSES');
SQL>
SQL> drop table sys.PEDOMETER
2 /
Table dropped.
SQL> drop table sys.PEDOMETER_STEP
2 /
Table dropped.
SQL> drop table sys.PARTICRESPONSES
2 /
Table dropped.
column tablespace_name format a20
column "Name" format a45
break on file_id skip 1
ttitle &1
select file_id, block_id, blocks, owner||'.'||segment_name "Name" from sys.dba_extents where tablespace_name = upper('&1')
UNION
select file_id, block_id, blocks, 'Free' from sys.dba_free_space where tablespace_name = upper('&1')
order by 1,2,3
Enter value for 1: VHBA
FILE_ID BLOCK_ID BLOCKS 'FRE
26 9 8192 Free
8201 8192 Free
16393 8192 Free
24585 8192 Free
32777 8192 Free
40969 8192 Free
49161 14840 Free
33 9 8192 Free
8201 8192 Free
16393 8192 Free
24585 8192 Free
32777 8192 Free
40969 23032 Free
34 9 8192 Free
8201 8192 Free
16393 8192 Free
24585 8192 Free
32777 8192 Free
40969 8192 Free
49161 8 Free
49169 16 Free
49185 8 Free
49193 14808 Free
23 rows selected.
SQL> drop tablespace vhba including contents and datafiles;
Tablespace dropped.
SQL>
after updating update obj$ set OWNER# = 0 where name in ('PEDOMETER_STEP','PEDOMETER','PARTICRESPONSES');
if you do not succeed dropping tables , then bounce the database, it will release the lock.
Thanks everyone.
Ashok bansal -
Delete from dba_objects
My database version is Oracle 10.1.0.2.0.
I logon as a ABC schema and by mistake I ran @catproc.script.
Now its created so many unwanted objects under that Schema (abc).
Now I wanted to delete all unwanted objects from abc schema.
Most of the unwanted objects starts from DBMS.
I can delete manually one by one from dbconsole.
But it takes long time (almost 200 objects need to delete).
My question if I delete from dba_objects as below.
will it delete all objects under abc schema starts with DBMS?
Is it correct way to do it?
delete from dba_objects
where owner = 'ABC' and OBJECT_TYPE ='PACKAGE'
and object_name like 'DBMS%';There are probably objects created under the ABC schema that do not start with DBMS. To ensure that you get all objects created by catproc.sql, you could do something like:
SELECT 'DROP ABC.'||object_type||' '||object_name||';'
FROM (SELECT object_name, object_type
FROM dba_objects
WHERE owner = 'ABC'
INTERSECT
SELECT object_name, object_type
FROM dba_objects
WHERE owner = 'SYS')
WHERE object_type NOT IN ('PACKAGE BODY', 'TRIGGER', 'INDEX', 'LOB')As with all scripts generated from the data dictionary, check it carefully before you actually run it.
Been there done this
John -
Tables in dba_objects view not present in dba_all_tables view
I have found tables in view dba_objects
(object_type='TABLE'), which I haven't found
in dba_tables, or dba_all_tables views.
What kind of tables are they?
E.g. in mdsys schema:
select object_name,object_type from dba_objects where owner='MDSYS' and object_name like 'BIN$%';
OBJECT_NAME OBJECT_TYPE
BIN$62DtOxJ2EELgNAAODF0XFg==$0 TABLE
BIN$62DtOxJ4EELgNAAODF0XFg==$0 TABLEThis information is contained in the Oracle 10g DBA Administration Guide sections Purging Objects in the Recycle Bin and Renaming Objects in the Recycle Bin.
HTH -- Mark D Powell -- -
Why DBA_OBJECTS.TIMESTAMP is defined as VARCHAR2(19)
Oracle recomends to use TIME STAMP datatypes for timestamp information but itself it is using VARCHAR2(19) for DBA_OBJECTS.TIMESTAMP can any body explain Why it is so?
Oracle version is 10.2.0
thanks in advance.DBA_OBJECTS is a view. The source is sys.obj$.stime, which is of type date. The Created and Last DDL are also of type date and are carried through as date.
Conclusion: Because Oracle wanted to ensure you see the HH24:MI:SS portion and regular dates will display based on the NLS_DATE_FORMAT of the database. -
We just applied "SAP Bundle Patch 10.2.0.4.5 - 201010" in our development system.
We completed all the post installation activities.
In tail end - when we execute subjected command, 39 rows returned.
Very First --- May we understand What is the negative impact on Oracle system?
Secondly -- Do we need to make these rows to "ZERO" is must ?
Finally - How to make them to "ZERO"
2 lines expert advise...will enable us to move forward.
Rgds
==========
COMMAND
==========
SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS = 'INVALID';
OBJECT_NAME
LOGMNR_KRVRDLUID3
DBMS_SQLTCB_INTERNAL
DBMS_LOGMNR_FFVTOLOGMNRT
DBMS_LOGMNR_OCTOLOGMNRT
DBMS_RULE_EXP_UTL
DBMS_LOGSTDBY
DBMS_AW_EXP
DBMS_SNAP_INTERNAL
DBMSOBJG_DP
DBMS_REPCAT_EXP
DBMS_STREAMS_TBS_INT_INVOK
DBMS_FILE_GROUP_UTL
DBMS_FILE_GROUP_UTL_INVOK
DBMS_STREAMS_MT
DBMS_LOGREP_EXP
DBMS_LOGREP_IMP
DBMS_STREAMS_RPC
DBMS_STREAMS_DATAPUMP
DBMS_STREAMS_DATAPUMP_UTIL
DBMS_STREAMS_TBS_INT
DBMS_STREAMS_TBS_INT_INVOK
DBMS_STREAMS_TABLESPACE_ADM
DBMS_FILE_GROUP_UTL
DBMS_FILE_GROUP_UTL_INVOK
DBMS_FILE_GROUP
DBMS_FILE_GROUP_INTERNAL_INVOK
DBMS_FILE_GROUP_EXP
DBMS_FILE_GROUP_IMP_INTERNAL
DBMS_REDEFINITION
DBMS_CDC_DPUTIL
LOGMNR_KRVRDREPDICT3
DBMS_CDC_DPUTIL
DBMS_CDC_EXPDP
DBMS_CDC_EXPVDP
DBMS_CDC_IMPDP
DBMS_SCHEMA_COPY
UTL_RECOMP
DBMS_SQLTUNE_INTERNAL
DBMS_CDC_DPUTIL
39 rows selected.
SQL>
==========Hi,
there has been an issue with an earlier set of bugfixes or an older CPU patch.
It did invalidate the catproc component.
Check: select comp_id,status, version from dba_registry;
if CATPROC is invalid, shutdown and startup your DB.
run
@?/rdbms/admin/catproc.sql
it can run between 10 and 25 minutes depending on horse powers.
Check again: select comp_id,status, version from dba_registry;
CATPROC should now be valid.
If yes run utlrp.sql again and your errors will be gone.
If not, your issue is something else.
Volker -
Differences between SYS.ALL_OBJECTS and SYS.DBA_OBJECTS
Hi All
I'm a beginner to ORACLE :)
when I login as sysdba, and issue below sql:
select count(*) from sys.dba_objects;
COUNT(*)
71596
select count(*) from sys.all_objects;
COUNT(*)
70772
Shouldn't it be equal? what is the objects that sys.all_objects can not see?
Thanks
EmilyOn my XE databases, related objects are LOBs, database links and queue:
SQL> select owner, object_type from (select * from dba_objects minus select * from all_objects) group by owner, object_type;
OWNER OBJECT_TYPE
TSMSYS LOB
CTXSYS LOB
PUBLIC DATABASE LINK
MDSYS LOB
XDB LOB
CTXTEST LOB
OUTLN LOB
FLOWS_020100 LOB
FLOWS_FILES LOB
SYSTEM QUEUE
SYSTEM LOB
OWNER OBJECT_TYPE
TEST LOB
12 ligne(s) sélectionnée(s).It is possible that this difference exists because you cannot grant object privilege for these object types. For example, a LOB belongs to another database object generally a table: you cannot run "CREATE LOB" or "GRANT ... ON <LOB> TO ...".
Edited by: P. Forstmann on Jun 12, 2009 9:52 AM -
Referencing dba_objects in a trigger.
Somehow, I am unable to compile a trigger referencing dba_objects view. Oracle gives me 'Invalid object' message. I am able to query dba_objects from the user session. Dose this mean dba_* views are not allowed in Triggers?
Most likely, your account has been granted access to SELECT from DBA_OBJECTS via a role rather than as a direct grant. If you want to reference an object using a named PL/SQL block (i.e. a procedure, a trigger, etc.) using definer's rights (the default), the owner of the object needs to have been given a direct grant on the object in question. The grant cannot come via a role.
In SQL*Plus, if you
SQL> set role noneI'll wager that you won't be able to query DBA_OBJECTS which would confirm my suspicion.
Justin -
Dba_objects vs all_procedures
I have to queries:
select count(*) from all_procedures where owner NOT IN ('SYS', 'SYSTEM', 'SYSMAN');
and
select count(*) from dba_objects where owner NOT IN ('SYS', 'SYSTEM', 'SYSMAN') and object_type = 'PROCEDURE';
Both of the queries was run as a SYSDBA and both give me totaly different result. Can sameone explain me what is wrong? Should those values not be equal?Of course not.
First of all, views prefixed with dba_ show everything.
views prefixed with all_ show what you have been granted access to.
dba_objects shows only standalone procedures, and dba_procedures shows all procedures including those in packages.
Obviously, with a little bit of readign, and a little bit of poking around you could have arrived at this conclusion yourself.
But then you believe this is a chatroom.
Which it is not.
Sybrand Bakker
Senior Oracle DBA -
Dba_objects and all_objects
Hi friends,
I know that the user_objects table is queried to list all objects in the logged in schema.
However what is the difference between all_objects and dba_objects?
I queried both these views and they fetch almost the same info.
Thanks.Hi..
refer to [http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datadict.htm#sthref1206]
ALL_OBJECTS describes all objects accessible to the current user.
DBA_OBJECTS describes all objects in the database.
USER_OBJECTS describes all objects owned by the current user. This view does not display the OWNER column.
HTH
Anand -
There was one other thread from years ago detailing this same problem. The only clue was to check whether select all privs were enabled for the user on dba_objects. They are for the user accessing the system. In fact, all tables/views/procs/funcs can be viewed in the tree view of DBVisualizer. For whatever reason, OSD does not show anything.
I'd appreciate any clues! Thank you!
OSD Version Version 4.1.0.18
OS: Windows 7/64
Java: 1.8.0
Connecting to Oracle 11g 11.2.0.3.0Thank you, Gary.
I updated the post with the version info. I did not explicitly install this JDBC driver, so whatever the OSD came with? Unless it is using whatever is installed on my machine, in which case would be the thin driver.
I did check out that post, and I appreciate you sharing it. I did click the 'include synonyms' filter, but behavior remained unchanged.
I would prefer to use OSD, and that is what our dev team was expecting to use, but we just can't see the information. We are using an ID that does not 'own' those tables, per se. But, why would DBVisualizer show these tables, when OSD does not? -
Dba_objects: ORA-00942: table or view does not exist
I created a proc like:
CREATE OR REPLACE PROCEDURE SEE_PROC
(v_owner varchar2)
as
begin
EXECUTE IMMEDIATE
'SELECT COUNT(*) from dba_objects WHERE OBJECT_TYPE = :1 AND OWNER = :2'
USING 'PROCEDURE', v_owner;
end;
for a dba user, say appadmin, and attempted to exec it
from a different schema test101:
exec appadmin.see_proc('TEST101');
and got:
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-06512: at "APPADMIN.SEE_PROC", line 6
ORA-06512: at line 1
view DBA_OBJECTS not accessible/not built?
Any help is appreciated.
- Zack HuAssuming that you are using Oracle 9i/10g, by default anyone who is not SYSDBA CANNOT see DBA tables.
The parameter 07_DICTIONARY_ACCESSIBILITY is responsible for this and by default it is set to FALSE. Set it to TRUE and see if it works. Note: Anyone will be able to read any DBA data dictionary tables so use it with caution.
<quote>for a dba user, say appadmin, and attempted to exec it from a different schema test101:
exec appadmin.see_proc('TEST101');
</quote>
When you execute a procedure from the appadmin schema that does not mean you have any DBA priviledges! Who ever you are logged in as is what matters.
-Raj Suchak
[email protected] -
Please help me fix the bug relate to x$kzsro
Dear everybody
I'm new to oracle. I'm using Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 in window vista.
recently, i try to run this code :
select u.name, o.obj#, o.name,
decode(o.type#, 2, 'TABLE', 4, 'VIEW')
from sys.user$ u, sys.obj$ o
where o.owner# = u.user#
and o.linkname is null
and o.type# in (2, 4)
and (o.owner# = uid
or
obj# in (select obj#
from sys.objauth$
where grantee# in (select kzsrorol from x$kzsro)
or grantee#=uid
and encounter error :
Error starting at line 1 in command:
select u.name, o.obj#, o.name,
decode(o.type#, 2, 'TABLE', 4, 'VIEW')
from sys.user$ u, sys.obj$ o
where o.owner# = u.user#
and o.linkname is null
and o.type# in (2, 4)
and (o.owner# = uid
or
obj# in (select obj#
from sys.objauth$
where grantee# in (select kzsrorol from x$kzsro)
or grantee#=uid
Error at Command Line:11 Column:56
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
this error relate to table or view x$kzsro in oracle 10.2
i can't fix this bug.so please help me.
thanksx$kzsro is a fixed table. You can select from fixed tables only if you are connected as sysdba. You can't grant select on a fixed table to a user:
SQL> grant select on sys.x$kzsro to scott;
grant select on sys.x$kzsro to scott
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
SQL> What you could do is as k your DBA to:
SQL> create view v$kzsro as select * from x$kzsro;
View created.
SQL> grant select on v$kzsro to scott
2 /
Grant succeeded.
SQL> connect scott
Enter password: *****
Connected.
SQL> select * from sys.x$kzsro;
select * from sys.x$kzsro
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select * from sys.v$kzsro;
ADDR INDX INST_ID KZSROROL
00000000 0 1 1
00000008 1 1 54
00000010 2 1 2
00000018 3 1 3
00000020 4 1 4
00000028 5 1 6
00000030 6 1 20
00000038 7 1 7
00000040 8 1 8
00000048 9 1 9
00000050 10 1 10
ADDR INDX INST_ID KZSROROL
00000058 11 1 13
00000060 12 1 18
00000068 13 1 26
00000070 14 1 32
00000078 15 1 33
00000080 16 1 40
00000088 17 1 42
00000090 18 1 48
00000098 19 1 80
000000A0 20 1 82
21 rows selected.
SQL> SY.
P.S. If you are new to oracle starting with sys owned tables and fixed tables isn't the best choice.
Maybe you are looking for
-
Hi Experts, Am a fresher in SAP and your help would be highly appreciated. The issue is regarding the bank challan update. My client has paid TDS through an intercompany bank account and while bank challan update the intercompany bank is not accepted
-
Create text editable PDF for client to edit in Adobe Reader
I would like to create a PDF from either Illustrator or InDesign so that my client can edit just the text in the document using Adobe Reader as necessary (for flyers and business cards etc). I want to set the file up in Illustrator or InDesign so all
-
XML Publisher 5.6.3 and Bursting
Hi All, According to Tim Dexter's blog "E Business Suite Bursting - 4/5/07; 6:33:55 PM", XMLP 5.6.3 will have a Java Concurrent Program that will invoke the Bursting API out of the box. Obviously negating the need for us to create our own. My client
-
XI to ECC connection issue.
Hi.. I am doing MM-SUS Interface. I am getting the PO Confirmation from SUS-XI-ECC. when getting the PO confirmationm, from XI to ECC connection is not available for some time . After getting the Connection from XI to ECC , the PO Confirmation it wi
-
For new training courses, is there any way to be informed?
Hi, I am looking for something like an auto agent, so when there is new weblogic trainging course available, I could be updated. Is it possible? Or is there any way similar? Thanks