I want to delete the duplicate rows in a table. there is no column which can be used to differentiate between the rows.
SELECT column_name1
FROM [table]
WHERE column_name2 = cond
GROUP BY column_name1
HAVING COUNT (column_name1) > 1
from the above query i can find the duplication in the table and can delete through it. But what i want one record of each duplication not to be deleted most probably the record added last to the table.
I try to duplicate a database on Host B with ORACLE_SID=hostb from an offline full backup plus archive log backup was taken from Host A with ORACLE_SID=hosta. Host A and Host B cannot communicate between them.
I don�t want to make a full restore of database, i want to make a duplicate database from that offline backup.
I need the duplicate database must be run with different ORACLE_SID and different DBID.
PD: I was reading the Oracle Documentation about that but i can�t find a step by step guide to follow.
Environment
Oracle 11gr2 with a Linux OS on x86_64 on host A and host B.
- Version: Oracle 11gR2 (64 bit) - OS: Windows Server 2008 - File System: ASM (with GRID Infrastructure)
Both instances are virtually identical... Same directory structures, same SYS passwords. The only thing that differs is the instance name (one is ABC, the other is XYZ).
Now, both databases are up and running, both have users on them, and both can accept remote connections. What I want to do is set up a very simple 'copy' system so that everything can be extracted (via RMAN) from the first database, and replace the database on the second. (Then, the user can log into XYZ with the same usernames/passwords they used on ABC.)
Here's what I'm doing so far:
On the 'source' database (ABC) I run RMAN as follows: rman target / nocatalog configure controlfile autobackup format for device type disk to 'C:\temp\CF_%F'; configure channel device type disk format 'C:\temp\bkp_%U'; run {backup database; backup archivelog all; }
Now, I'm not completely sure of what to do on the 'destination' database. I've seen multiple web pages with instructions that require the creation of a new instance using 'oradim' and the creation of a new password with 'orapwd'. However, is that necessary if I have the same sys password on both databases, and I want to use the same XYZ instance name on the destination machine?
Would it work if I used 'delete database' on the destination, and then used the RMAN 'Duplicate database to XYZ backup location 'C:\temp\'? Or does it HAVE to be a new instance created with oradim?
And if I DO have to use oradim to create a new instance, will the data be accessible through XYZ too?
I use the following script to duplicate a target to an auxiliary instance. This works fine once.
However if I run it a second time it will create a new set of datafiles leaving the original files in place taking up space.
Is there something that I can put in the script that will stop this happening.
I know I could probably put a "set newname for datafile" clause for each datafile in the target database, but this makes the script over complicated and I would like to keep it as generic as possible.
DUPLICATE TARGET DATABASE TO dupdb until time "TO_DATE('07/06/2011 07:25','DD/MM/YYYY HH24:MI')" LOGFILE GROUP 1 ('+DATA') SIZE 50M, GROUP 2 ('+DATA') SIZE 50M, GROUP 3 ('+DATA') SIZE 50M, GROUP 4 ('+DATA') SIZE 50M;
I'm creating oracle form to allow the user to register a new record in a table, I want to check the duplication in Four tables! which means, the user is able to save the record if it's NOT already registered in the other four tables.By checking P_ID (user parameter). this is my
Declare v_count number; begin select count(*) into v_count ---Checking the 1st table from 1_table where p1_id=:p_id; if (v_count>0) then message ('Duplicate'); [code]....
I'm trying to set up Active Database Duplication between 2 Oracle 11g servers. Each server is identical, with the following characteristics:
- OS: Windows Server 2008 - Version: Ora11R2 (64 bit) - DB Name: orcl - Filesystem: asm (using grid infrastructure)
In addition, each server has been configured with the same sys passwords. The databases themselves were configured during installation (so the setups are about as basic as you can get.)
Now, I've done all sorts of research into how to do this. I've found plenty of good sources, but they seem to all have differences in the details.Here's what I've done so far:
- The TNSNames.ora file on each server has an entry for 'src' and 'dest' (sourca and destination) respectively - I created an entry named 'SID_LIST_LISTENER' in the listner.ora file on the source machine. However, should the sid_name in this entry refer to the source or destination machine? Or does this listener entry belong on the destination machine instead? - A lot of the examples require the setup of a new password file and spfile. Are these entries necessary if I'm using the same file structures/user names/etc. on both servers?
I have done many duplication before in sinlge instance databases using a backup tool and rman catalog. At the moment i was trying to do a RAC database duplication and facing some issues. For this i was doing a testing on my 1-node RAC. Primary and duplicated database is on the same Host and oracle version is 10.2.0.3. I perfomed following steps:
1.Created a DUPL database using DBCA.
2.Created a pfile using spfile.
3.Dropped all the datafiles, controlfiles and redo log files.
4.Started the database in nomount using pfile.
5.Disable cluster related parameters in pfile.
6.Took a full backup of the MAIN database with archivelog on disk.
6.Duplicate the database and it is done successfully.
7.Shutdown the instance and enabled cluster parameters.
8.Start instance using SRVCTL fails with error CRS-0215: Could not start resource 'ora.DUPL.DUPL1.inst'
But if start the instance using sqlplus it comes up nicely. There is not much information in alert log files.
I'm trying to set up active database duplication between 2 Oracle 11g servers.
Both servers were set up with identical configurations (same directory structures, file systems, SIDs, and sys passwords.) Both oracle instances were created at the time of software installation.
Here is how things are configured: - Version: Ora11gR2 - Oracle service name: orcl - File system: ASM - OS: Windows Server 2008
I've done some research and found several sources giving instructions on how to set up active database duplication (including a blog engry by rajabaskar on this site), but each site seems to have different details.
So, here's what I have so far:
- Set up entries in each TNSNames file... each has an entry 'src' and 'dst' (for source and destination)
- A new listener has been added on the source machine
- on the destination machine, run the 'oradm' to create a new SID. However, is this really necessary? Since the service names are already the same
- I'm also supposed to create a password file on the destination machine using orapwd. Again, is this necessary, if I'm using the same passwords on both machines?
Am I on the right track? Should I have created an actual database on the destination machine or should I have started with just the software installed?
I have a form that used to enter new employees , if the employee ID already registerd then the user can ONLY update the information and NOT adding the same ID with new info.
int the ID item in when-validat-item trigger I put this code
begin
IF :SOURCE_CODE IS NULL THEN MESSAGE('PLEASE ENTER SOURCE CODE'); ELSE declare --chg#13-3169 nada
[Code].....
in the save button the code is : commit;
The problem Is : a new record with same ID is inserted every time !! Duplication is happining
I like to duplicate the database DATABASEA to DATABASEB and need to be run in same server. I tried to bounce the listener & databaseb instance multiple times but no lucky.
Step 1 : The instance DATABASEB is in Nomount stage
Step 2 :
==> tnsping DATABASEB TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 11-SEP-2012 07:36:54 Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = client )(PORT = 1521)) (CONNECT_DATA = ( SERVER = DEDICATED) (SERVICE_NAME = DATABASEB)(UR=A))) OK (10 msec)
Step 3 :
==> rman target sys/*****@DATABASEA auxiliary sys/********@DATABASEB Recovery Manager: Release 11.2.0.2.0 - Production on Tue Sep 11 07:37:50 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: DATABASEA (DBID=1723462779) RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
2)select client_id, count(*) from TCLIENT_NOTIFICATION_PACK where client_id=1620560178 group by client_id having count(*) > 40 order by 2 desc client_id count(*) ----------- --------- 16205601785128
3) select client_id,clnt_notification_pack_tid -- bulk collect into v_client_id,v_notif_tid from (select clnt_notification_pack_tid, client_id, clnt_notification_pack_typ_tid, crte_dt,
[code]....
4) Iam using the below proc to delete the rows from table, except the 4 rows returned above
declare v_clnt_notification_pack_tid TCLIENT_NOTIFICATION_PACK.CLNT_NOTIFICATION_PACK_TID%type; tYPE t_client_id is table of TCLIENT_NOTIFICATION_PACK.client_id%type; tYPE t_notif_tid is table of TCLIENT_NOTIFICATION_PACK.clnt_notification_pack_tid%type; v_client_id t_client_id; v_notif_tid t_notif_tid;
[code]....
5) After running this procedure, i shud see 5124 records, but i see zero records.
I am trying to schedule a store procedure and wanted to remove some data from a table starting from a date and increase the delete by day until a specified date. I wrote the below function; but i can't get to work.
--Start CREATE OR REPLACE FUNCTION remove_DateField return VARCHAR2 IS
i PLS_INTEGER; startdate Date ; endDate Date; currentDate Date; stopDate Date; [code]....
In oracle 9i ........How to delete duplicate entries in a table ?
if suppose in a table named office, one or more entry(row) is repeated more then twice or minimum twice. I need a query to delete the multiple entries ....
Note: --->No constraints applied on the table. --->No Primary Key --->You cannot create any object....that is no view or a duplicate table can be created
I am trying to delete duplicates from table without using rowid.
here is data:-
create table test(col1 number(3),col2 varchar2(20)); insert into test values(100,'rocky'); insert into test values(100,'rocky');
[Code]....
I know i am perfoming dml on view. IT wont allow me to perform DML on view which contain columns with expression. IS there any way to delete duplicates without using rowid?
I have a parent table and child table. I want a row to be deleted from the parent table which is referenced by a child row. Is there a way to achieve this. I dont have permission to re create the table or alter the table using delete cascade option. Is there a way to do it in sql.
SQL> create table t1(a number primary key, b number); SQL> create table t2(c number, d number references t1(a)); SQL> insert into t1 values(1,2); SQL> insert into t1 values(2,3); SQL> insert into t1 values(3,4); SQL> insert into t2 values(10,3); SQL> insert into t2 values(20,2); SQL> delete from t1 where a=2; delete from t1 where a=2 *
ERROR at line 1: ORA-02292: integrity constraint (CISBATCH.SYS_C00763501) violated - child record found
My aim is to delete duplicates out of above data, with the below condtions.
1) first record with value 30 and then with value 0. 2) if there are 3 duplicate records ex: ID is 1 and Group KK, then i have to delete both 30 & 0 qty records. 3) If there are more than 3 duplicate records ex: ID is 3 and Group is AA, the i have to delete all the records with qty value either 30 or 0 and.
I have written a query like below.
SELECT id, unit, RANK () OVER (PARTITION BY id, unit ORDER BY id, unit) num FROM temp;
with the above query, i am unable to mark this dynamic duplications.
I have written this below code. The logic behind the code is, Delete the duplicate record from a table, and delete those record from other 7 table based on the SL_NUMBER.
But Problem is After delete the duplicate record When I have use Below statement
RETURNING SL_NUMBER BULK COLLECT INTO rec_sl_number;
This statement unable to return approx 40 Lakhs SL_NUMBER
DECLARE rec_sl_number dbms_sql.number_table; BEGIN