'create table..' statement behaves differently when alone or in a SP

hello
sorry for the title, I just couldnt think of a better description of the problem in very few words...
the problem I have is:
I created a stored procedure into the oracle db, and this procedure has the following code inside it:
auxsql := 'create table tmp (id smallint, name varchar2(256))';
execute immediate auxsql;
- now this procedure I call from a java class, using a callable statement
when I call the stored procedure, I get this message:
ORA-01031: insufficient privileges (at the line containing the execute instruction)
my dillema arises from the fact that if I change my callable statement to execute a query of the form:
auxsql := 'create table tmp (id smallint, name varchar2(256))';
execute immediate auxsql;
- but executed as is, not embedded in a sp or something;
- so if I change to execute simply this, all goes well....
I would much appreciate if anyone knew at least where to start looking.
Thank you,
Silviu Lipovan Oanca
p.s. for any further details, just say.
Message was edited by:
silviulipovan

In all probability, the user that owns the stored procedure has the CREATE TABLE privilege through a role, not granted directly. In PL/SQL blocks (assuming definer's rights), only direct privilege grants are "visible", whereas straight SQL statements also "see" privileges granted through a role.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC

Similar Messages

  • Insert, select and create table as give different results

    Hi all
    I have a strange situation with this three cases:
    1) select statement: SELECT (...)
    2) insert statement with that same select as above: INSERT INTO SELECT (...)
    3) create table statement again with that same select: CREATE TABLE AS SELECT (...)
    Each of these cases produce different number of rows (first one 24, second 108 and third 58). What's more the data for second and third case doesn't have any sense with what they should return. The first case returns good results.
    One interesting thing is that select uses "UNION ALL" between 2 queries. When simple UNION is used, everything works fine and all three cases return 24 rows. Also if each query is run seaprately, they work fine.
    Anyone encountered something like this? (before i create an SR :)
    Database is 10.2.0.2 on AIX 5.3. It's a data warehouse.
    Edited by: dsmoljanovic on Dec 10, 2008 3:57 PM

    I understand UNION vs UNION ALL. But that doesn't change the fact that same SELECT should return same set of rows wether in INSERT, CREATE TABLE AS or a simple SELECT.
    DB version is 10.2.0.2.
    Here is the SQL:
    INSERT INTO TMP_TRADING_PROM_BM_OSTALO
    select
    5 AS VRSTA_PLANIRANJA_KLJUC, u1.UNOS_KLJUC, t1.TRADING_TIP_KLJUC, i1.IZVOR_KLJUC, m1.ITEMNAME AS MJESEC,
    l1.PLAN AS IZNOS, l1.TEKUA AS TEKUCA, l1.PROLA AS PROSLA, l1.PLANTEKUA_ AS IZNOS_TEKUCA, l1.PLANPROLA_ AS IZNOS_PROSLA, l1.TEKUAPROLA_ AS TEKUCA_PROSLA, l1.DATUM_UCITAVANJA
    from
    HR_SP_PLAN.L_12_ET_PROMETI_I_BRUTO_MARZA l1,
    select
    m1.ITEMIID, m1.ITEMNAME
    from
    HR_SP_PLAN.L_12_IT_4_MJESECI m1
    where
    UPPER (m1.ITEMNAME) NOT LIKE '%KVARTAL%' AND UPPER (m1.ITEMNAME) NOT LIKE '%GODINA%' AND UPPER (m1.ITEMNAME) NOT LIKE '%PROC%' and
    m1.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy')
    union all
    select -99, null from dual
    ) m1,
    HR_SP_PLAN.L_12_IT_5_SEKTORI l2,
    HR_SP_PLAN.L_12_IT_2_TIPOVI_OSTALO l3, HR_SP_PLAN.D_UNOS u1, HR_SP_PLAN.D_TRADING_TIP t1, HR_SP_PLAN.L_12_IT_1_PROMET_I_BM_OSTALO p1, HR_SP_PLAN.D_IZVOR i1
    where
    l1.ELIST = l2.ITEMIID and
    l2.ITEMNAME = u1.UNOS_NAZIV and u1.USER_KLJUC = 12 and l2.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    l1.DIMENSION_1_PROMET = p1.ITEMIID and
    p1.ITEMNAME = i1.IZVOR_NAZIV and i1.USER_KLJUC = 12 and p1.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    nvl(l1.DIMENSION_4_MJESEC , -99) = m1.ITEMIID and
    l1.DIMENSION_2_TIPOVI = l3.ITEMIID and
    l3.ITEMNAME = t1.TRADING_TIP_NAZIV and l3.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    l1.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    'PROC' = 'PLAN'
    union all
    select
    4 AS VRSTA_PLANIRANJA_KLJUC, u1.UNOS_KLJUC, t1.TRADING_TIP_KLJUC, i1.IZVOR_KLJUC, m1.ITEMNAME AS MJESEC,
    l1.PROCJENA AS IZNOS, l1.TEKUA AS TEKUCA, l1.PROLA AS PROSLA, l1.PROCJENATEKUA_ AS IZNOS_TEKUCA, l1.PROCJENAPROLA_ AS IZNOS_PROSLA, l1.TEKUAPROLA_ AS TEKUCA_PROSLA, l1.DATUM_UCITAVANJA
    from
    HR_SP_PLAN.L_13_ET_PROMETI_I_BRUTO_MARZA l1,
    select
    m1.ITEMIID, m1.ITEMNAME
    from
    HR_SP_PLAN.L_13_IT_4_MJESECI m1
    where
    UPPER (m1.ITEMNAME) NOT LIKE '%KVARTAL%' AND UPPER (m1.ITEMNAME) NOT LIKE '%GODINA%' AND UPPER (m1.ITEMNAME) NOT LIKE '%PROC%' and
    nvl(ceil(to_number(m1.ITEMNAME)/3), mod(4, 5)) = mod(4, 5) and m1.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy')
    union all
    select -99, null from dual
    ) m1,
    HR_SP_PLAN.L_13_IT_5_SEKTORI l2, HR_SP_PLAN.L_13_IT_2_TIPOVI_OSTALO l3,
    HR_SP_PLAN.D_UNOS u1, HR_SP_PLAN.D_TRADING_TIP t1,
    HR_SP_PLAN.L_13_IT_1_PROMET_I_BM_OSTALO p1, HR_SP_PLAN.D_IZVOR i1
    where
    l1.ELIST = l2.ITEMIID and
    l2.ITEMNAME = u1.UNOS_NAZIV and u1.USER_KLJUC = 13 and l2.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    l1.DIMENSION_1_PROMET = p1.ITEMIID and
    p1.ITEMNAME = i1.IZVOR_NAZIV and i1.USER_KLJUC = 13 and p1.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    nvl(l1.DIMENSION_4_MJESEC , -99) = m1.ITEMIID and
    l1.DIMENSION_2_TIPOVI = l3.ITEMIID and
    l3.ITEMNAME = t1.TRADING_TIP_NAZIV and l3.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    l1.DATUM_UCITAVANJA = to_date('24.11.2008','dd.mm.yyyy') and
    'PROC' = 'PROC';

  • Caculated column in a Create Table statement

    This is my create table statement:
    CREATE TABLE DTPartInv
    ( partinv_partnbr VARCHAR2(10) NOT NULL,
    partinv_prodname VARCHAR2(25),
    partinv_desc VARCHAR2(25),
    partinv_manufact VARCHAR2(25),
    partinv_instock INTEGER NOT NULL,
    partinv_category VARCHAR2(20),
    partinv_purchdate DATE,
    partinv_loc VARCHAR2(15),
    partinv_price NUMBER(6,2),
    partinv_vendor VARCHAR2(20),
    partinv_reorder INTEGER NOT NULL,
    partinv_serial VARCHAR2(20),
    partinv_flag as (case when partinv_instock < partinv_reorder then 'X' else 'O' end), calculated column
    CONSTRAINT DTPartInv_partinv_partnbr_pk
    PRIMARY KEY (partinv_partnbr)
    and these are my Insert into table statements:
    INSERT INTO DTPartInv VALUES('XT40010E',Null,'Exhaust Pipe','TMC Inc',2,'Pipes',TO_DATE('11-APR-10','DD-MON-RR'),Null,45.95,'Oracle Auto Parts',1,Null);
    INSERT INTO DTPartInv VALUES('CH9260',Null,'Oil Filter','Mechanical Parts',5,'Fuild Filters',TO_DATE('15-Jan-10','DD-MON-RR'),Null,20.00,'Sink Auto P',2,Null);
    INSERT INTO DTPartInv VALUES('15W40',Null,'Oil','Sink Oil',20,'Auto Fuilds',TO_DATE('10-Feb-11','DD-MON-RR'),Null,10.00,'Oracle Auto Parts',5,Null,);
    INSERT INTO DTPartInv VALUES('C9262',Null,'Fuel Filter','Mechanical Parts',2,'Fuild Filters',TO_DATE('20-Oct-10','DD-MON-RR'),Null,35.95,'Sink Auto Parts',1,Null);
    INSERT INTO DTPartInv VALUES('PS7716',Null,'Fuel/Water Separator','Mechanical Parts',4,'Fuild Filters',TO_DATE('09-Dec-10','DD-MON-RR'),Null,50.00,'Sink Auto Parts',1,Null);
    INSERT INTO DTPartInv VALUES('800142',Null,'PPI Valve','Beink Pipes Inc',10,'Valves',TO_DATE('01-Jun-11','DD-MON-RR'),Null,20.00,'Oracle Auto Parts',2,Null);
    INSERT INTO DTPartInv VALUES('TTS400',Null,'Butt Clamp','Beink Pipes Inc',10,'Valves',TO_DATE('31-Oct-11','DD-MON-RR'),Null,15.95,'Oracle Auto Parts',2,Null);
    INSERT INTO DTPartInv VALUES('TBA400',Null,'Lap Clamp','Beink Pipes Inc',10,'Valves',TO_DATE('10-Nov-11','DD-MON-RR'),Null,30.00,'Oracle Auto Parts',2,Null);
    INSERT INTO DTPartInv VALUES('SC16650',Null,'Brake pads','CostVB Mechanical',5,'Mechanical Parts',TO_DATE('15-May-11','DD-MON-RR'),Null,60.00,'Adosql Auto Parts',1,Null);
    INSERT INTO DTPartInv VALUES('OB46613',Null,'Emergency Door Latch','CostVB Mechanical',3,'Mechanical Parts',TO_DATE('01-Sep-11','DD-MON-RR'),Null,45.95,'Adosql Auto Parts',1,Null);
    And this is a sample of the error I'm geeting:
    INSERT INTO DTPartInv VALUES('XT40010E',Null,'Exhaust Pipe','TMC Inc',2,'Pipes',TO_DATE('11-APR-10','DD-MON-RR'),Null,45.95,'Oracle Auto Parts',1,Null)
    ERROR at line 1:
    ORA-00947: not enough values
    I need to figure out, what it is that I am missing here. partinv_flag is supposed to be calculated based on partinv_instock and partinv_reorder.

    You need to name columns:
      1  INSERT INTO DTPartInv
      2  (partinv_partnbr, partinv_prodname, partinv_desc, partinv_manufact, partinv_instock, partinv_category, partinv_purchdate,
      3  partinv_loc, partinv_price, partinv_vendor, partinv_reorder, partinv_serial)
      4* VALUES('XT40010E',Null,'Exhaust Pipe','TMC Inc',2,'Pipes',TO_DATE('11-01-10','DD-MM-RR'),Null,45.95,'Oracle Auto Parts',1,Null)
    SQL> /
    1 row created.
    SQL> select * from dtpartinv;
    PARTINV_PA PARTINV_PRODNAME          PARTINV_DESC
    PARTINV_MANUFACT          PARTINV_INSTOCK PARTINV_CATEGORY     PARTINV_
    PARTINV_LOC     PARTINV_PRICE PARTINV_VENDOR       PARTINV_REORDER
    PARTINV_SERIAL       P
    XT40010E                             Exhaust Pipe
    TMC Inc                                 2 Pipes                11/01/10
                            45,95 Oracle Auto Parts                  1
                         OEdited by: P. Forstmann on 21 nov. 2011 18:57
    Edited by: P. Forstmann on 21 nov. 2011 19:00

  • 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.

  • Why does "Link Media" behave differently when used as a keyboard shortcut vs when right clicked???

    Not sure whether anyone else is encountering this, but the "Link Media" command behaves differently when right clicked as opposed to when used as a keyboard shortcut.
    When you right click to select that option for an offline file, you get only the corresponding disconnected source media. But when you execute "Link Media" via a keyboard shortcut, PP brings up a huge list of all other offline media. Why does it only do that when you use the keyboard shortcut for "Link Media" but not when you right click "Link Media".
    I'd like to get the Link Media command to behave via the keyboard shortcut the same way it behaves when right clicked. I don't want to have to deal with relinking a hundred other files, but just the single offline file I'm working on.

    Among the alternatives not mentioned... Using a TiVo DVR, rather than the X1; a Roamio Plus or Pro would solve both the concern over the quality of the DVR, as well as providing the MoCA bridge capability the poster so desperately wanted the X1 DVR to provide. (Although the TiVo's support only MoCA 1.1.) Just get a third-party MoCA adapter for the distant location. Why the hang-up on having a device provided by Comcast? This seems especially ironic given the opinions expressed regarding payments over time to Comcast. If a MoCA 2.0 bridge was the requirement, they don't exist outside providers. So couldn't the poster have simply requested a replacement XB3 from the local office and configured it down to only providing MoCA bridging -- and perhaps as a wireless access point? Comcast would bill him the monthly rate for the extra device, but such is the state of MoCA 2.0. Much of the OP sounds like frustration over devices providing capabilities the poster *thinks* they should have.

  • Mass create table statement

    Hi,
    I am facing the following problem:
    Database A is running with a great number of tables.
    Database B should contain the same tables as A with different data (DB B is empty at the moment).
    Therefore I've collected all the 'create table'-statements and packed them into a script.
    Because there are several foreign key constraints in DB A (not all deferrable) it seems to be a problem to execute the script.
    I have searched the internet how to disable constraints before executing the statements, but I' ve only found solutions for disabling constraints for allready existing tables - not disabling constraint checks will creating.
    So, could you please give me a hint what keywords I should use for my further search?
    Thanks in advance.

    steve sastro wrote:
    Thanks to all of you.
    The point is: I don't really like tools (where I have to click in GUIs). I prefer to see what's going on - just to learn what's happening behind.
    As soon as I have tested all of your topics I will reward you with the forum-points. Thx again.
    EDIT: Version is 10g
    Edited by: steve sastro on 07.12.2009 11:28Being an old-fart command line guy myself, I can appreciate that -- up to a point. But eventually it gets to be simply re-inventing the wheel.
    Use exp at the command line. Then use the 'strings' command to examine the output .dmp file. That will give you the education you seek.

  • 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.

  • How to specify  tablespace for a primary key inde in create table statement

    How to specify the tablespace for a primary key index in a create table statement?
    Does the following statement is right?
    CREATE TABLE 'GPS'||TO_CHAR(SYSDATE+1,'YYYYMMDD')
                ("ID" NUMBER(10,0) NOT NULL ENABLE,
                "IP_ADDRESS" VARCHAR2(32 BYTE),
                "EQUIPMENT_ID" VARCHAR2(32 BYTE),
                "PACKET_DT" DATE,
                "PACKET" VARCHAR2(255 BYTE),
                "PACKET_FORMAT" VARCHAR2(32 BYTE),
                "SAVED_TIME" DATE DEFAULT CURRENT_TIMESTAMP,
                 CONSTRAINT "UDP_LOG_PK" PRIMARY KEY ("ID") TABLESPACE "INDEX_DATA"
                 TABLESPACE "SBM_DATA";   Thank you
    Edited by: qkc on 09-Nov-2009 13:42

    As orafad indicated, you'll have to use the USING INDEX clause from the documentation, i.e.
    SQL> ed
    Wrote file afiedt.buf
      1  CREATE TABLE GPS
      2              ("ID" NUMBER(10,0) NOT NULL ENABLE,
      3              "IP_ADDRESS" VARCHAR2(32 BYTE),
      4              "EQUIPMENT_ID" VARCHAR2(32 BYTE),
      5              "PACKET_DT" DATE,
      6              "PACKET" VARCHAR2(255 BYTE),
      7              "PACKET_FORMAT" VARCHAR2(32 BYTE),
      8              "SAVED_TIME" DATE DEFAULT CURRENT_TIMESTAMP,
      9               CONSTRAINT "UDP_LOG_PK" PRIMARY KEY ("ID") USING INDEX TABLESP
    ACE "USERS"
    10               )
    11*              TABLESPACE "USERS"
    SQL> /
    Table created.Justin

  • Create Create table statement dynamicallly

    I am trying to create a SP that  return a “Create table  “statement dynamically using a table called “Employee” in database. How can I create a dynamic Create Table
    statement using sys.table? The create table statement should contains all the columns from Employee table.. i am using SQL server 2008 R2

    Hi SSAS_5000,
    If you don't care about the constraints,dependency on the Table Employee and what you'd like is the table structure, you may use the below statement where the create statement generated from the SP is executed.
    SELECT TOP 1 * INTO desiredTable FROM Eemploy;
    TRUNCATE TABLE desiredTable
    If you have question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • CREATE TABLE statement

    i am accessing the local database through JDBC for an application. but i've been getting "not allowed" errors while trying to execute a CREATE TABLE statement in my servlet. It allows all other statements like insert, delete, select etc. i've been using a default table because of the same reason.
    so if someone could please throw some light into it.

    Hi,
      Statements like Create which is a Data definition one
    will not be entertained by the program while executing.
    The reason being the DB cannot allocate the required buffer for crating a table at the time of execution.
      So the alterantive is create your DB table manually in ur Db and try other DML statements.
      Hope it helps.
    Regards,
    Guru

  • SQL Developer  Create Table Statement to ERD Visio Diagram

    I have the following Create table statement from SQL Developer and I am trying to generate an ERD Diagram using 2003 Visio. I was wondering what I need to do to convert the Create Table to an ERD Diagram Using Visio. Thanks
    CREATE TABLE “TT_TEAM”.”HR_REVOKED_SECURITY_ORGS”
    “ID” NUMBER NOT NULL ENABLE,
    “ACAT_CODE” VARCHAR2(6 BYTE) NOT NULL ENABLE,
    “APPR_SEQ_NO” NUMBER(3,0) NOT NULL ENABLE,
    “USER_ID” VARCHAR2(30 BYTE) NOT NULL ENABLE,
    “ACTION_IND” VARCHAR2(1 BYTE) NOT NULL ENABLE,
    “ACTIVITY_DATE” DATE NOT NULL ENABLE,
    “COAS_CODE” VARCHAR2(1 BYTE),
    “ORGN_CODE” VARCHAR2(6 BYTE),
    “POSN” VARCHAR2(6 BYTE) NOT NULL ENABLE,
    “MANDATORY_APPR_IND” VARCHAR2(1 BYTE),
    “APPR_POSN” VARCHAR2(6 BYTE),
    “ORGN_MANAGER” VARCHAR2(6 BYTE) NOT NULL ENABLE;

    I'm pretty Visio is a non-Oracle product.
    In the mean-time, you can easily import a DDL script file and create a relational model/diagram using SQL Developer. Use the Import feature and point to your CREATE TABLE script(s)

  • SQLPLUS - Create Table statement

    Hello gents/ladies.
    I have a few tables that I want to import from a DUMP file I have from MySQL. My quickie question : I've removed all the MySQL specific formatting ( I thought ) like Type=MYISAM and similar, and ended up with a CREATE TABLE statement that looks like this:
    CREATE TABLE customerdetails (
    custid NUMBER(11) NOT NULL auto_increment,
    uid_system varchar2(20) NOT NULL default '',
    pwd_system varchar2(20) NOT NULL default '',
    lastname varchar2(30) NOT NULL default '',
    firstname varchar2(30) NOT NULL default '',
    middleinitial char(1) default NULL,
    day_phone_countrycode char(3) default NULL,
    day_phone_main varchar2(16) default NULL,
    evening_phone_countrycode char(3) default NULL,
    evening_phone_main varchar2(16) default NULL,
    email_primary varchar2(80) NOT NULL default '',
    email_secondary varchar2(80) default NULL,
    street_adress varchar2(80) NOT NULL default '',
    state_prov char(3) NOT NULL default '',
    zipcode varchar2(11) NOT NULL default '',
    countrycode char(3) NOT NULL default '',
    PRIMARY KEY (custid),
    UNIQUE KEY UC_custid(custid),
    UNIQUE KEY IDX_system_uid(uid_system),
    KEY idx_lname_fname_mi(lastname,firstname,middleinitial),
    KEY IDX_day_phone(day_phone_countrycode,day_phone_main)
    I get this error back from SQLPLUS:
    CREATE TABLE CUSTOMERDETAILS (
    ERROR in line 1:
    ORA-00922: missing or invalid option
    I've read through the documentation, and can't see what I'm missing here. Could somebody PLEASE point out the obviously screaming error in this statement?
    Thanks!
    Kind regards,
    Henning Kilset Pedersen
    Funcom OSLO AS

    Hi Henning Pedersen,
    First of all the your query syntax is wrong.
    1. the keyword you used "auto_increment" is not in oracle. you need to take it out from query.
    2. you are saying some columns are not null but giving default value as '' (two quotes without any space), this is contradiction, since '' is null, this gives you an error.
    Need to take it out.
    3. the keyword UNIQUE KEY is wrong you need to use only UNIQUE.
    4. Another option is not correct it UNIQUE KEY IDX_system_uid(uid_system),
    it must be UNIQUE (uid_system)
    5. There is not any keyword as a KEY in oracle. you need to take it out from the query too.
    The final query will be like :
    CREATE TABLE customerdetails (
    custid NUMBER(11) NOT NULL ,
    uid_system varchar2(20) NOT NULL ,
    pwd_system varchar2(20) NOT NULL ,
    lastname varchar2(30) NOT NULL ,
    firstname varchar2(30) NOT NULL ,
    middleinitial char(1) default NULL,
    day_phone_countrycode char(3) default NULL,
    day_phone_main varchar2(16) default NULL,
    evening_phone_countrycode char(3) default NULL,
    evening_phone_main varchar2(16) default NULL,
    email_primary varchar2(80) NOT NULL ,
    email_secondary varchar2(80) default NULL,
    street_adress varchar2(80) NOT NULL ,
    state_prov char(3) NOT NULL ,
    zipcode varchar2(11) NOT NULL ,
    countrycode char(3) NOT NULL ,
    PRIMARY KEY (custid),
    UNIQUE (custid),
    UNIQUE (uid_system)---,
    ---KEY idx_lname_fname_mi(lastname,firstname,middleinitial),
    ---KEY IDX_day_phone(day_phone_countrycode,day_phone_main)
    This would work fine.
    Thanx
    Arvind.
    null

  • Executable behaving different when called f/Java

    I have an executable that is run from the command line which behaves differently when I run it from my application. The executable takes MP3s files as arguments and merges them together. When I use large files from within my app, it doesn't respond, but using the same files from the command line works fine. I was thinking it might be a memory thing, but the executable should get its own space seperate from the VM. Does anyone have any suggestions? Thanks!

    I do not have the source for the executable, so I wouldn't be able to pull lines out of there. It works from my Java app when I pass in smaller files, so I know I have the syntax correct, but with larger files it hangs. When I run the same thing from the command line with the larger files it runs like a champ. I was trying to use my task manager (I'm on Win NT) to look at memory usage since the only variable seems to be file size, but nothing seems to indicate it is a memory issue.

  • Get Create Table Statements

    Hi,
    I'm using Oracle Db 10g.
    I want to take the create table statements of few tables.
    Is there any way to get that?
    Thanks

    You can use DBMS_METADATA package:
    select dbms_metadata.get_ddl('TABLE', 'TABLE_NAME') from dual;http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_metada.htm#ARPLS026
    http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1794096300346327738

  • Code behaves differently when run in debugger

    var he:Array = handControl.getHumanInfo(ha, handNumber);
    while (he.length != 0)
    humanInfo.push(he.shift());
    This snippet is part of a large flash project I am working
    on. The program works fine by itself, but when I try to step
    through it in the debugger, it sometimes crashes, depending on
    where I put a breakpoint. If I put the breakpoint on the first line
    of code above, I can step into the function getHumanInfo(), trace
    it, and step back out, and everything is fine. But if I only put a
    breakpoint somewhere inside the getHumanInfo() function, all of a
    sudden when I step out of that function, the variable 'he' is
    undefined, and so the while loop never ends.
    This makes no sense to me. The code is either good or bad, it
    shouldn't behave differently based on where I put the breakpoint.
    The getHumanInfo() function always creates a new array and
    passes it back, so there is no reason 'he' should be undefined.
    This has happened many times when I've tried to use the flash
    CS3 debugger -- is there a known issue that this sounds like? I'm
    so fed up I'm ready to stop using the debugger altogether.

    I ran the program without the debugger and put some trace()
    statements in, just to make sure. Everything works fine without the
    debugger. So it seems to me it has to be a debugger issue. Has
    anyone heard of a similar issue?

Maybe you are looking for