Backup DDL

DB :10.2.0.4
OS AIX 5.3
Hello Folks,
What's the best method to take backup of only DDL for all the objects ?
I was thinking to use expdp with Content=METADATA_ONLY. Do you have any other suggestion ??
Thanks for your time.

What's the best method to take backup of only DDL for all the objects ?1.expdp with content=METADATA_ONLY
or
2.exp with rows=n
or
3.DBMS_METADATA.GET_DDL

Similar Messages

  • ABAP Import Phase DDL Statement Error

    Hi Experts!
    I am installing SAP Netweaver PI 7.3 EHP1 and encountered an error in the ABAP import phase.
    I checked the import monitor logs and found a clue about SAPVIEW.log.
    I have checked the SAPVIEW.log and found out the following:
    ERROR: DDL statement failed
    ( DROP VIEW "APPL_MODS" )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (IMP) INFO: a failed DROP attempt is not necessarily a problem
    (DB) ERROR: DDL statement failed
    ( CREATE VIEW "APPL_MODS" ( "NAME", "TYP", "MEMBER", "DEVCLASS" ) AS SELECT T0001."NAME", T0001."TYP", T0001."MEMBER", T0002."DEVCLASS" FROM "MODSAP" T0001, "MODSAPA" T0002 WHERE T0001."NAME" = T0002."NAME" AND T0002."MIGRATED" <> 'X' )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (DB) INFO: disconnected from DB
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: job finished with 1 error(s)
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: END OF LOG:
    Please help!
    Also please let me know if any further detail is required.
    Regards,
    Ayan

    Gaurav,
    Please find the below pasted trace from SAPVIEW.log
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: START OF LOG: 20140823014048
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: sccsid @(#) $Id: //bas/721_REL/src/R3ld/R3load/R3ldmain.c#8 $ SAP
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: version R7.20/V1.6 [UNICODE]
    Compiled Dec  4 2013 12:54:08
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load -ctf I /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DATA/SAPVIEW.STR /tmp/sapinst_instdir/NW731/DB6/INSTALL/STD/AS/DDLDB6.TPL SAPVIEW.TSK DB6 -l SAPVIEW.log
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: job completed
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: END OF LOG: 20140823014048
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: START OF LOG: 20140823014048
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: sccsid @(#) $Id: //bas/721_REL/src/R3ld/R3load/R3ldmain.c#8 $ SAP
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: version R7.20/V1.6 [UNICODE]
    Compiled Dec  4 2013 12:54:08
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load -i SAPVIEW.cmd -dbcodepage 4102 -l SAPVIEW.log -stop_on_error -loadprocedure fast LOAD:DEF_CRT
    (DB) INFO: connected to DB
    (SQL) INFO: Searching for SQL file SQLFiles.LST
    (SQL) INFO: SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file .SQL
    (SQL) INFO: .SQL not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL not found
    (DB) INFO: /BI0/MHIER_VERS created #20140823014054
    (DB) INFO: /BI0/RALEAFNODCH created #20140823014054
    (DB) INFO: /BI0/RALEAFNODSP created #20140823014054
    (DB) INFO: /BI0/RBUCKET created #20140823014054
    (DB) INFO: /BI0/RCALMONTH created #20140823014054
    (DB) INFO: /BI0/RCALMONTH2 created #20140823014054
    (DB) INFO: /BI0/RCALQUART1 created #20140823014054
    (DB) INFO: /BI0/RCALQUARTER created #20140823014054
    (DB) INFO: /BI0/RCALWEEK created #20140823014054
    (DB) INFO: /BI0/RCALYEAR created #20140823014054
    (DB) INFO: /BI0/RCHNGID created #20140823014054
    (DB) INFO: /BI0/RCURRENCY created #20140823014054
    (DB) INFO: /BI0/RDATE created #20140823014054
    (DB) INFO: /BI0/RFISCPER created #20140823014054
    (DB) INFO: /BI0/RFISCPER3 created #20140823014054
    (DB) INFO: /BI0/RFISCVARNT created #20140823014054
    (DB) INFO: /BI0/RFISCYEAR created #20140823014054
    (DB) INFO: /BI0/RHALFYEAR1 created #20140823014054
    (DB) INFO: /BI0/RHIENM created #20140823014054
    (DB) INFO: /BI0/RHIER_HIEID created #20140823014054
    (DB) INFO: /BI0/RHIER_NODE created #20140823014054
    (DB) INFO: /BI0/RHIER_VERS created #20140823014054
    (DB) INFO: /BI0/RINFOPROV created #20140823014054
    (DB) INFO: /BI0/RIOBJNM created #20140823014054
    (DB) INFO: /BI0/RLANGU created #20140823014054
    (DB) INFO: /BI0/RLOGSYS created #20140823014054
    (DB) INFO: /BI0/RNODEPOSIT created #20140823014054
    (DB) INFO: /BI0/RNORESTNODE created #20140823014054
    (DB) INFO: /BI0/RRATE_TYPE created #20140823014054
    (DB) INFO: /BI0/RRECORDMODE created #20140823014054
    (DB) INFO: /BI0/RRECORDTP created #20140823014054
    (DB) INFO: /BI0/RREQUID created #20140823014054
    (DB) INFO: /BI0/RSIGNCH created #20140823014054
    (DB) INFO: /BI0/RSOURSYSTEM created #20140823014054
    (DB) INFO: /BI0/RTIME created #20140823014054
    (DB) INFO: /BI0/RTXTLG created #20140823014054
    (DB) INFO: /BI0/RTXTMD created #20140823014054
    (DB) INFO: /BI0/RTXTSH created #20140823014054
    (DB) INFO: /BI0/RUNIT created #20140823014054
    (DB) INFO: /BI0/RWEEKDAY1 created #20140823014054
    (DB) INFO: /BI0/ZBUCKET created #20140823014054
    (DB) INFO: /BI0/ZCALMONTH created #20140823014054
    (DB) INFO: /BI0/ZCALMONTH2 created #20140823014054
    (DB) INFO: /BI0/ZDATE created #20140823014054
    (DB) INFO: /BI0/ZFISCPER created #20140823014055
    (DB) INFO: /BI0/ZHALFYEAR1 created #20140823014055
    (DB) INFO: /BI0/ZINFOPROV created #20140823014055
    (DB) INFO: /BI0/ZIOBJNM created #20140823014055
    (DB) INFO: /GC1/VXXX created #20140823014055
    (DB) INFO: /OSP/V_RAUI_CHRD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_CMVD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_CPVD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_CSED created #20140823014055
    (DB) INFO: /OSP/V_RAUI_DCDB created #20140823014055
    (DB) INFO: /OSP/V_RAUI_GRPD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_MTD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_MVDB created #20140823014055
    (DB) INFO: /OSP/V_RAUI_PBDB created #20140823014055
    (DB) INFO: /OSP/V_RAUI_RDDB created #20140823014055
    (DB) INFO: /OSP/V_RAUI_RFCD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_RMTD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_RTDB created #20140823014055
    (DB) INFO: /OSP/V_RAUI_SCD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_SCHD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_SELD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_TMVD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_TPBD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_TPDB created #20140823014055
    (DB) INFO: /OSP/V_RAUI_TPRD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_TRGD created #20140823014055
    (DB) INFO: /OSP/V_RAUI_VARD created #20140823014055
    (DB) INFO: /SAPAPO/GEWICHT created #20140823014055
    (DB) INFO: /SAPAPO/TRENDAM created #20140823014055
    (DB) INFO: /SAPAPO/VWALPROF created #20140823014055
    (DB) INFO: /SAPPO/FULL_HINT created #20140823014055
    (DB) INFO: /SAPPO/V_PPOCMPL created #20140823014055
    (DB) INFO: /SAPPO/V_PPO_UPD created #20140823014055
    (DB) INFO: /SAPTRX/A_CONDF4 created #20140823014055
    (DB) INFO: /SAPTRX/EE_FLDS created #20140823014055
    (DB) INFO: /SAPTRX/MSG_PARA created #20140823014055
    (DB) INFO: /SAPTRX/MSG_PTAB created #20140823014055
    (DB) INFO: /SAPTRX/STR_FLDS created #20140823014055
    (DB) INFO: /SAPTRX/VDASFEV created #20140823014055
    (DB) INFO: /SAPTRX/VDASFPAR created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOMIL created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOPAC created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOPAE created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOPAI created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOPAR created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOTD1 created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOTD2 created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOTDD created #20140823014055
    (DB) INFO: /SAPTRX/VD_AOTYP created #20140823014055
    (DB) INFO: /SAPTRX/VD_ASPAR created #20140823014055
    (DB) INFO: /SAPTRX/VD_CONDL created #20140823014055
    (DB) INFO: /SAPTRX/VD_EVTD1 created #20140823014055
    (DB) INFO: /SAPTRX/VD_EVTD2 created #20140823014055
    (DB) INFO: /SAPTRX/VD_EVTD3 created #20140823014055
    (DB) INFO: /SAPTRX/VD_EVTD4 created #20140823014055
    (DB) INFO: /SAPTRX/V_AODD02 created #20140823014055
    (DB) INFO: /SAPTRX/V_DD03 created #20140823014055
    (DB) INFO: /SAPTRX/V_DD03X created #20140823014055
    (DB) INFO: /SDF/CMO_OBJ_TR created #20140823014055
    (DB) INFO: /SDF/CMO_SMDCMP created #20140823014056
    (DB) INFO: /SDF/CMO_SMDDVC created #20140823014056
    (DB) INFO: /SDF/CMO_UMDCMP created #20140823014056
    (DB) INFO: /SDF/SMODICOMP created #20140823014056
    (DB) INFO: /SDF/SMODIDEVC created #20140823014056
    (DB) INFO: /SDF/UMOD_COMP created #20140823014056
    (DB) INFO: AKB_TRHD_DETAIL created #20140823014056
    (DB) INFO: ALTEXTHIST created #20140823014056
    (DB) INFO: APPL_DEVC created #20140823014056
    (DB) INFO: APPL_DIAL created #20140823014056
    (DB) INFO: APPL_DOMA created #20140823014056
    (DB) INFO: APPL_DTEL created #20140823014056
    (DB) INFO: APPL_ENQU created #20140823014056
    (DB) INFO: APPL_FUGR created #20140823014056
    (DB) INFO: APPL_FUGRG created #20140823014056
    (DB) INFO: APPL_FUNC created #20140823014056
    (DB) INFO: APPL_INDX created #20140823014056
    (DB) INFO: APPL_MCOB created #20140823014056
    (DB) INFO: APPL_MENU created #20140823014056
    (DB) ERROR: DDL statement failed
    ( CREATE VIEW "APPL_MODS" ( "NAME", "TYP", "MEMBER", "DEVCLASS" ) AS SELECT T0001."NAME", T0001."TYP", T0001."MEMBER", T0002."DEVCLASS" FROM "MODSAP" T0001, "MODSAPA" T0002 WHERE T0001."NAME" = T0002."NAME" AND T0002."MIGRATED" <> 'X' )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (DB) INFO: disconnected from DB
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: job finished with 1 error(s)
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: END OF LOG: 20140823014056
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: START OF LOG: 20140823014312
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: sccsid @(#) $Id: //bas/721_REL/src/R3ld/R3load/R3ldmain.c#8 $ SAP
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: version R7.20/V1.6 [UNICODE]
    Compiled Dec  4 2013 12:54:08
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load -i SAPVIEW.cmd -dbcodepage 4102 -l SAPVIEW.log -stop_on_error -loadprocedure fast LOAD:DEF_CRT
    (DB) INFO: connected to DB
    (SQL) INFO: Searching for SQL file SQLFiles.LST
    (SQL) INFO: SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file .SQL
    (SQL) INFO: .SQL not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL not found
    (DB) ERROR: DDL statement failed
    ( DROP VIEW "APPL_MODS" )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (IMP) INFO: a failed DROP attempt is not necessarily a problem
    (DB) ERROR: DDL statement failed
    ( CREATE VIEW "APPL_MODS" ( "NAME", "TYP", "MEMBER", "DEVCLASS" ) AS SELECT T0001."NAME", T0001."TYP", T0001."MEMBER", T0002."DEVCLASS" FROM "MODSAP" T0001, "MODSAPA" T0002 WHERE T0001."NAME" = T0002."NAME" AND T0002."MIGRATED" <> 'X' )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (DB) INFO: disconnected from DB
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: job finished with 1 error(s)
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: END OF LOG: 20140823014318
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: START OF LOG: 20140823015246
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: sccsid @(#) $Id: //bas/721_REL/src/R3ld/R3load/R3ldmain.c#8 $ SAP
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: version R7.20/V1.6 [UNICODE]
    Compiled Dec  4 2013 12:54:08
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load -i SAPVIEW.cmd -dbcodepage 4102 -l SAPVIEW.log -stop_on_error -loadprocedure fast LOAD:DEF_CRT
    (DB) INFO: connected to DB
    (SQL) INFO: Searching for SQL file SQLFiles.LST
    (SQL) INFO: SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file .SQL
    (SQL) INFO: .SQL not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL not found
    (DB) ERROR: DDL statement failed
    ( DROP VIEW "APPL_MODS" )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (IMP) INFO: a failed DROP attempt is not necessarily a problem
    (DB) ERROR: DDL statement failed
    ( CREATE VIEW "APPL_MODS" ( "NAME", "TYP", "MEMBER", "DEVCLASS" ) AS SELECT T0001."NAME", T0001."TYP", T0001."MEMBER", T0002."DEVCLASS" FROM "MODSAP" T0001, "MODSAPA" T0002 WHERE T0001."NAME" = T0002."NAME" AND T0002."MIGRATED" <> 'X' )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (DB) INFO: disconnected from DB
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: job finished with 1 error(s)
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: END OF LOG: 20140823015250
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: START OF LOG: 20140825011924
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: sccsid @(#) $Id: //bas/721_REL/src/R3ld/R3load/R3ldmain.c#8 $ SAP
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: version R7.20/V1.6 [UNICODE]
    Compiled Dec  4 2013 12:54:08
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load -i SAPVIEW.cmd -dbcodepage 4102 -l SAPVIEW.log -stop_on_error -loadprocedure fast LOAD:DEF_CRT
    (DB) INFO: connected to DB
    (SQL) INFO: Searching for SQL file SQLFiles.LST
    (SQL) INFO: SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/SQLFiles.LST not found
    (SQL) INFO: Searching for SQL file .SQL
    (SQL) INFO: .SQL not found
    (SQL) INFO: Searching for SQL file /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL
    (SQL) INFO: /backup/NW7.3_EHP1/ABAP_Inst_EXP/51043228/DATA_UNITS/EXP3/DB/DB6/.SQL not found
    (DB) ERROR: DDL statement failed
    ( DROP VIEW "APPL_MODS" )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (IMP) INFO: a failed DROP attempt is not necessarily a problem
    (DB) ERROR: DDL statement failed
    ( CREATE VIEW "APPL_MODS" ( "NAME", "TYP", "MEMBER", "DEVCLASS" ) AS SELECT T0001."NAME", T0001."TYP", T0001."MEMBER", T0002."DEVCLASS" FROM "MODSAP" T0001, "MODSAPA" T0002 WHERE T0001."NAME" = T0002."NAME" AND T0002."MIGRATED" <> 'X' )
    dsql_exec_immediate returned DS_DBOBJECTUNKNOWN
    (DB) INFO: disconnected from DB
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: job finished with 1 error(s)
    /usr/sap/PID/SYS/exe/uc/rs6000_64/R3load: END OF LOG: 20140825011937
    Please look into this..
    Regards,
    Ayan

  • Any way to recover objects in SYSTEM without a backup?

    All,
    I have a backup of one of our boxes but it is dated - this is a non-production system so, though, I'm sweating, it is not critical.
    Today, one of our guys accidently dropped a bunch of objects in the SYSTEM schema. I have no way of knowing how much damage there has been but users are no longer able to login to the SYSTEM account or user accounts. I am able to get access to SYS.
    Here's my question ...
    [1] Is there any way to rebuild all the objects in the SYSTEM schema only?
    [2] If I can't do that, is there any way to get the data dictionary for a specific user schema? I don't necessarily need the transactional data but having the ddl would be a great help.
    Any help is greatly appreciated!
    Doug

    SQL> select * from recyclebin;
    select * from recyclebin
    1:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00942: table or view does not exist
    I'll take a look at the scripts.The catalog and catproc scripts might be your best bet.
    As far as getting the schema objects out, you can try export or data pump to export only object without data. Unfortunatly, they may not work if they need object owned by SYSTEM that are not present.

  • Oracle SQL template to create re-usable DDL/DML Scripts for Oracle database

    Hi,
    I have a requirement to put together a Oracle SQL template to create re-usable DDL/DML Scripts for Oracle databases.
    Only the Oracle DBA will be running the scripts so permissions is not an issue.
    The workflow for any DDL is as follows:-
    1) New Table
    a. Check if the table exists from the system/admin views.
    b. If table exists then give message "Table Exists"
    c. If table does not exist then execute DDL code
    2) Add Column
    a. Check if Column exists for a given table from system/admin views
    b. If column exists in the specified table,
    b1. backup table.
    b2. alter table to make changes to the column
    b3. verify data or execute dml script convert from backup to the new change.
    c. If Column does not exist
    c1. backup table
    c2. alter table to add column
    c3. execute dml to populate column with default value.
    The DML scripts are for populating base tables with data required for business operations.
    3) Add new row
    a. check if row exists by comparing old values of each column with new values to be added for the new record.
    b. If exists, give message row exists
    c. If not exists, add new record.
    4) Update existing record (We have createtime columns in these tables so changes can be tracked)
    a. check if row exists using primary key.
    b. If exists,
    b1. deactivate the record using the "active" column of the table
    b2. Add new record with the changes required.
    c. If does not exist, add new record with the changes required.
    Could you please help with some ideas which can get this done accurately?
    I have tried several ways, but I am not able to put together something that fulfills all requirements.
    Thank you,

    First let me address your question. (This is the easy part.)
    1. The existence of tables can be found in DBA_TABLES. Query it and and then use conditional logic and execute immediate to process the DDL.
    2. The existence of table columns is found in DBA_TAB_COLUMNS. Query it and then conditionally execute your DDL. You can copy the "before picture" of the table using that same dba view, or even better, use DBMS_METADATA.
    As for your DML scripts, they should be restartable, reversible, and re-run-able. They should "fail gracefully" on error, be written in such a way that they can run twice in a row without creating duplicate changes.
    3. Adding appropriate constraints can prevent invalid duplicate rows. Also, you can usually add to the where clause so that the DML does only what it needs to do without even relying on the constraint (but the constraint is there as a safeguard). Look up the MERGE statement to learn how to do an UPSERT (update/insert), which will let you conditionally "deactivate" (update) or insert a record. Anything that you cannot do in SQL can be done with simple procedural code.
    Now, to the heart of the matter...
    You think I did not understand your requirements?
    Please be respectful of people's comments. Many of us are professionals with decades of experience working with databases and Oracle technology. We volunteer our valuable time and knowledge here for free. It is extremely common for someone to post what they feel is an easy SQL or PL/SQL question without stating the real goal--the business objective. Experienced people will spot that the "wrong question" has been asked, and then cut to the chase.
    We have some good questions for you. Not questions we need answers from, but questions you need to ask yourself and your team. You need to reexamine this post and deduce what those questions are. But I'll give you some hints: Why do you need to do what you are asking? And will this construct you are asking for even solve the root cause of your problems?
    Then ponder the following quotations about asking the right question:
    Good questions outrank easy answers.
    — Paul Samuelson
    The only interesting answers are those which destroy the questions.
    — Susan Sontag
    The scientific mind does not so much provide the right answers as ask the right questions.
    — Claude Levi-Strauss
    You can tell whether a man is clever by his answers. You can tell whether a man is wise by his questions.
    — Mahfouz Naguib
    One hears only those questions for which one is able to find answers.
    — Friedrich Nietzsche
    Be patient towards all that is unresolved in your heart and try to love the questions themselves.
    — Rainer Maria Rilke
    What people think of as the moment of discovery is really the discovery of the question.
    — Jonas Salk
    Judge a man by his questions rather than his answers.
    — Voltaire
    The ability to ask the right question is more than half the battle of finding the answer.
    — Thomas J. Watson

  • SQL Developer export forgot to check to include semicolons in DDL

    Hi,
    I used the SQL Developers Export-function (select tables and right click on them, then select export) to backup tables.
    However, I forgot to set the 'Abschlusszeichen' (sorry for the german). That apparently means my create table statements are not finished by an ';', and they sinmply don't execute using the @script.sql method, or the sql developers import-function.
    One sql-file is 2 GB in size, so I currently have no idea how to edit it and add the semicolons manually. Is there any hope to rescue the data?
    I'm running sql developer 3.2.20.09, oracle Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production as well as Windows 8.1
    For clarification, this is how the create table part looks:
    --  Datei erstellt -Montag-September-30-2013  
    --  DDL for Table ZZ_BEN_0
      CREATE TABLE "PIERUSCHM"."ZZ_BEN_0"
       (    "BENUTZER_ID" NVARCHAR2(30),
        "NAME" NVARCHAR2(30),
        "GUELT_VON" NVARCHAR2(30),
        "GUELT_BIS" NVARCHAR2(30),
        "IST_KORREKTUR" NVARCHAR2(30),
        "IST_HALBTAGSKRAFT" NVARCHAR2(30),
        "LADE_DAT" DATE
    --  DDL for Table ZZ_BEN_1
      CREATE TABLE "PIERUSCHM"."ZZ_BEN_1"
       (    "BENUTZER_ID" NVARCHAR2(30),
        "NAME" NVARCHAR2(30),
        "GUELT_VON" NVARCHAR2(30),
        "GUELT_BIS" NVARCHAR2(30),
        "IST_KORREKTUR" NVARCHAR2(30),
        "IST_HALBTAGSKRAFT" NVARCHAR2(30),
        "LADE_DAT" DATE
    --  DDL for Table ZZ_BEN_10

    Also i'd like to add that the file begins with table definitions but then contains the actual (and randomly generated) data as well.
    You still need to have the file regenerated or you should expect to have problems with ANY method you use to try to automatically 'fix' the problem.
    1. No experienced developer that I have worked with would EVER try to execute such a monolithic script because there is virtually NO chance that a 2 GB script will EVER run successfully without an error of some sort. Objects have to be created in the proper order when dependencies exist between them. For example, you can't create an index if the table hasn't been created yet. There can even be circular references that will prevent all objects from being VALID even if they are created.
    2. There is virtually NO chance that ANY method you use will put terminators in EXACTLY the right place without causing a problem of some sort.
    3. When there is an error the script may continue to try to executed and that usually causes further errors. It also creates garbage objects that are not valid but will keep the script from working correctly the next time since the objects will already exist.
    You need to create a SET of scripts that are of manageable size so that you can control the process of executing them in the proper order.
    If you don't take the time to do that, up front, you are going to wasted a tremendous amount of time when the script fails trying to cut and paste the pieces you need out of that 'master' script.
    There are NO SHORTCUTS: take the time to do it right the first time.

  • How to Generate DDL Statement for PSAPROLL Tablespace on Oracle9i-HP_UX

    Hi,
    I am having SAP R3 46C installed with Oracle 9i on HP_UX 11i system.
    I want to generate required DDL statements for PSAPROLL Tablespace/Rollback Segments as Backup/recovery purpose, before converting it into PSAPUNDO.
    Its easy to find & store required DDL statements using OEM. But, I am not able to locate oemapp  (under $ORACLE_HOME/bin directory) application in the installation.
    The current patch level of installed oracle is
    I want to start OEM in HP_UX system, if it is possible.
    otherwise,
    I want to know the other alternatives to generate the required DDL statements.
    Thanks in advance.
    Regards,
    Bhavik G. Shroff

    Hi Stefan,
    On windows Platform it is very easy to get DDL info for any object of database.
    But, I was not able to start OEM in HP_UX system.
    I have done my job complete using this good package of Oracle9i, in this way.
    SQL> SET heading off
    SQL> SET long 10000
    SQL> SET pages 100
    SQL> SELECT dbms_metadata.get_ddl(u2019TABLESPACEu2019,'PSAPROLLu2019)
    FROM DBA_TABLESPACES;
    O/P:
    CREATE TABLESPACE "PSAPROLL" DATAFILE
    '/oracle/RQ1/sapdata1/roll_1/roll.data1' SIZE 681574400 REUSE ,
    '/oracle/RQ1/sapdata1/roll_2/roll.data2' SIZE 3145719808 REUSE
    LOGGING ONLINE PERMANENT BLOCKSIZE 8192
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1048576 SEGMENT SPACE MANAGEMENT MANUAL
    SQL> SELECT dbms_metadata.get_ddl(u2019ROLLBACK_SEGMENTu2019,'PRS_0u2019)
    FROM DBA_SEGMENTS;
    CREATE ROLLBACK SEGMENT "PRS_0" TABLESPACE "PSAPROLL"
    STORAGE(INITIAL 10485760 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 32765
    Also follow this useful links:
    [DDL Generation--Oracle's Answer to Save You Time and Money|http://www.dbasupport.com/oracle/ora9i/DDLgen2.shtml]
    [DDL Generation--Oracle's Answer to Save You Time and Money|http://www.dbasupport.com/oracle/ora9i/DDLgen3.shtml]
    Good.
    Thanks a lot.

  • Generate DDL - change is a new column and I want to generate a alter table

    Morning all,
    I have searched and looked all over the data modeler and I cannot find this option ... yet I did find it easily in Designer.
    I hope you can help me.
    SQL Developer Data Modeler v3.0.0.665.
    I have added a new column to a table and when I generate the DDL I would like it to be an alter table add column rather than a create table.
    This feature is in Designer so I would think it would be in data modeler.
    Just incase my description is not clear here are the high level steps so it is clear.
    1. create the logical model
    2. create the relational from the logical.
    3. create the physical from the relational.
    4. generate DDL and run in database. At this point I go to production with my system and all is well.
    5. At this point we have an enhancement request. For the model it will be a new column in a table.
    6. update logical model.
    7. update relational from logical
    8. update physical from relational
    9. generate DDL. Here I would like to have the generate be aware the it needs only to generate an alter table add column and not create the table.
    This is something I do alot as all my models are in production. I cannot find how to do this step of getting data modeler to generate the alter.
    Designer does this exceptionally well.
    Quite often it is more than a single column. The changes can be many and made over time and at the time of generating the DDL you may not recall every single change you made. To have the tool discover those changes for you and generate the appropriate DDL is a feature I regard as very high.
    I hope this is clear and you can help me.
    Cheers
    Chris ....

    Hi Chris,
    you need to compare your model against database - import from database into same relational model and use "swap target" option - in this case "alter statements" against database will be generated.
    You can look at demonstrations here http://www.oracle.com/technetwork/developer-tools/datamodeler/demonstrations-224554.html
    Probably this particular one will be most helpful http://download.oracle.com/otn_hosted_doc/sqldev/importddl/importddl.html
    Soon or later your changes will require table to be recreated and you'll need to backup your data - you can consider usage of "Advanced DDL" option - script will be generated that will unload the content of your table (including LOBs) to file system accessible from database and restore it after changes. Well don't try it directly on production system :).
    Philip

  • Calling a DDL in a procedure

    I am setting up a job in the database (81741 on windows2000)as:
    insert into orig_backup select * from orig;
    truncate table orig;
    Db wouldn't let me do this 'cause truncate is a DDL. And, delete (instead of truncate) wouldn't help me much because it just deletes the row, not shrink the size of the orig table. My main aim is to shrink the size of the table by moving the data to backup table & then truncate.
    Any inputs would be appreciated.
    Thanks.

    You can use the Oracle supplied package DBMS_SQL to parse and run just about any DDL sql, such as creating, dropping and truncating tables. Here is a an example which I just used succesfully on Oracle 8.0.6...
    CREATE OR REPLACE PROCEDURE TRUNCATE_TABLES (TABLE_NAME IN VARCHAR)
    -- This function truncates the table with the name passed in.
    -- Make sure that the variable to take in the return value is long enough to do so
    IS
    cur_id INTEGER;
    rows_processed NUMBER;
    BEGIN
    cur_id := dbms_sql.OPEN_CURSOR;
    dbms_sql.PARSE(cur_id, 'TRUNCATE TABLE ' || TABLE_NAME, dbms_sql.native);
    rows_processed := dbms_sql.execute(cur_id);
    dbms_sql.CLOSE_CURSOR(cur_id);
    dbms_output.put_line('Truncated ' || TABLE_NAME);
    EXCEPTION
    WHEN OTHERS
    THEN
    dbms_sql.CLOSE_CURSOR(cur_id);
    dbms_output.put_line('Failed to truncate ' || TABLE_NAME);
    END;

  • How to know which user has executed which ddl statement

    Hi All,
    Last week i faced some problem, like some one has truncated the table , so luckily i have the schema backup so i restored it till the last backup taken.
    but i want to know who has executed this ddl statement.
    i know there are some utilities are avaible with oracle, so please describe me the easiest and quickest way to get this.
    Regards
    Asif

    In order of descending simplicity
    - Use the principle of least privilege to restrict the privileges users have in the database to ensure that they cannot do things like truncating a table
    - Enable auditing of potentially problematic statements. This has to be done before the damage is done, though
    - Create a DDL trigger that logs when users issue DDL. This also must be done before the damage is done.
    - Use LogMiner to go through the archived log files that were generated at the time the table was truncated. This assumes that the database is in ARCHIVELOG mode and that you have the archived logs from last week. Using LogMiner to track down the culprit is also likely to be relatively time-intensive
    Justin

  • Need info on DDL and Data propagation

    Greetings Guys,
         I have a requirement for moving data and DDL from lower environment to production, this would be done on some frequency say weekly for deploying the latest code for the application, I would like to know what are the possible techniques
    and tools available in SQL Server. I am not sure if I can set up replication for all the tables in the database because in case of restoring the database from backup I suspect fixing the replication problem itself will become a big thing. Currently we use
    merge statements for moving data between the environments and redgate sql compare API for moving DDLs. Let me know if there are any other ways to do this. 
    Environment:
    SQL SERVER 2008 R2
    WINDOWS 2008 R2
    With regards,
    Gopinath.
    With regards, Gopinath.

    You can also create a SSDT database project and publish the changes using it
    see
    http://www.techrepublic.com/blog/data-center/auto-deploy-and-version-your-sql-server-database-with-ssdt/
    http://blogs.msdn.com/b/ssdt/archive/2013/08/12/optimizing-scripts-for-faster-incremental-deployment.aspx
    http://schottsql.blogspot.in/2012/11/ssdt-publishing-your-project.html
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Backup notification issue 11GR2 RAC on Windows

    Hi all
    I have recently set up a full and incremental backup scheduled jobs. I can see in OEM that these have a Target Type of Cluster Database. I was wanting to set up notifications against these jobs, so went into preferences > notifications > rules and created a new rule. In here I selected the type as Cluster Database and went to the jobs tab, upon where I could see no jobs appearing.
    I thought that was strange so I tried to query against the mgmt$jobs view to see if I could see my jobs, but I got an error of:
    ORA-01722: invalid number
    01722. 00000 - "invalid number"
    *Cause:   
    *Action:
    I am using the latest version of SQL developer but also get the same at the command line.
    I did a bit of research against the error and found that this was a bug in 10g but was fixed in R5 I believe. I am wondering if the jobs are not appearing in the notifications due to it not being able to query this view? Also is anyone else experiencing this issue?
    Thanks
    Edited by: Kwisatz78 on Jul 14, 2011 7:43 AM

    Hello,
    I thought that was strange so I tried to query against the mgmt$jobs view to see if I could see my jobs, but I got an error of:
    ORA-01722: invalid number
    01722. 00000 - "invalid number"
    *Cause:
    *Action:
    I am using the latest version of SQL developer but also get the same at the command line. I'm just talking about the View MGMT$JOBS which gives the error ORA-01722 when you query it, and thus preventing you from checking the Jobs.
    This View is just a Query that you may extract DDL from SQL Developer.
    The Note of MOS gives the part of the code which doesn't work. So, it may help to create another Query which could let you check the Jobs, and store it as a User-defined Report in SQL Developer.
    It's just a suggestion.
    Best regards,
    Jean-Valentin

  • Backup controlfile from O/S command

    Is it possible that backup controlfile by OS level command without issue oracle DDL command such as "alter database backup controlfile to ..." ?

    The control file is a binary file that is constantly being written to when the database is open. If the database is open, then you should only backup the control file with RMAN or the 'alter database ..." commands. If the database is shut down, then you can use the OS command to backup the control file.
    Thanks, Tammy

  • Hot backup while using oracle streams

    Hi All,
    Stream replication is enabled for some tables in two way .for both DML and DDL operations ...
    Now we are process of taking the hotbackup of the database.
    Will the Alter tablespace begin backup will effect anything
    or do we have to add dbms_streams_adm.set_tag.
    And what else we need to add for the capture process or need to write some negative global rule for capture process.
    If anybody is using the streams and running hotbackup ,please Share the example ..
    Thanks In Advance for your reply ASAP

    If you use RMAN to do the hotbackup, you do not need to do "Alter tablespace begin backup" (assumes your database is in archivelog mode)

  • Log Switch during RMAN backup

    I have seen in many RMAN backup scripts that a manual log switching is performed in first line of the script? What is it purpose, just to write changes needed to reconstruct the DML/DDL statements to online redo logfiles and start the archiving process if db is running in archive log mode?

    918868 wrote:
    I have seen in many RMAN backup scripts that a manual log switching is performed in first line of the script? What is it purpose, just to write changes needed to reconstruct the DML/DDL statements to online redo logfiles and start the archiving process if db is running in archive log mode?That could be the only reason but even that is not needed as RMAN would do a log switch automatically to push the current redo log file to make it's archive log and include it in the backup.
    Aman....

  • CAN WE RECOVER A DDL STATEMENT OR DATA

    HI,
    CAN ANYBODY TELL ME HOW TO RECOVER A DDL STATEMENT OR DROPPED TABLE OR COMMITTED DATA....
    I HAVE TRIED A LOT BUT I COULDN'T ABLE TO RECOVER THE DATA . IWAS USING INCOMPLETE MEDIA RECOVERY.EVEN THE STATEMNET WAS SUCCESSFUL BUT WHEN ICHECK OUT WHETHER I RECOVERED OR NOT THE ANSWER IS NOT.EVEN THOUGH I HAVE THE LATEST ATCHIVED LOGS.
    PLS HELP ME....

    how you are perofrming incomplete recovery paste the workaround like here to proof you are not getting revert back table like that.
    RMAN> backup database
    2> ;
    SQL> conn scott/tiger
    Connected.
    SQL> create table x as select * from all_objects
      2  /
    Table created.
    SQL> conn sys/sys as sysdba
    Connected.
    SQL> alter system switch logfile
      2  /
    System altered.
    SQL> conn scott/tiger
    Connected.
    SQL> select to_char(sysdate,'DD-MM-YYYY HH24:MI:SS')
      2    from dual
      3  /
    TO_CHAR(SYSDATE,'DD
    12-05-2008 17:23:59
    SQL> drop table x
      2  /
    Table dropped.
    RMAN> run
    2> {
    3>  shutdown immediate;
    4>  startup mount;
    5>  set until time "to_date('12-05-2008 17:23:59','DD-MM-YYYY HH24:MI:SS')";
    6>  restore database;
    7>  recover database;
    8> }
    RMAN> alter database open resetlogs
    2> ;
    database opened
    SQL> show user
    USER is "SCOTT"
    SQL> desc x
    Name                                      Null?    Type
    OWNER                                              VARCHAR2(30)
    OBJECT_NAME                                        VARCHAR2(30)
    SUBOBJECT_NAME                                     VARCHAR2(30)
    OBJECT_ID                                          NUMBER
    DATA_OBJECT_ID                                     NUMBER
    OBJECT_TYPE                                        VARCHAR2(19)
    CREATED                                            DATE
    LAST_DDL_TIME                                      DATE
    TIMESTAMP                                          VARCHAR2(19)
    STATUS                                             VARCHAR2(7)
    TEMPORARY                                          VARCHAR2(1)
    GENERATED                                          VARCHAR2(1)
    SECONDARY                                          VARCHAR2(1)
    SQL> Khurram

Maybe you are looking for

  • Update maintenance view data by FM .

    Hi friends,          I want to update Maintenance view data  not by using sm30,sm34,transactions . i want to update by FM . i will pass the data and view name  so that it should update the data in views( and corresponding tables ) . and  we need thes

  • How do I get the music from the phone back to the computer?

    Lost entire ITunes on my computer had to reinstall.  All music is still on my IPhone 3GS but I can't get it back into ITunes on the computer.  Had a lot of CD's from my CD collection.  Don't wanna click the wrong thing afraid I will loose all of it!

  • JDBC Sender and Receiver

    Hello: I have an scenario FILE-to-FILE and it's working ok. So now I want to change it into FILE-to-JDBC so I thought just to change the Communication Channel RECEIVER, instead of file, use JDBC adapter. I've read this blog <a href="/people/sap.user7

  • PDF files scanned at B & W print to an HP 2055dn Postscript printer as white on black

    PDF files scanned at B & W print to an HP 2055dn Postscript printer as white on black. Non postscript printers print the same file correctly. This is the case with three different scanners. Scanning the same sheets into greyscale prints fine with all

  • Images' files don't display in order?

    Hi, I uploaded images from my Canon and the thumbnails don't organize in order but mixing up the older and newer images.  I kind of expect they should be in numerical order.  How to fix this?  Thanks.