Generate "create table" stmt based on oracle8.1.7 dictionary

I plan to create a DEMO database as a copy of our production database. The storage allocation of the tables should in the DEMO database be much smaller than in the production one. I assume, I have to write an sql-script to export the table definitions from the oracle dictionary (oracle 8.1.7) generating CREATE TABLE statements, which are written to a flat file.
Do you maybe already have a working solution?

you can create a schema, then a dblink to the db you want to copy, set up your default sizings to the size you want in your DEMO database and then
select
'create table '||table_name||' as select * from '||table_name||'@dblink where 1=0;'
from user_tables
save and run the output.
That's the way I do it sometimes. Hope that's handy enough.

Similar Messages

  • Error when generating create table script

    Hi,
    I am trying to generate create table script from an existing table. But I get the following error when doing so,
    ORA-20001: Rem Unable to generate DDL for ORA-06502: PL/SQL: numeric or value error ORA-31605: the following was returned from LpxXSLResetAllVars in routine kuxslResetParams: LPX-1: NULL pointer ORA-22921: length of input buffer is smaller than amount requested .
    Any suggestions on what could be wrong?
    Thanks.
    -B

    this is my bad, i should have updated this thread when we originally troubleshot this issue...
    that error you're getting on htmldb.oracle.com when you try to generate ddl for tables and such is a manifestation of a database bug (#3372908) that's recently been filed. checking the worklog for that bug suggests that those guys are still working out the issue. unfortunately, there's no current work-around on htmldb.oracle.com at the moment. if you want to generate ddl for your objects, you'd have to query the appropriate data dictionary views to get the info you need.
    ...i'll update the htmldb.oracle.com interface in a bit to prevent other users from hitting this issue. so you know, this is only an issue on db versions 9.2.0.3 and 9.2.0.4 running on some platforms and only (as far as i know) those using the AL32UTF8 characterset ...which does include our hosted site for now.
    hope this helps,
    raj

  • Generate create table script?

    If I have a table called "customer" in my oracle database and I want to create the same table on another server. There are any way to generate Create table script to create this table?
    Thank you for your help.
    Regards,
    Kevin

    The documentation for the GET_DDL method in the DBMS_METADATA package is here
    http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96612/d_metad2.htm#1024701
    Basically, you'll want something like
    DECLARE
      l_clob CLOB;
    BEGIN
      l_clob := dbms_metadata.get_ddl( 'TABLE', '<<table name>>');
      <<Do something with the DDL>>
    END;Justin

  • Generating Create Table As Statements

    Hi all - just after a bit of guidance on the following procedure:
    I have identified various columns that need their numeric values upgrading during a cutover. These are stored in the table FOR_UPGRADE which contains the columns TABLE_NAME, COLUMN_NAME, and FACTOR, (the factor is assigned depending on the object type being upgraded and is used in the calculation to create the new 'upgraded' value for that column).
    My problem is that I'm dealing with very large volumes, (TBs) of data and speed is a key factor here. As such I've been asked to upgrade these using create table statements rather than updates, (I believe this was down to being able to turn almost all the logging off during creates, but not updates). So the plan would be to use CTAS a select from the existing table, but apply the upgrades based on the factor during this, then rename these upgraded tables to match the original.
    Now I'd rather not manually create 200+ of these create table statements so I was hoping someone could advise as to how I could use a combination of FOR_UPGRADE table and ALL_TABLE_COLS to dynamically output all the statements required.
    Any help greatly appreciated.

    Write one script manually and use it as a template to create other scripts.
    The easiest way would be loop through FOR_UPGRADE table
    - as soon as the table name changes you know that next statement starts and previous end so you should do something different than for all other rows.
    - for each column generate its part of insert statement and oputput for example using dbms_output.
    Question remains would you really need user/all_tab_columns view because as I've understood you have already all column names in FOR_UPGRADE table.
    In case you need it (for example to check data type or whatever) you can simply join it to your base cursor.
    With one template already created and a bit of PL/SQL it should not be that hard :)
    Gints Plivna
    http://www.gplivna.eu

  • Generate Create Table Statements

    Hi, the problem is:
    My company want to migrate our SQL Server DB to Winwows Azure Server (currently we have our own domain and server), but Azure doesn't support the sentence 'Into' to create temporary tables, so we should replace all 'Into' sentences to corresponding 'Create
    Table' statements. Our system have up 1000 SP's with 'Into' sentences and many SP's have a lot of them.
    My question: is possible generate a 'Create Table' statement automatically, from a 'select into' sentence? i want to know if Management Studio or external tool have this feature o something similar.
    Sorry for my poor english but this is not my native language.
    Thanks!

    Try this one on for size. Run it against your existing DB. It'll give you create scripts you can use on your new DB.
    WITH allCols AS (
    SELECT s.name as sName, o.name AS oName, c.name AS cName, column_id,
    CASE WHEN st.name in ('float','bigint','tinyint','int','smallint','bit','datetime','money','date','datetime2','uniqueidentifier','sysname','geography','geometry') THEN st.name
    WHEN st.name in ('numeric','real') THEN st.name + '('+CAST(c.scale AS VARCHAR)+','+CAST(c.precision AS VARCHAR)+')'
    WHEN st.name in ('varbinary','varchar','binary','char','nchar','nvarchar') THEN st.name + '(' + CAST(ABS(c.max_length) AS VARCHAR) + ')'
    ELSE st.name + ' unknown '
    END + ' '+
    CASE WHEN c.is_identity = 1 THEN 'IDENTITY ' ELSE '' END +
    CASE WHEN c.is_nullable = 0 THEN 'NOT ' ELSE '' END + 'NULL' AS bText,
    f.name AS fileGroupName
    FROM sys.columns c
    INNER JOIN sys.objects o
    ON c.object_id = o.object_id
    AND o.type = 'U'
    INNER JOIN sys.systypes st
    ON c.user_type_id = st.xusertype
    INNER JOIN sys.schemas s
    ON o.schema_id = s.schema_id
    INNER JOIN sys.indexes i
    ON o.object_id = i.object_id
    AND i.index_id = (SELECT MIN(index_id) FROM sys.indexes WHERE object_ID = o.object_id)
    INNER JOIN sys.filegroups f
    ON i.data_space_id = f.data_space_id
    ), rCTE AS (
    SELECT sName, oName, cName, column_id, CAST(cName + ' ' + bText AS VARCHAR(MAX)) as bText, CAST(cName AS VARCHAR(MAX)) AS colList, fileGroupName
    FROM allCols
    WHERE column_id = 1
    UNION ALL
    SELECT r.sName, r.oName, r.cName, c.column_id, CAST(r.bText +', ' + c.cName + ' ' +c.bText AS VARCHAR(MAX)), CAST(r.colList+ ', ' +c.cName AS VARCHAR(MAX)), c.fileGroupName
    FROM allCols c
    INNER JOIN rCTE r
    ON c.oName = r.oName
    AND c.column_id - 1 = r.column_id
    ), allIndx AS (
    SELECT 'CREATE '+CASE WHEN is_unique = 1 THEN ' UNIQUE ' ELSE '' END+i.type_desc+' INDEX ['+i.name+'] ON ['+CAST(s.name COLLATE DATABASE_DEFAULT AS NVARCHAR )+'].['+o.name+'] (' as prefix,
    CASE WHEN is_included_column = 0 THEN '['+c.name+'] '+CASE WHEN ic.is_descending_key = 1 THEN 'DESC' ELSE 'ASC' END END As cols,
    CASE WHEN is_included_column = 1 THEN '['+c.name+']'END As incCols,
    ') WITH ('+
    CASE WHEN is_padded = 0 THEN 'PAD_INDEX = OFF,' ELSE 'PAD_INDEX = ON,' END+
    CASE WHEN ignore_dup_key = 0 THEN 'IGNORE_DUP_KEY = OFF,' ELSE 'IGNORE_DUP_KEY = ON,' END+
    CASE WHEN allow_row_locks = 0 THEN 'ALLOW_ROW_LOCKS = OFF,' ELSE 'ALLOW_ROW_LOCKS = ON,' END+
    CASE WHEN allow_page_locks = 0 THEN 'ALLOW_PAGE_LOCKS = OFF' ELSE 'ALLOW_PAGE_LOCKS = ON' END+
    ')' as suffix, index_column_id, key_ordinal, f.name as fileGroupName
    FROM sys.indexes i
    LEFT OUTER JOIN sys.index_columns ic
    ON i.object_id = ic.object_id
    AND i.index_id = ic.index_id
    LEFT OUTER JOIN sys.columns c
    ON ic.object_id = c.object_id
    AND ic.column_id = c.column_id
    INNER JOIN sys.objects o
    ON i.object_id = o.object_id
    AND o.type = 'U'
    AND i.type <> 0
    INNER JOIN sys.schemas s
    ON o.schema_id = s.schema_id
    INNER JOIN sys.filegroups f
    ON i.data_space_id = f.data_space_id
    ), idxrCTE AS (
    SELECT r.prefix, CAST(r.cols AS NVARCHAR(MAX)) AS cols, CAST(r.incCols AS NVARCHAR(MAX)) AS incCols, r.suffix, r.index_column_id, r.key_ordinal, fileGroupName
    FROM allIndx r
    WHERE index_column_id = 1
    UNION ALL
    SELECT o.prefix, COALESCE(r.cols,'') + COALESCE(', '+o.cols,''), COALESCE(r.incCols+', ','') + o.incCols, o.suffix, o.index_column_id, o.key_ordinal, o.fileGroupName
    FROM allIndx o
    INNER JOIN idxrCTE r
    ON o.prefix = r.prefix
    AND o.index_column_id - 1 = r.index_column_id
    SELECT 'CREATE TABLE ['+sName+'].[' + oName + '] ('+bText+') ON [' + fileGroupName +']'
    FROM rCTE r
    WHERE column_id = (SELECT MAX(column_id) FROM rCTE WHERE r.oName = oName)
    UNION ALL
    SELECT prefix + cols + CASE WHEN incCols IS NOT NULL THEN ') INCLUDE ('+incCols ELSE '' END + suffix+' ON [' + fileGroupName +']'
    FROM idxrCTE x
    WHERE index_column_id = (SELECT MAX(index_column_id) FROM idxrCTE WHERE x.prefix = prefix)
    Don't forget to mark helpful posts, and answers. It helps others to find relevant posts to the same question.

  • Issue with Generate Create Script in new ODT 11.1.0.5.10 beta

    So I'm trying to determine if there's an issue with the Generate Create Script option in the new ODT 11.1.0.5.10 beta (when you right click on a table in Server Explorer).
    The SQL create script that it generates lacks the slash between lines. For example I generated the create script for my User table and this is what was generated:
    CREATE TABLE "DEV"."SYSTEM_USER_TB" ("RID" NUMBER(10,0),"USER_NAME" VARCHAR2(256 CHAR),"APPLICATION_RID" NUMBER(10,0),"FIRST_NAME" VARCHAR2(256 CHAR),"LAST_NAME" VARCHAR2(256 CHAR),"PW" VARCHAR2(128 CHAR),"PW_FORMAT" NUMBER,"PW_SALT" VARCHAR2(128 CHAR),"LAST_ACTIVITY_DT" DATE,"EXPIRATION_DT" DATE,"EMAIL" VARCHAR2(256 CHAR),"PW_QUESTION" VARCHAR2(256 CHAR),"PW_ANSWER" VARCHAR2(256 CHAR),"APPROVED_FLG" NUMBER(1,0),"LOCKED_OUT_FLG" NUMBER(1,0),"LAST_LOGIN_DT" DATE,"LAST_PW_CHANGED_DT" DATE,"LAST_LOCKOUT_DT" DATE,"FAILED_PW_ATTEMPT_CNT" NUMBER(6,0),"FAILED_PW_ATTEMPT_WINSTART" DATE,"FAILED_PW_ANSW_ATTEMPT_CNT" NUMBER(8,0),"FAILED_PW_ANSW_ATTEMPT_WINSTRT" DATE,"CREATED_BY_RID" NUMBER(10,0),"CREATED_DT" DATE,"MODIFIED_BY_RID" NUMBER(10,0),"MODIFIED_DT" DATE) TABLESPACE "USERS" PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 131072 MAXEXTENTS 2147483645 MINEXTENTS 1 )
    CREATE UNIQUE INDEX "DEV"."XPKSTAFF" ON "DEV"."SYSTEM_USER_TB" ("RID" ) TABLESPACE "USERS"
    ALTER TABLE "DEV"."SYSTEM_USER_TB" ADD ( CONSTRAINT "SYS_C0033033" PRIMARY KEY ("RID") USING INDEX "DEV"."XPKSTAFF" ENABLE VALIDATE )
    ALTER TABLE "DEV"."SYSTEM_USER_TB" ADD ( CONSTRAINT "SYS_C0033032" CHECK ("RID" IS NOT NULL) ENABLE VALIDATE )
    CREATE TRIGGER "DEV"."SYSTEM_USER_TRG1"
    BEFORE
    INSERT
    ON "DEV"."SYSTEM_USER_TB"
    FOR EACH ROW
    begin
         select SYSTEM_USER_SEQ.nextval into :new.RID from dual;
    end;
    In my new Oracle Database Project, if I right click on the script and select "Run" or "Run On", the script fails saying:
    Connected.
    CREATE UNIQUE INDEX "DEV"."XPKSTAFF" ON "DEV"."SYSTEM_USER_TB" ("RID" ) TABLESPACE "USERS"
    ERROR at line 2:
    ORA-00922: missing or invalid option
    If I then add, a slash between lines, the script runs successfully and creates the table/trigger and whatever else just fine. For example, I changed the above generated code to look as follows:
    CREATE TABLE "DEV"."SYSTEM_USER_TB" ("RID" NUMBER(10,0),"USER_NAME" VARCHAR2(256 CHAR),"APPLICATION_RID" NUMBER(10,0),"FIRST_NAME" VARCHAR2(256 CHAR),"LAST_NAME" VARCHAR2(256 CHAR),"PW" VARCHAR2(128 CHAR),"PW_FORMAT" NUMBER,"PW_SALT" VARCHAR2(128 CHAR),"LAST_ACTIVITY_DT" DATE,"EXPIRATION_DT" DATE,"EMAIL" VARCHAR2(256 CHAR),"PW_QUESTION" VARCHAR2(256 CHAR),"PW_ANSWER" VARCHAR2(256 CHAR),"APPROVED_FLG" NUMBER(1,0),"LOCKED_OUT_FLG" NUMBER(1,0),"LAST_LOGIN_DT" DATE,"LAST_PW_CHANGED_DT" DATE,"LAST_LOCKOUT_DT" DATE,"FAILED_PW_ATTEMPT_CNT" NUMBER(6,0),"FAILED_PW_ATTEMPT_WINSTART" DATE,"FAILED_PW_ANSW_ATTEMPT_CNT" NUMBER(8,0),"FAILED_PW_ANSW_ATTEMPT_WINSTRT" DATE,"CREATED_BY_RID" NUMBER(10,0),"CREATED_DT" DATE,"MODIFIED_BY_RID" NUMBER(10,0),"MODIFIED_DT" DATE) TABLESPACE "USERS" PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 131072 MAXEXTENTS 2147483645 MINEXTENTS 1 )
    CREATE UNIQUE INDEX "DEV"."XPKSTAFF" ON "DEV"."SYSTEM_USER_TB" ("RID" ) TABLESPACE "USERS"
    ALTER TABLE "DEV"."SYSTEM_USER_TB" ADD ( CONSTRAINT "SYS_C0033033" PRIMARY KEY ("RID") USING INDEX "DEV"."XPKSTAFF" ENABLE VALIDATE )
    ALTER TABLE "DEV"."SYSTEM_USER_TB" ADD ( CONSTRAINT "SYS_C0033032" CHECK ("RID" IS NOT NULL) ENABLE VALIDATE )
    CREATE TRIGGER "DEV"."SYSTEM_USER_TRG1"
    BEFORE
    INSERT
    ON "DEV"."SYSTEM_USER_TB"
    FOR EACH ROW
    begin
         select SYSTEM_USER_SEQ.nextval into :new.RID from dual;
    end;
    So, does anyone know if this is a bug? Could I be missing an option to add in the slashes to the generated code? Is there an option to not require the slashes? Could there be another way to execute these scripts?
    Seriously, I think I'm having deja vu from the last release of the Dev Tools: Generate Create Script creates scripts that won't run: ORA-00922: missing..
    ...except this time the documentation says I should be able to use the "Run" and "Run On" commands in the Oracle Database Project (see page 8): http://www.oracle.com/technology/tech/dotnet/pdf/ODT11_whatsnew.pdf
    null

    There are 2 issues in the generated script :
    1. Missing semicolons at the end of the create stmts
    2. Missing slashes
    Both of these fixes will be available in the ODT 11.1 release.

  • How to create dependent LOV based on procedure?

    Hi,
    There are two dependent list of values which i need to create. There is an existing package which returns the list.
    Can you suggest which approach should i use to create these list. Should i execute the procedure in the IMPL class and then bind the list to the transient VO or should i create a table which stores the result of the package and then use query based VO.
    After selecting the list values and clicking on GO it should generate a table too based on that list values selected.
    Which approach is correct? If any other approach then please mention.
    And can you explain how do we bind the list to the transient VO for the first approach if thats the correct approach.
    Thanks in advance

    Hi,
    I would build programmatic view objects for both of them (I usually also prefer having the View Objects based on a custom entity object). The tricky part is that you need to override the default View Criteria behavior (as you have to detect the view criteria, its condition and then map it to the stored procedure call)
    Here are some links that will help:
    http://docs.oracle.com/cd/E21043_01/web.1111/b31974/bcadvvo.htm#sm0341
    http://jobinesh.blogspot.in/2011/06/building-programmatically-managed_25.html
    http://jobinesh.blogspot.in/2011/06/building-programmatically-managed.html
    http://docs.oracle.com/html/B25947_01/bcadveo004.htm#sm0328
    Frank

  • [COMPLEX DATATYPE] - Cannot create table

    Hello
    I tried to create a table with a column based on an complex data type from an Xml Schema.
    1 -- XML Schema
    <?xml version="1.0" encoding="UTF-8"?>
    <!--W3C Schema generated by XMLSpy v2007 sp2 (http://www.altova.com)-->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
         <xs:element name="eventlog">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="event" maxOccurs="unbounded"/>
                   </xs:sequence>
                   <xs:attribute name="lastupdate" use="required">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:enumeration value="12/05/2007 10:24:00"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:attribute>
              </xs:complexType>
         </xs:element>
         <xs:element name="event">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:string">
                             <xs:attribute name="level" use="required">
                                  <xs:simpleType>
                                       <xs:restriction base="xs:string">
                                            <xs:enumeration value="ERROR"/>
                                            <xs:enumeration value="WARNING"/>
                                       </xs:restriction>
                                  </xs:simpleType>
                             </xs:attribute>
                             <xs:attribute name="date" use="required">
                                  <xs:simpleType>
                                       <xs:restriction base="xs:string">
                                            <xs:enumeration value="12/05/2007 10:24:01"/>
                                       </xs:restriction>
                                  </xs:simpleType>
                             </xs:attribute>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
    </xs:schema>
    I've registred schema and create associated type with EM (Enterprise Manager)... OK.
    when i create a table with Oracle SQL Developper ; i get an error 000902 - Invalide DATATYPE
    DDL generated
    CREATE TABLE TABLE1
    COLUMN1 JACQUES.event1461_T
    what's wrong ??
    SQL> select * from v$version ;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE 10.2.0.1.0 Production
    TNS for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL>
    thanks for ur help.
    Message was edited by:
    user574414

    Is this what you are looking to achieve...
    SQL> set echo on
    SQL> spool testcase.log
    SQL> --
    SQL> connect sys/ as sysdba
    Enter password:
    Connected.
    SQL> set define on
    SQL> set timing on
    SQL> --
    SQL> define USERNAME = XDBTEST
    SQL> --
    SQL> def PASSWORD = XDBTEST
    SQL> --
    SQL> def USER_TABLESPACE = USERS
    SQL> --
    SQL> def TEMP_TABLESPACE = TEMP
    SQL> --
    SQL> drop user &USERNAME cascade
      2  /
    old   1: drop user &USERNAME cascade
    new   1: drop user XDBTEST cascade
    User dropped.
    Elapsed: 00:00:01.65
    SQL> grant connect, resource to &USERNAME identified by &PASSWORD
      2  /
    old   1: grant connect, resource to &USERNAME identified by &PASSWORD
    new   1: grant connect, resource to XDBTEST identified by XDBTEST
    Grant succeeded.
    Elapsed: 00:00:00.03
    SQL> grant create any directory, drop any directory to &USERNAME
      2  /
    old   1: grant create any directory, drop any directory to &USERNAME
    new   1: grant create any directory, drop any directory to XDBTEST
    Grant succeeded.
    Elapsed: 00:00:00.00
    SQL> grant alter session, create view to &USERNAME
      2  /
    old   1: grant alter session, create view to &USERNAME
    new   1: grant alter session, create view to XDBTEST
    Grant succeeded.
    Elapsed: 00:00:00.01
    SQL> alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
      2  /
    old   1: alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
    new   1: alter user XDBTEST default tablespace USERS temporary tablespace TEMP
    User altered.
    Elapsed: 00:00:00.00
    SQL> connect &USERNAME/&PASSWORD
    Connected.
    SQL> --
    SQL> alter session set events ='19027 trace name context forever, level 0x800'
      2  /
    Session altered.
    Elapsed: 00:00:00.00
    SQL> var schemaURL varchar2(700)
    SQL> var xmlschema clob
    SQL> --
    SQL> begin
      2    :schemaURL := 'http://xmlns.example.com/xsd/testcase.xsd';
      3    :xmlSchema :=
      4  '<?xml version="1.0" encoding="UTF-8"?>
      5  <!--W3C Schema generated by XMLSpy v2007 sp2 (http://www.altova.com)-->
      6  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xdb:storeVarrayAsTable="true">
      7     <xs:element name="eventlog" xdb:defaultTable="EVENT_LOG_TABLE" xdb:SQLType="EVENT_LOG_T">
      8             <xs:complexType>
      9                     <xs:sequence>
    10                             <xs:element ref="event" maxOccurs="unbounded" xdb:SQLCollType="EVENT_V"/>
    11                     </xs:sequence>
    12                     <xs:attribute name="lastupdate" use="required">
    13                             <xs:simpleType>
    14                                     <xs:restriction base="xs:string">
    15                                             <xs:enumeration value="12/05/2007 10:24:00"/>
    16                                     </xs:restriction>
    17                             </xs:simpleType>
    18                     </xs:attribute>
    19             </xs:complexType>
    20     </xs:element>
    21     <xs:element name="event" xdb:SQLType="EVENT_T">
    22             <xs:complexType>
    23                     <xs:simpleContent>
    24                             <xs:extension base="xs:string">
    25                                     <xs:attribute name="level" use="required">
    26                                             <xs:simpleType>
    27                                                     <xs:restriction base="xs:string">
    28                                                             <xs:enumeration value="ERROR"/>
    29                                                             <xs:enumeration value="WARNING"/>
    30                                                     </xs:restriction>
    31                                             </xs:simpleType>
    32                                     </xs:attribute>
    33                                     <xs:attribute name="date" use="required">
    34                                             <xs:simpleType>
    35                                                     <xs:restriction base="xs:string">
    36                                                             <xs:enumeration value="12/05/2007 10:24:01"/>
    37                                                     </xs:restriction>
    38                                             </xs:simpleType>
    39                                     </xs:attribute>
    40                             </xs:extension>
    41                     </xs:simpleContent>
    42             </xs:complexType>
    43     </xs:element>
    44  </xs:schema>
    45  ';
    46  end;
    47  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    SQL> begin
      2    dbms_xmlschema.registerSchema
      3    (
      4        schemaURL => :schemaURL
      5       ,schemaDoc => :xmlschema
      6       ,local     => TRUE
      7       ,genBean   => false
      8       ,genTypes  => TRUE
      9       ,genTables => TRUE
    10       ,enableHierarchy => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    11    );
    12  end;
    13  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.62
    SQL> desc EVENT_LOG_TABLE
    Name                                      Null?    Type
    TABLE of SYS.XMLTYPE(XMLSchema "http://xmlns.example.com/xsd/testcase.xsd" Element "eventlog") STORAGE Object-relational TYPE "EVENT_LOG_T"
    SQL> --
    SQL> create table RELATIONAL_TABLE
      2  (
      3    EVENT_XML XMLTYPE
      4  )
      5  XMLTYPE EVENT_XML
      6  STORE AS OBJECT RELATIONAL
      7  XMLSCHEMA "http://xmlns.example.com/xsd/testcase.xsd" ELEMENT "eventlog"
      8  VARRAY EVENT_XML."XMLDATA"."event" STORE AS TABLE EVENT_NT
      9  (
    10     (PRIMARY KEY (NESTED_TABLE_ID, SYS_NC_ARRAY_INDEX$))
    11     ORGANIZATION INDEX OVERFLOW
    12  )
    13  /
    Table created.
    Elapsed: 00:00:00.14
    SQL> desc RELATIONAL_TABLE
    Name                                      Null?    Type
    EVENT_XML                                          SYS.XMLTYPE(XMLSchema "http:
                                                        //xmlns.example.com/xsd/test
                                                        case.xsd" Element "eventlog"
                                                        ) STORAGE Object-relational
                                                        TYPE "EVENT_LOG_T"
    SQL>

  • Create table statement from DatabaseMetaData

    Hi Experts,
    Do you know if it's possible to retrieve a create table statement based on a DatabaseMetaData ? (without looping through columnName / Type)
    The idea is to get the DatabaseMetaData from one db server, and execute the Create Table statements on a different db server.
    One obvious solution would be to loop through each table's column name/type and construct the create table statement manually, but I'd like to know whether this can be automated.
    Thanks in advnace,
    Sid

    Bigger databases provide a way to access most schema information from the database itself. That doesn't mean that the jdbc meta information is sufficient nor the best way to do that.
    There are existing tools that allow for migrations as well. Especially if the migration is a one to one mapping.

  • Funktion for "Create Table" Statement

    Dear all,
    I am looking for a function to create a "create table"-SQL statement from an existing SAP Dictionary table. Does anybod y know a abap function to do this. With the SQL Statement I want to create the table in an external Database.
    Kind Regards
    Roman Becker

    Hi please enter db_create* in se37 and pick the desired function needed.
    here are few Function modules for u.
    DB_CREATE_TABLE
    DB_CREATE_TABLE_AS_SELECT
    DB_CREATE_TABLE_AS_SELECT_S
    DB_CREATE_TABLE_S              As DB_CREATE_TABLE, also returns the generated statements
    Satish

  • Database Diff - Generates Create commands only (does not list alter command

    Hi I'm using very latest version of the SQL developer. I was using Database Diff feature and found issue that when there is differences in table (say a addition column exits in one of the database), generate script generates "Create table..."statement. I would rather expect alter table because table exist on both databases but a column was different.
    If I take that script try to create table on the database that has difference, then I would have to lose all data (of course there are alternatives), which is not very efficient script then.
    any ideas if there is an option to show alter commnads?
    thanks.

    The usage of the Diff wizard is not crystal clear.
    If your connections are as user X, but the objects are owned by user Y, they won't be picked up in the target connection. Although you are allowed to pick objects from different users (user Y) on the source side, the comparison seems to be with user X on the target side. For it to work properly, you need to define connections ob both sides as user Y. I haven't really tested this thoroughly because I don't have the change management pack licensed anywhere.

  • Create view structure based on table

    Hi,
    I've got two tables one spec table containing a table num, column name and column length. For example:
    Table num             Column name         Column length
    1                    client_id                          8
    1                    client_name                    15
    1                    client_gender                   1
    2                    order_num                       4
    2                    order_date                       8
    ...and one data table containing multiple records with table num and data for each table num defined in spec table. For example:
    Table num          Data
    1               12345678Ben Anderson   M
    1                75486923Evy Jans       F
    2                123420/05/07
    2                000117/04/07
    ...How can I create a script to create a view for table num '1' based on the strucure defined in the spec table and containing the data of table one that is stored in the data table?
    Thanks.
    Regards,
    Ken

    Assuming that the spec table has a column position column then given these tables:
    SQL> SELECT * FROM tab_spec;
        TAB_ID COL_NAME                          COL_LEN    COL_POS
             1 client_id                               8          1
             1 client_name                            15          2
             1 client_gender                           1          3
             2 order_num                               4          1
             2 order_date                              8          2
    SQL> SELECT * FROM tab_data;
        TAB_ID DATA
             1 12345678Ben Anderson   M
             1 75486923Evy Jans       FA procedure along the lines of:
    CREATE PROCEDURE make_view (p_tab_id IN NUMBER,
                                p_view_name IN VARCHAR2) AS
       l_sql   VARCHAR2(32767);
       l_start NUMBER := 1;
    BEGIN
       l_sql := 'CREATE VIEW '||p_view_name||' AS SELECT ';
       FOR r IN (SELECT col_name, col_len
                 FROM tab_spec
                 WHERE tab_id = p_tab_id
                 ORDER BY col_pos) LOOP
          l_sql:= l_sql||'SUBSTR(data,'||l_start||', '||r.col_len||') '||
                  r.col_name||',';
          l_start := l_start + r.col_len;
       END LOOP;
       l_sql := RTRIM(l_sql, ',')||' FROM tab_data WHERE tab_id = '||p_tab_id;
       EXECUTE IMMEDIATE l_sql;
    END;should do the trick. Note that the owner of the procedure will need to have the CREATE VIEW privilege granted directly and not through a role.
    Having done this, I must reiterate what others have already said. This is a spectacularly bad idea. Rather than creating a view, I would change it to generate a CREATE TABLE statement to dump the data into proper tables.
    John

  • How to create a form based on table@databaselink

    I have created a database link under OracleXe to access an Oracle 9i and it works very well. I can manually access the tables that I like to see. Want to experiment to create a form under HTMLDB based on a table from another database that I have created DataLink to. When I go choose Create Application in HMTLDB and then select Form from page type under table or view I tried to do this tablename@databaselink but it seems it can not find the table this way. Any idea how to do this?
    Thanks

    Mike,
    As I am trying to test and learn more about htmldb I was trying to get some data from oracle 9i to oracleXe, create some forms, reports and etc. At first I tried to use views and forgot to add the primary key, got the error so I posted the message on the board.
    Then I did try out the “long way” creating tables with package and procedure and some other fun stuff to create an application which by the way it worked very well. Then I created some users and changed some password. When I tried again to run the application I start getting “invalid login credentials”. After many attempts finally I went home, as I was driving home I thought about something and at home I tried it.
    I did some testing and noticed if I create a user under admin say userA+passwordA then login with userA+passwordA, create a table and then create an app base on that table and then run the app, with userA+passwordA I can login and app works perfectly. Then I logged out and as admin logged in, changed the userA password to passwordB. I logged out and logged in with userA+passwordB and then when I tried to run the app I get the “invalid login credentials”, when I change the passwordB to passwordA the app will works again. This is suppose to be this way!
    Again thanks to all

  • Problem in creating table maintenance generator for 61 fields in table

    Hi Experts,
    I am facing problem in creating a table maintenance genarator for a ZTABLE which has 61 fields
    i am using below details whicle creating the TMG
    in Maintenance screen
    i am giving maintenance type as two step
    Maint screen no overview screen 2
                              single screen        3
    Dialog Data Transport details
    Recording routine    standard recording routine
    but it is giving following error
    screen SAPL<ZTABLE NAME>    0003 could not be generated
    In DYNPFIELD_ATTR mandatory field LINE has no value
    please let me know how to sort out these errors.
    Is there any limit on the number of fields for which we can create table maintenance generetor.
    Thanks a lot in advance
    Sudipto

    Hi Sudipto,
    There is not limit to the number of fields of the Table which can be used in TMG for generation. But, from the usability point of view this will horrible.
    I created a Z table and added 64 fields and was able to generate the TMG with the screens perfectly. So, I guess there should not be any problem.
    Well, have a look at the Function Group. I guess the screen numbers are already used by some other screens. You can set the system to propose freely available screen numbers from the pool.
    Also, check whether proper authorization is assigned or not.
    And if nothing is working, you can degenerate all the generated screens and then can have a new regeneration of it.
    Hope these tips will work.
    Thanks,
    Samantak

  • How to create table maintenance generator?

    Dear Sir/Madam,
        when i am creating table maintenance generator , it asks for function group
      i give 0MB8 , it says u r going to change function group which does not belongs to u,
    then i created a function group yfg9 and given , it then says yfg9 cannot be processed.
    please telll me how to create the table maintenance generator for maintenance view yv_mmim_rep_cust.
    Thanks in advance,
    Dastagiri

    Hi ,
    Table Maintenance generator is used to maintain data in table , instead of giving access to se11 , we create a tcode for this table maintenance generator and we will give this tcode to end-user to maintain data
    To generate table Maintenance generator :
    click on UTILITIES   in menu bar
    -> table maintenance generator
    -> enter Authorization Group as : &NC&
    -> Enter Function Group : name of your table ( so it will create a function group , to check this function group go to tcode se80 : then select function and enter your Table name )
    -> Then click on find screen numbers in Application tool bar.
    -> Then click on create button in Application tool bar
    if it is created successfully , then you will get a status message like table maintained generator is created successfully.

Maybe you are looking for