Prior to 12c, restoring a table if accidently dropped is a cumbersome process via RMAN backups.
The following are the steps are to be performed to do the same 1) Create a auxiliary instance 2) Duplicate the database 3) Manually export the dropped table 4) Import that into original database 5) clean up the auxiliary instance etc. or using TSPITR way.
From 12c, all the above steps are automated, only you have to see the storage provision to hold your auxiliary database etc. So it means you must atleast need the storage space in your db host that original database has.
Connect to the PDB database and create a user and the table as requried
SQL> alter session set container=PDB12C; Session altered. SQL> create user TESTUSER identified by TESTUSER; User created. SQL> SQL> grant dba to TESTUSER; Grant succeeded. SQL> SQL> CREATE TABLESPACE TESTTBS DATAFILE AUTOEXTEND ON MAXSIZE 100M; Tablespace created. SQL> SQL> create table TESTUSER.TEST_TABLE(ID NUMBER) TABLESPACE TESTTBS; Table created. SQL> SQL> insert into TESTUSER.TEST_TABLE values (1); 1 row created. SQL> commit; Commit complete. SQL>
Take a backup of PDB database
Geek DBA12c:/home/oracle>rman Recovery Manager: Release 12.1.0.1.0 - Production on Wed Sep 15 14:43:35 2013 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. RMAN> CONNECT TARGET "sys AS SYSBACKUP"; target database Password: connected to target database: PDB12C (DBID=3257067578) RMAN> BACKUP PLUGGABLE DATABASE PDB12C; Starting backup at 09/15/2013 14:44:36 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=270 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00009 name=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/DATAFILE/sysaux.275.819112037 input datafile file number=00008 name=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/DATAFILE/system.274.819112037 input datafile file number=00012 name=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/DATAFILE/tbs_tst.290.819120929 input datafile file number=00013 name=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/DATAFILE/TESTTBS.287.819121381 input datafile file number=00010 name=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/DATAFILE/users.277.819112065 channel ORA_DISK_1: starting piece 1 at 09/15/2013 14:44:38 channel ORA_DISK_1: finished piece 1 at 09/15/2013 14:44:45 piece handle=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/BACKUPSET/2013_06_26/nnndf0_tag20130626t144437_0.298.819125079 tag=TAG20130626T144437 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07 Finished backup at 09/15/2013 14:44:45 Starting Control File and SPFILE Autobackup at 09/15/2013 14:44:45 piece handle=+DATA/PDB12C/AUTOBACKUP/2013_06_26/s_819125085.301.819125085 comment=NONE Finished Control File and SPFILE Autobackup at 09/15/2013 14:44:46
Drop the table
Geek DBA12c:/home/oracle>sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Wed Sep 15 14:45:21 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> alter session set container=PDB12C; Session altered. SQL> DROP TABLE TESTUSER.TEST_TABLE PURGE; Table dropped. SQL> select * from TESTUSER.TEST_TABLE; select * from TESTUSER.TEST_TABLE * ERROR at line 1: ORA-00942: table or view does not exist SQL> exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options Geek DBA12c:/home/oracle>
Now, Recover the table using new RMAN command recover table
Note: the option used here are 1) until time , you can use SCN or sequence also 2) Auxiliary destination, to mount your temporary database and restore the backups 3) DUMP destination, once the auxiliary database is opened the table can be exported to this dump destination 4) Alternatively you can also specify the notableimport not to import the table. Geek DBA12c:/home/oracle>rman Recovery Manager: Release 12.1.0.1.0 - Production on Wed Sep 15 15:28:04 2013 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. RMAN> CONNECT TARGET "sys AS SYSBACKUP"; target database Password: connected to target database: PDB12C (DBID=3257067578) RMAN> RECOVER TABLE TESTUSER.TEST_REC OF PLUGGABLE DATABASE PDB12C UNTIL TIME "to_date('2013-09-15:14:45:00','YYYY-MM-DD:HH24:MI:SS')" AUXILIARY DESTINATION '/tmp' DATAPUMP DESTINATION '/tmp' DUMP FILE 'tst_dump2.dmp'; Starting recover at 09/15/2013 15:28:37 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=272 device type=DISK RMAN-05026: WARNING: presuming following set of tablespaces applies to specified Point-in-Time List of tablespaces expected to have UNDO segments Tablespace SYSTEM Tablespace UNDOTBS1 Creating automatic instance, with SID='AAxr' initialization parameters used for automatic instance: db_name=PDB12C db_unique_name=AAxr_pitr_PDB12C_PDB12C compatible=12.1.0.0.0 db_block_size=8192 db_files=200 sga_target=1G processes=80 diagnostic_dest=/opt/app/oracle db_create_file_dest=/tmp log_archive_dest_1='location=/tmp' enable_pluggable_database=true _clone_one_pdb_recovery=true #No auxiliary parameter file used starting up automatic instance PDB12C Oracle instance started Total System Global Area 1068937216 bytes Fixed Size 2296576 bytes Variable Size 281019648 bytes Database Buffers 780140544 bytes Redo Buffers 5480448 bytes Automatic instance created contents of Memory Script: { # set requested point in time set until time "to_date('2013-09-15:14:45:00','YYYY-MM-DD:HH24:MI:SS')"; # restore the controlfile restore clone controlfile; # mount the controlfile sql clone 'alter database mount clone database'; # archive current online log sql 'alter system archive log current'; } executing Memory Script executing command: SET until clause Starting restore at 09/15/2013 15:28:50 allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=82 device type=DISK channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: restoring control file channel ORA_AUX_DISK_1: reading from backup piece +DATA/PDB12C/AUTOBACKUP/2013_06_26/s_819125085.301.819125085 channel ORA_AUX_DISK_1: piece handle=+DATA/PDB12C/AUTOBACKUP/2013_06_26/s_819125085.301.819125085 tag=TAG20130626T144445 channel ORA_AUX_DISK_1: restored backup piece 1 channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07 output file name=/tmp/PDB12C/controlfile/o1_mf_8wpj7slx_.ctl Finished restore at 09/15/2013 15:28:58 sql statement: alter database mount clone database sql statement: alter system archive log current contents of Memory Script: { # set requested point in time set until time "to_date('2013-09-15:14:45:00','YYYY-MM-DD:HH24:MI:SS')"; # set destinations for recovery set and auxiliary set datafiles set newname for clone datafile 1 to new; set newname for clone datafile 4 to new; set newname for clone datafile 3 to new; set newname for clone datafile 8 to new; set newname for clone datafile 9 to new; set newname for clone tempfile 1 to new; set newname for clone tempfile 3 to new; # switch all tempfiles switch clone tempfile all; # restore the tablespaces in the recovery set and the auxiliary set restore clone datafile 1, 4, 3, 8, 9; switch clone datafile all; } executing Memory Script executing command: SET until clause executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME renamed tempfile 1 to /tmp/PDB12C/datafile/o1_mf_temp_%u_.tmp in control file renamed tempfile 3 to /tmp/PDB12C/datafile/o1_mf_temp_%u_.tmp in control file Starting restore at 09/15/2013 15:29:04 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00001 to /tmp/PDB12C/datafile/o1_mf_system_%u_.dbf channel ORA_AUX_DISK_1: restoring datafile 00004 to /tmp/PDB12C/datafile/o1_mf_undotbs1_%u_.dbf channel ORA_AUX_DISK_1: restoring datafile 00003 to /tmp/PDB12C/datafile/o1_mf_sysaux_%u_.dbf channel ORA_AUX_DISK_1: reading from backup piece +DATA/PDB12C/BACKUPSET/2013_06_26/nnndf0_tag20130626t123856_0.282.819117537 channel ORA_AUX_DISK_1: piece handle=+DATA/PDB12C/BACKUPSET/2013_06_26/nnndf0_tag20130626t123856_0.282.819117537 tag=TAG20130626T123856 channel ORA_AUX_DISK_1: restored backup piece 1 channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00008 to /tmp/PDB12C/datafile/o1_mf_system_%u_.dbf channel ORA_AUX_DISK_1: restoring datafile 00009 to /tmp/PDB12C/datafile/o1_mf_sysaux_%u_.dbf channel ORA_AUX_DISK_1: reading from backup piece +DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/BACKUPSET/2013_06_26/nnndf0_tag20130626t144437_0.298.819125079 channel ORA_AUX_DISK_1: piece handle=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/BACKUPSET/2013_06_26/nnndf0_tag20130626t144437_0.298.819125079 tag=TAG20130626T144437 channel ORA_AUX_DISK_1: restored backup piece 1 channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07 Finished restore at 09/15/2013 15:29:27 datafile 1 switched to datafile copy input datafile copy RECID=8 STAMP=819127767 file name=/tmp/PDB12C/datafile/o1_mf_system_8wpj8191_.dbf datafile 4 switched to datafile copy input datafile copy RECID=9 STAMP=819127767 file name=/tmp/PDB12C/datafile/o1_mf_undotbs1_8wpj819j_.dbf datafile 3 switched to datafile copy input datafile copy RECID=10 STAMP=819127767 file name=/tmp/PDB12C/datafile/o1_mf_sysaux_8wpj8199_.dbf datafile 8 switched to datafile copy input datafile copy RECID=11 STAMP=819127767 file name=/tmp/PDB12C/datafile/o1_mf_system_8wpj8jf1_.dbf datafile 9 switched to datafile copy input datafile copy RECID=12 STAMP=819127767 file name=/tmp/PDB12C/datafile/o1_mf_sysaux_8wpj8jdt_.dbf contents of Memory Script: { # set requested point in time set until time "to_date('2013-09-15:14:45:00','YYYY-MM-DD:HH24:MI:SS')"; # online the datafiles restored or switched sql clone "alter database datafile 1 online"; sql clone "alter database datafile 4 online"; sql clone "alter database datafile 3 online"; sql clone 'PDB12C' "alter database datafile 8 online"; sql clone 'PDB12C' "alter database datafile 9 online"; # recover and open database read only recover clone database tablespace "SYSTEM", "UNDOTBS1", "SYSAUX", "PDB12C":"SYSTEM", "PDB12C":"SYSAUX"; sql clone 'alter database open read only'; } executing Memory Script executing command: SET until clause sql statement: alter database datafile 1 online sql statement: alter database datafile 4 online sql statement: alter database datafile 3 online sql statement: alter database datafile 8 online sql statement: alter database datafile 9 online Starting recover at 09/15/2013 15:29:28 using channel ORA_AUX_DISK_1 starting media recovery archived log for thread 1 with sequence 15 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_15.279.819117567 archived log for thread 1 with sequence 16 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_16.278.819123911 archived log for thread 1 with sequence 17 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_17.294.819123955 archived log for thread 1 with sequence 18 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_18.296.819123981 archived log for thread 1 with sequence 19 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_19.295.819124251 archived log for thread 1 with sequence 20 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_20.297.819124297 archived log for thread 1 with sequence 21 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_21.299.819124453 archived log for thread 1 with sequence 22 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_22.286.819125213 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_15.279.819117567 thread=1 sequence=15 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_16.278.819123911 thread=1 sequence=16 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_17.294.819123955 thread=1 sequence=17 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_18.296.819123981 thread=1 sequence=18 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_19.295.819124251 thread=1 sequence=19 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_20.297.819124297 thread=1 sequence=20 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_21.299.819124453 thread=1 sequence=21 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_22.286.819125213 thread=1 sequence=22 media recovery complete, elapsed time: 00:00:04 Finished recover at 09/15/2013 15:29:34 sql statement: alter database open read only contents of Memory Script: { sql clone 'alter pluggable database PDB12C open read only'; } executing Memory Script sql statement: alter pluggable database PDB12C open read only contents of Memory Script: { sql clone "create spfile from memory"; shutdown clone immediate; startup clone nomount; sql clone "alter system set control_files = ''/tmp/PDB12C/controlfile/o1_mf_8wpj7slx_.ctl'' comment= ''RMAN set'' scope=spfile"; shutdown clone immediate; startup clone nomount; # mount database sql clone 'alter database mount clone database'; } executing Memory Script sql statement: create spfile from memory database closed database dismounted Oracle instance shut down connected to auxiliary database (not started) Oracle instance started Total System Global Area 1068937216 bytes Fixed Size 2296576 bytes Variable Size 285213952 bytes Database Buffers 775946240 bytes Redo Buffers 5480448 bytes sql statement: alter system set control_files = ''/tmp/PDB12C/controlfile/o1_mf_8wpj7slx_.ctl'' comment= ''RMAN set'' scope=spfile Oracle instance shut down connected to auxiliary database (not started) Oracle instance started Total System Global Area 1068937216 bytes Fixed Size 2296576 bytes Variable Size 285213952 bytes Database Buffers 775946240 bytes Redo Buffers 5480448 bytes sql statement: alter database mount clone database contents of Memory Script: { # set requested point in time set until time "to_date('2013-09-15:14:45:00','YYYY-MM-DD:HH24:MI:SS')"; # set destinations for recovery set and auxiliary set datafiles set newname for datafile 13 to new; # restore the tablespaces in the recovery set and the auxiliary set restore clone datafile 13; switch clone datafile all; } executing Memory Script executing command: SET until clause executing command: SET NEWNAME Starting restore at 09/15/2013 15:30:08 allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=15 device type=DISK channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00013 to /tmp/AAXR_PITR_PDB12C_PDB12C/datafile/o1_mf_TESTTBS_%u_.dbf channel ORA_AUX_DISK_1: reading from backup piece +DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/BACKUPSET/2013_06_26/nnndf0_tag20130626t144437_0.298.819125079 channel ORA_AUX_DISK_1: piece handle=+DATA/PDB12C/E011004AA64F0CF9E0433514DA0A096B/BACKUPSET/2013_06_26/nnndf0_tag20130626t144437_0.298.819125079 tag=TAG20130626T144437 channel ORA_AUX_DISK_1: restored backup piece 1 channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 09/15/2013 15:30:10 datafile 13 switched to datafile copy input datafile copy RECID=14 STAMP=819127810 file name=/tmp/AAXR_PITR_PDB12C_PDB12C/datafile/o1_mf_TESTTBS_8wpjb1c3_.dbf contents of Memory Script: { # set requested point in time set until time "to_date('2013-09-15:14:45:00','YYYY-MM-DD:HH24:MI:SS')"; # online the datafiles restored or switched sql clone 'PDB12C' "alter database datafile 13 online"; # recover and open resetlogs recover clone database tablespace "PDB12C":"TESTTBS", "SYSTEM", "UNDOTBS1", "SYSAUX", "PDB12C":"SYSTEM", "PDB12C":"SYSAUX" delete archivelog; alter clone database open resetlogs; } executing Memory Script executing command: SET until clause sql statement: alter database datafile 13 online Starting recover at 09/15/2013 15:30:10 using channel ORA_AUX_DISK_1 starting media recovery archived log for thread 1 with sequence 22 is already on disk as file +DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_22.286.819125213 archived log file name=+DATA/PDB12C/ARCHIVELOG/2013_06_26/thread_1_seq_22.286.819125213 thread=1 sequence=22 media recovery complete, elapsed time: 00:00:00 Finished recover at 09/15/2013 15:30:11 database opened contents of Memory Script: { sql clone 'alter pluggable database PDB12C open'; } executing Memory Script sql statement: alter pluggable database PDB12C open contents of Memory Script: { # create directory for datapump import sql 'PDB12C' "create or replace directory TSPITR_DIROBJ_DPDIR as '' /tmp''"; # create directory for datapump export sql clone 'PDB12C' "create or replace directory TSPITR_DIROBJ_DPDIR as '' /tmp''"; } executing Memory Script sql statement: create or replace directory TSPITR_DIROBJ_DPDIR as ''/tmp'' sql statement: create or replace directory TSPITR_DIROBJ_DPDIR as ''/tmp'' Performing export of tables... EXPDP> Starting "SYS"."TSPITR_EXP_AAxr_wgmi": EXPDP> Estimate in progress using BLOCKS method... EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA EXPDP> Total estimation using BLOCKS method: 64 KB EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE EXPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS EXPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER EXPDP> . . exported "TESTUSER"."TEST_REC" 5.031 KB 1 rows EXPDP> Master table "SYS"."TSPITR_EXP_AAxr_wgmi" successfully loaded/unloaded EXPDP> ****************************************************************************** EXPDP> Dump file set for SYS.TSPITR_EXP_AAxr_wgmi is: EXPDP> /tmp/tst_dump2.dmp EXPDP> Job "SYS"."TSPITR_EXP_AAxr_wgmi" successfully completed at Wed Sep 15 15:30:51 2013 elapsed 0 00:00:22 Export completed contents of Memory Script: { # shutdown clone before import shutdown clone abort } executing Memory Script Oracle instance shut down Performing import of tables... IMPDP> Master table "SYSBACKUP"."TSPITR_IMP_AAxr_yzka" successfully loaded/unloaded IMPDP> Starting "SYSBACKUP"."TSPITR_IMP_AAxr_yzka": IMPDP> Processing object type TABLE_EXPORT/TABLE/TABLE IMPDP> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA IMPDP> . . imported "TESTUSER"."TEST_REC" 5.031 KB 1 rows IMPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS IMPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER IMPDP> Job "SYSBACKUP"."TSPITR_IMP_AAxr_yzka" successfully completed at Wed Sep 15 15:31:23 2013 elapsed 0 00:00:08 Import completed Removing automatic instance Automatic instance removed auxiliary instance file /tmp/PDB12C/datafile/o1_mf_temp_8wpj92wr_.tmp deleted auxiliary instance file /tmp/PDB12C/datafile/o1_mf_temp_8wpj8zhc_.tmp deleted auxiliary instance file /tmp/AAXR_PITR_PDB12C_PDB12C/onlinelog/o1_mf_3_8wpjb4l3_.log deleted auxiliary instance file /tmp/AAXR_PITR_PDB12C_PDB12C/onlinelog/o1_mf_2_8wpjb49s_.log deleted auxiliary instance file /tmp/AAXR_PITR_PDB12C_PDB12C/onlinelog/o1_mf_1_8wpjb434_.log deleted auxiliary instance file /tmp/AAXR_PITR_PDB12C_PDB12C/datafile/o1_mf_TESTTBS_8wpjb1c3_.dbf deleted auxiliary instance file /tmp/PDB12C/datafile/o1_mf_sysaux_8wpj8jdt_.dbf deleted auxiliary instance file /tmp/PDB12C/datafile/o1_mf_system_8wpj8jf1_.dbf deleted auxiliary instance file /tmp/PDB12C/datafile/o1_mf_sysaux_8wpj8199_.dbf deleted auxiliary instance file /tmp/PDB12C/datafile/o1_mf_undotbs1_8wpj819j_.dbf deleted auxiliary instance file /tmp/PDB12C/datafile/o1_mf_system_8wpj8191_.dbf deleted auxiliary instance file /tmp/PDB12C/controlfile/o1_mf_8wpj7slx_.ctl deleted auxiliary instance file tst_dump2.dmp deleted Finished recover at 09/15/2013 15:31:28 RMAN> exit Recovery Manager complete. Geek DBA12c:/home/oracle>sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Wed Sep 15 15:31:36 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> alter session set container=PDB12C; Session altered. SQL> select * from TESTUSER.TEST_TABLE; ID ---------- 1 SQL>
Follow Me!!!