SQL & PL/SQL :: How To Check System Views When Create Table Privilege
Jan 4, 2013
I'm new to oracle DB,i've been given access to Oracle as a user. when i try to create a table under my default schema i get the insufficient privileges error.
How do i check from the system views if i have create table privilege under my own schema?
I have 20 or so tables, partitioned by range, indexed etc...soon these tables will be gone and i have to recreate them with the same definitions. I have to write a procedure(or script, it's up to me) which must:
1- check if table A exist in the scheme 2- if not create the table as the original ddl.
for 1 i've used smth like ------------------------- SELECT count(*) INTO a FROM user_objects WHERE object_name='A';
[code]....
so my question is how and what is the cleanest and fastest way to do this.? it's a lot DDLs,
I am removing sal column from table tab_emp; i want to check whether any materialized view or view using this column by querying using data dictionary :- if i use like condition against query column of all_mviews it is throwing error sicne it is long data type. is there a way to search it without creating any function and use it in a query.
I have 2 users in my oracle DB. They both have very different privileges and they both have too many different privileges. Now I want to grant user 1 the same privilege that user2 has while user1 keeps his existing privilege. How can this be done without manually comparing their difference and manually grant user 1 each privilege that he doesn't have? Or second option, can I override user 1's privilege with user 2's privileges?
I'm trying to create a materialized view on a database on my local laptop, and when I execute the create it fails with the following error: ORA-06550: line 1, column 60:
PLS-00103: Encountered the symbol ".16" when expecting one of the following: . ( @ ; with the table name highlighted.
CREATE MATERIALIZED VIEW Schema.MV (col1, col2,) BUILD IMMEDIATE REFRESH Complete ON DEMAND WITH PRIMARY KEY AS select EXTRACTVALUE (rawxml, '/Test.class/@ID') AS col1, EXTRACTVALUE (rawxml, '/test.class/test.attribute.name') AS col2, from RAWXML where Type = 'test.classvalue';
The query on its own though executes fine.
select EXTRACTVALUE (rawxml, '/Test.class/@ID') AS col1, EXTRACTVALUE (rawxml, '/test.class/test.attribute.name') AS col2, from RAWXML where Type = 'test.classvalue';
Is there something wrong with the table setup? I have tried creating a public synonym and still the error comes up.
There two users a and b,and the table b.test_part.And one procedure under a ,text like below:
create or replace procedure a.sp_test is vs_sqls varchar2(32767); begin vs_sqls:='alter table b.test_part truncate partition p_day'; execute immediate vs_sqls; end;
now,i have to grant drop any table to a.but in fact,i prefer to drop the special one table "b.test_partany" rather than any other table.how ? no by trigger!
I want to create a materialized view for the last 10 days with the enable query rewrite option.
e.g. i want to create a view with the list of employees who joined the company in the last 10 days.
create materialized view M_Employee refresh fast on commit enable query rewrite as select joining_date , name from employee where joining_datde < TRUNC(sysdate) - 10
I seem to get the error SQL Error: ORA-30353: expression not supported for query rewrite
30353. 00000 - "expression not supported for query rewrite" *Cause: The select clause referenced UID, USER, ROWNUM, SYSDATE.
This error is self explanatory , but is there any work around to have a query liek this to list the employees based on sysdate.
I'm trying to install Oracle10g in win7 Home premium. It is installing but problem is when installation process trying to create database on the system, a message is appearing which telling that ORA-12546:TNS:permission denied.
We are setting RAC between two machines(Desktop PC connected wirth LAN ....have storage Local to them and no Shared storage..Only NFS).We have shared the mount point by NFS.We do not have any shared storage but we need to share the RAW files to setup the OCR and VOTING DISKS.
The problem is:
1. We need to keep the RAW devices for OCR and voting disk common to the machines (Desktop PC..both Linux OELU5). I am able to create the raw file systems but that is local to one machine. I am not able to understand how to share the raw devices between two machines.
2. Tried to use ISCSI utility but that did not work. (How_to_use_iSCSI_Targets_on_Linux)
Scenario : One Machine has 500 GB Storage. Second machine has 80 GB Storage. Made private and public networks(Used two Network cards in LAN). All are communicating.
Problem : Need to make the storage 300GB (Out of 500 GB) of Machine 1 as shared storage. How can we do that? (Do we need any virtual software...ex .. vmware for that?)
How can I create a trigger to check if synonym already exists in db and if exists then don't create synonym.
my work: ( this is just like an outline i prepared)
select * from all_synonyms; declare s_exists number; begin -- check whether the synonym exists select 1 into s_exists from all_synonyms; -- an error gets raise if it doesn't exception when no_data_found then -- DDL has to be done inside execute immediate ' create or replace synonym'; end; /
I have a created a materialized view which is based on a view on remote database. Now how do I refresh the view.
Materialized view is created by
CREATE MATERIALIZED VIEW mv_employee_name AS SELECT EMPLID, EMPL_NAME FROM VEMPDATA@REMOTEDB WHERE REGION = 'US';
I am wondering how the refersh happens or how do I specify the refresh clause.REFRESH FAST option is looking for VIEW LOG on the master table but in this case its a remote view, so I cannot create any object on remote db.
I have created materialized view which hold few million records.Should i have to analyse the view and compute the statistics after i create the materialized view?
Also,just in case i need further indexing,should i have to take the statistics for the table again??
I have to convert some existing materialized views (fast refresh) to partition materialized views.
Database version is oracle 10.1.0.4. I have decided to use on prebuilt table option to do the partitioning as it minimizes the time to transfer from the master site.
1) stop replication 1) create interim tables with similar structure as the materialized views 2) transfer all data from the materialized views to the interim tables 4) script out the materialized views structure and add in on prebuilt table option in the scripts 5) drop the materialized views 6) rename the interim tables with the same name as the materialized views 7) run the scripts to create the materialized views with on prebuilt table option 8) refresh the newly created materialized views -> it should take a short time since I am using on prebuilt table option
But I am facing one major issue. That is if I drop the materialized views, the materialized view logs of the master tables are purged. When the materialized views are refreshed fast, there are some data missing. the data that are purged out when the materialized view are dropped.
Do you happen to know other ways that existing materialized views can be converted to partitioned materialized views? Do you have any workaround to prevent the materialized view logs from being purged?