Lack of good parent when creating table.

I get the "ORA-00907: lack the right parenthesis" error when creating the table with the following code.

create the table SALES_ORDER
(
Check the primary key to the ORDERNO varchar2 (6) (ORDERNO like '% O'),
CLIENTNO varchar2 (6) references to foreign keys CLIENT_MASTER (CLIENTNO),
ORDERDATE date not null,
DELYADDR varchar2 (25).
SALESMANNO varchar2 (6) foreign refers to SALESMAN_MASTER (SALESMANNO).
DELYTYPE char (1) default 'F' tick (DELYTYPE IN ('P', 'F')),
BILLYN char (1),
Check date DELYDATE (DELYDATE > = ORDERDATE).
Verification of varchar2 (10) ORDERSTATUS (ORDERSTATUS IN ('In Process ',' Fulfilled ',' BackOrder ',' Cancelled'))
);

What I am doing wrong?

1003332 wrote:
I get the "ORA-00907: lack the right parenthesis" error when creating the table with the following code.

create the table SALES_ORDER
(
Check the primary key to the ORDERNO varchar2 (6) (ORDERNO like '% O'),
CLIENTNO varchar2 (6) references to foreign keys CLIENT_MASTER (CLIENTNO),
ORDERDATE date not null,
DELYADDR varchar2 (25).
SALESMANNO varchar2 (6) foreign refers to SALESMAN_MASTER (SALESMANNO).
DELYTYPE char (1) default 'F' tick (DELYTYPE IN ('P', 'F')),
BILLYN char (1),
Check date DELYDATE (DELYDATE > = ORDERDATE).
Verification of varchar2 (10) ORDERSTATUS (ORDERSTATUS IN ('In Process ',' Fulfilled ',' BackOrder ',' Cancelled'))
);

What I am doing wrong?

Try

create table SALES_ORDER
(
ORDERNO varchar2(6) Primary key check(ORDERNO like 'O%'),
CLIENTNO varchar2(6) ,
ORDERDATE date not null,
DELYADDR varchar2(25),
SALESMANNO varchar2(6) ,
DELYTYPE char(1) default 'F' check(DELYTYPE IN('P','F')),
BILLYN char(1),
DELYDATE date,
ORDERSTATUS varchar2(10) check(ORDERSTATUS IN('In Process','Fulfilled','BackOrder','Cancelled')),
foreign key (clientno) references CLIENT_MASTER(CLIENTNO),
foreign key (salesmanno) references SALESMAN_MASTER(SALESMANNO)
);

I removed the audit on delydate that you cannot refer to another column in a constraint check (at the level of the column). You can to the table level.

Published by: Paul Horth on April 30, 2013 14:57
Updated to clarify where the verification of the cross-column can happen (more coffee needed!)

Tags: Database

Similar Questions

  • Add default column have Boolean when creating table

    Hello

    I am trying to create a table with the default value for boolean data, as shown below:


    CREATE TABLE test_users)
    user_id number (11) NOT NULL PRIMARY KEY,
    first name varchar2 (50).
    VARCHAR2 (50) last_name,.
    e-mail varchar2 (100),
    user_password varchar2 (100),
    Zip_code varchar2 (50).
    title varchar2 (100),
    Description varchar2 (2000).
    PICTURE_PATH varchar2 (2000).
    one_time_activation number (1) value default null check (one_time_activation in (0,1)).
    one_time_activation_code varchar2 (100),
    is_active number (1) value default null check (is_active in (0,1)).
    security_question_id number (11),
    security_answer varchar2 (100),
    inserted_date DateTime,
    DateTime MODIFIED_DATE,
    check the number IS_DELETED (1) default 0 (is_deleted in (0,1)).
    last_login_date DateTime,
    no_of_views number (20) default 0,.
    is_redirect_to_edit_profile number (1) 1 check default (is_redirect_to_edit_profile in (0,1)).
    present_login_date DateTime,
    check the is_interested_ab_membership number (1) default 0 (is_interested_ab_membership in (0,1)).
    joined_date DateTime,
    removed_date DateTime,
    is_admin_deleted number (1) default check 0 (is_admin_deleted in (0,1)).
    moderated_by number (11),
    is_subscribe_newsletter number (1) default check 0 (is_subscribe_newsletter in (0,1)).
    user_pagination number (3) 15 by DEFAULT
    );

    but I'm getting
    Error on line 1
    ORA-00902: invalid data type

    Thank you

    Whatever your question has to do with sql developer?

    You don't even tell what database you want to use.

    Oracle does not support a data type 'datetime' so your create table statement will not work in Oracle.

    If you replace "datetime" 'date' the table creates very well.

  • Too many spare disks when creating table

    I shall preface this by saying: I'm new on Equallogic San...

    I have a PS6100 with 16 drives of 2 TB.  When you perform the initial configuration on the table, it's from 4 disks as "rescue" any RAID level, I chose.  The option to right click on the drive and choose 'Add the disk to the RAID' is grayed out.

    Having 4 discs/8 TB of storage "spare" seems much too excessive.  I would like only 1 or 2 disk hot spares.  I don't know if there is a problem preventing the table of allowing them to be "online" or if there is a setting to specify the number of spare parts.  If a setting is enabled, I can't find it anywhere.

    Please let know us if this is normal or if there is anything I can do to get some of that extra space added to my table.

    Thank you!

    Hmmmm

    the old PS60x0 comes with 16x3.5. The PS61x0 and later as

    24 x 3.5 "

    12 x 3.5 "

    or 24 x 2.5 "

    IIRC it isn't so modell with 16 discs.

    "Deleted" Dell RAID5 Option in one of the last FW Version from the GUI, if a customer drives of 1 TB or more because the risk of failure of a disk doubles increases when you make the raid rebuild underway long with large disks.

    If you want to force the use of a RAID5 + spare, single, you must create the middle of raid from the command line.

    We use RAID50 for the older model 16 disk which means: usable discs = Total of discs - 4 (2 + a 2 rescue disk parity)

    Kind regards

    Joerg

  • Problem of ball when creating tables and blocks of text in InDesign CS5

    Every time I have create a new text frame or a table in InDesign CS5 and paste information, the first row in the table or several lines of text out with chips. I don't know that it's a style at some point, I created and am now unsure how to remove or setting. I would like the new blocks of text and tables do not include by default when imported or pasted chips. Any thoughts? Thank you!

    Default values for the text in the current document are made with no selected text. Disable the chips and they should stay off (but check styles, also, you have perhaps accidentally set a style bulleted as the default and you must change the default style instead). If this is the case in all files, you must do with nothing open to reset the default for all new documents (existing files, must unfortunately be set one at a time).

  • & quot; Lock & quot; dataProvider when creating tables and DataGrids in loop

    I'm a loop in each element in an array and for each item, I try to create a new DataGrid on a new canvas and add each canvas of a ViewStack.

    I'm having problems in setting the dataProvider for the DataGrids. As part of the loop, I create a new ArrayCollection collection to serve the created for the latest DataGrid dataProvider. But since the loop uses a single ArrayCollection variable collection iterates the loop every time a new ArrayCollection collection is created, and created DataGrids dataProviders previously point to the new collection of ArrayCollection, rather than one that was created during the iteration. For example, I can end up with 10 DataGrids (on 10 paintings) in the ViewStack and all their dataProviders will point to the latest collection created ArrayCollection, rather than the collection created ArrayCollection in the same iteration of the loop that created this respective DataGrid.

    Is there a way to take a "cliché" (for lack of better terms) static of an ArrayCollection collection in each iteration and use it as the dataProvider for the newly created in this same iteration DataGrid? Any help or insight is appreciated.

    I think that I fixed it. Moving var dgArray:ArrayCollection; above dgArray = new ArrayCollection collection; seems to have done the trick and logical sense.

  • What is the best way to create tables in Illustrator cs5

    Hi all

    I am currently working on the contribution of a project for a printer Board. He must have rows and columns so that a project can be followed and assigned on a day to day basis. I thought I would just create a table for this. Is there a good way to create tables in Illustrator cs5?

    You can also copy and paste the ID table to HAVE, but since they cannt be bound as pdf or eps he ae limits to how much you can edit

  • Problem with creating tables DB DWH

    Hello
    During the generation of tables of data warehouse (dry 4.10.1 how to create the Data Warehouse Tables), I got to the top with an error indicating that "Datawarehouse Creating tables failed '.
    But when I checked in the log "generate_ctl.log" file, it has the message below:

    + "Schema will be created in the following containers: +"
    Oracle 11.5.10
    Oracle R12
    Universal



    Conflict between containers:


    ---------------------------------------------
    Table name: W_BOM_ITEM_FS
    Column name: INTEGRATION_ID.
    + Column properties that are different: [keyTypeCode] +.
    ---------------------------------------------

    Success! "

    When I checked in the database of DWH, I find tables DWH, but do not know if all tables have been created?
    Can someone tell me if my DWH tables are all created? Tables of how much would be created for EBS containers above?
    Also, should I have to drop a container of EBS to create tables DWH successfully?

    The Installation guide States when creating tables DWH fails then "createtables.log" will not be created. But in my case, this log file is created.

    Published by: userOO7 on November 19, 2008 14:41

    Even if you do the install with DBA role, it will fail is that sse_role is not present. Please, create it and try again. You must also create a user of separate database to the data warehouse that is separate from the repository of DAC. Then you can remove and re-create the account of data warehouse without losing the DAC repository.

    4.3.4.1 create databases
    http://download.Oracle.com/docs/CD/E12127_01/doc/BIA.795/e12083/windows_ic.htm#i1081422

  • Format of the date when the table was created

    Hi all

    Is it possible to create the table with the specific date format: as I want to create table with the format date must be in the format "mmddyyy" or no matter what specific.

    I am using oracle 11g

    Thank you

    Hello Abbas85,

    not only the dates Oracle occupy only 7 bytes, but using DATES give some benefits, like:

    -verification of the data: the system will not accept things like '44-JAN-2014' or 15 months,...

    -date arithmetic: it's so easy and convenient to be able to do things like "date2 - date1", or "date 1 + x days!"

    -l' effectiveness of the index: when stored as dates, Oracle knows that there's only one second between 27-APR-2014 23:59:59 and 28 April 2014 00:00:00, but if it is stored as strings or numbers, for example there is a bigger difference between 20140331235959 and 20140401000000 and between 20140331010203 and 20140331195959. This may mislead the optimizer...

    But in any case if for any reason any bad you persist in the idea of storing dates as numbers or strings, be sure to keep the items in the order YYYY MM DD HH24 MI SS; at least the order is respected. With the help of MMDDYYYY would be really sad!

    And on the addition of certain "quality check" If you use for example a 8 string ((aucune heure min sec)): this can be achieved with a constraint, as for example

    SQL > CREATE TABLE aajessica1986 (a_date TANK (8) CHECK (TO_DATE (a_date, 'MMDDYYYY') > DATE ' 1900-01-01'));

    Table created.

    SQL > INSERT INTO aajessica1986 VALUES ('15212014');

    INSERT INTO aajessica1986 VALUES ('15212014')

    *

    ERROR on line 1:

    ORA-01843: not one month valid

    SQL > INSERT INTO aajessica1986 VALUES ('10082014') / * (but maybe the user has waited 10 - AUG and not 08 - OCT) * /;

    1 line of creation.

    Best regards

    Bruno Vroman.

  • Create table form another table in different schema throwing error when dynamic sql

    Hello

    With the help of 11.2.0.3 and was following the issue.

    To create a table in a schema (b) using data from another schema (b)

    If independent run in sqlplus create works OK but same sql in dynamic sql block saying the table or view does not exist.

    SQL even in dynamic sql

    {code}

    v_sql: =' create table new_table in select * from schemab.table_name where...';

    run immediately (v_sql);

    [code}

    Other tables work fine.

    Any ideas - don't want to grant all the schemaa.table schema b if can avoid.

    Thank you

    You run the immediate execution in an anonymous block or a stored procedure?  If it is a stored procedure, then as others have said, the owner of the procedure must have select privileges on granted directly schemab.table_name.

    Another possibility, which would be the case for a stored procedure, or an anonymous block is that your code is something like:

    v_sql: =' create table new_table in select * from schemab.table_name where...';

    immediately run v_sql;

    Select count (*) in the l_count new_table;

    who will fail at compile time because new_table does not exist.

    When you create objects using dynamic sqly you dynamic sql user to reference them in the block of code.

    John

  • table/view not found when creating a package, but can execute sql...

    I'm trying to create a package I'm ora-00942 table or view does not exsit, but when I run with the same user tries to create the package in the sql statement that gives NO error through fine.

    Any idea what can cause that?

    -drop table demo_hdr_trgt

    -drop table demo_hdr_stg

    -It's the tabe belong to the other user not my own schema

    connect tstdata/tstdata

    create the table demo_hdr_stg as floor (dbms_random.value (1,101)) select id, floor (dbms_random.value (1001,100001)) double amt connect by level < = 100

    /

    -It's my diagram

    connect me3/me3

    create the table demo_hdr_trgt in select * from hdr_stg where 1 = 0

    /

    Select * from tstdata.demo_hdr_stg by id

    /

    Select * from demo_hdr_trgt by id

    /

    -business for this temporary table to demo rule

    ALTER TABLE demo_hdr_trgt add PRIMARY KEY (id)

    /

    -table to the control of the error for the DML

    Start

    DBMS_ERRLOG. CREATE_ERROR_LOG('tstdata.) DEMO_HDR_STG');

    end

    /

    -Follow-up of the load table if he succeeds

    CREATE TABLE demo_RESULT_TAB

    (VARCHAR2 (100) 'RUN_NAME',)

    VARCHAR2 (100) "V_MODULE."

    VARCHAR2 (100) "V_ACTION."

    NUMBER OF "ROWCOUNT".

    )

    /

    -Follow-up of the other error table

    CREATE TABLE demo_ERROR_TAB

    (VARCHAR2 (100) 'RUN_NAME',)

    VARCHAR2 (100) "V_MODULE."

    VARCHAR2 (100) "V_ACTION."

    NUMBER OF "SQLCODE"

    "SQLERRM' VARCHAR2 (4000).

    "CALL_STACK' CLOB

    )

    /

    -package charge demo

    create or replace package demo_hdr_pkg as

    procedure hdr_ldr (run_name varchar2);

    end demo_hdr_pkg

    /

    create or replace package body demo_hdr_pkg as

    procedure hdr_ldr (run_name varchar2) is

    number of v_sqlcode;

    v_sqlerrm varchar2 (1000);

    v_module varchar2 (100): = "demo_hdr_pkg.hdr_ldr";

    v_action varchar2 (100): = "insert into hdr_trgt";

    number of v_rowcount;

    Start

    DBMS_APPLICATION_INFO.set_module (module_name = > v_module,)

    action_name = > v_action);

    -the sql code that gives ora-00942 errors that I can review independent

    -INSERT / * + append PARALLEL * /.

    INSERT / * + PARALLEL * /.

    IN demo_hdr_trgt, SELECT id, tstdata.demo_hdr_stg amt

    LOG ERRORS IN tstdata. ERR$ (run_name) _demo_HDR_STG

    REJECT LIMIT UNLIMITED;

    v_rowcount: = number of lines sql %;

    INSERT into demo_result_tab (run_name, v_module, v_action, rowcount) values (run_name, v_module, v_action, v_rowcount);

    commit;

    exception when others then

    dbms_output.put_line(SQLCODE||) e '|| SQLERRM);

    v_sqlcode: = sqlcode;

    v_sqlerrm: = sqlerrm;

    insert into demo_error_tab (run_name, v_module, v_action, sqlcode, sqlerrm, call_stack) values (run_name, v_module, v_action, v_sqlcode, v_sqlerrm, dbms_utility.format_call_stack);

    commit;

    -dbms_scheduler to analyze the error table and send e-mail

    end;

    end demo_hdr_pkg

    /

    -test

    declare

    v_runname varchar2 (100): = to_char (sysdate, 'YYYY_MM_DD_HH24_MI_SS');

    Start

    demo_hdr_pkg.hdr_ldr (v_runname);

    end

    /

    Select * from demo_hdr_stg by id

    /

    Select * from demo_hdr_trgt by id

    /

    Select * from demo_error_tab

    /

    Select * from demo_result_tab

    /

    This question is asked almost every day...

    http://martincarstenbach.WordPress.com/2010/05/27/the-difference-between-a-direct-grant-and-a-role-in-PLSQL/

    Summary, you need a DIRECT grant (not through a role), or you could modify the procedure to use the rights of the appellant (the default is rights define).

    See you soon,.

  • When creating index table lock?

    Hello

    My db is oracle10g. My database is OLTP system. I wanted to create the index on one of the table. The table has 200 million recordings.

    It locks the whole when table I create index? I think, its impact on the regular operations of the database when creating the index?

    Any help is appreciated...

    Hello

    You have Enterprise Edition? If so, the online option is available.

    So you can do:

    create index my_new_index on my_tab(col1,col2) online;
    

    or:

    alter index my_existing_index rebuild online;
    

    If you are not using the online option, then Yes, the table will be locked for updates, all traffic OLTP will serialize buttocks the index maintenance operation.

    Hope that helps,

    -Mark

  • How to list the when a Table is created, and when the last change?

    Is there a way to know when a TABLE was created originally, and when the last change (=. for example, the last INSERTION of a line or UPDATE a line)?

    Peter

    Hello!

    select created,last_ddl_time from dba_objects where object_type = 'TABLE' and object_name = 'table_name'
    

    created ways to create object (table)
    last_ddl_time means when the structure of tables was the last modified time

    But there no opinion with dml last on the table. You must provide this with a few columns on table (Last_dml_time) that should be filled with
    Some database triggers

    Or if you have enabled AUDITING, then last time dml is registered also in audit trail

    T

  • How do good group when the join of two tables?

    Hi all

    The slot using join query, I'd like to get an output will depend on the number of 'Classes' (for example: if I want the result for 15 classes, then, he must return to 16 lines from 0 to 16).
    I n query below, I use the group as
    "GROUP BY report_parameters.report_parameter_value  "
    .

    Error that says "this is not group by expression.

    If I have commented here, here he returns 320 rows instead of 16 ranks.

    Could someone help me?

     SELECT 'SUM('
        || 'CASE '
        || 'WHEN edr_class_by_gvw_report_data.bin_id >= ' || report_range_parameters.report_parameter_min_value || ' 
             AND edr_class_by_gvw_report_data.bin_id  < ' || report_range_parameters.report_parameter_max_value || '
            THEN edr_class_by_gvw_report_data.bin_value '    
        || 'ELSE 0 '
        || 'END '
        || ') "Class ' || report_parameters.report_parameter_value || '" '    
          FROM report_parameters
          JOIN report_range_parameters
            ON report_parameters.report_parameter_id = report_range_parameters.report_parameter_id 
         WHERE report_range_parameters.report_parameter_id    = 2316    
           AND report_range_parameters.report_parameter_group = 'GVW_GROUP'
           AND report_range_parameters.report_parameter_name  = 'GVW_NAME'
           AND report_parameters.report_parameter_group = 'CLASS'
           AND report_parameters.report_parameter_name  = 'CLASS' 
         GROUP BY
          report_parameters.report_parameter_value  
         ORDER BY  report_range_parameters.report_parameter_min_value ASC;
    Thank you.

    Published by: user10641405 on June 11, 2009 12:23

    Published by: user10641405 on June 11, 2009 12:30

    Hello

    Let me explain what I'm trying to do.
    I want to write a query that produces this output:

    SUM(CASE WHEN edr_class_by_gvw_report_data.gvw >= 0 AND edr_class_by_gvw_report_data.gvw  < 5 THEN edr_class_by_gvw_report_data.gvw_count ELSE 0 END ) "Class 0"
    SUM(CASE WHEN edr_class_by_gvw_report_data.gvw >= 5 AND edr_class_by_gvw_report_data.gvw  < 10 THEN edr_class_by_gvw_report_data.gvw_count ELSE 0 END ) "Class 1"
    SUM(CASE WHEN edr_class_by_gvw_report_data.gvw >= 10 AND edr_class_by_gvw_report_data.gvw  < 15 THEN edr_class_by_gvw_report_data.gvw_count ELSE 0 END ) "Class 2"
    SUM(CASE WHEN edr_class_by_gvw_report_data.gvw >= 15 AND edr_class_by_gvw_report_data.gvw  < 20 THEN edr_class_by_gvw_report_data.gvw_count ELSE 0 END ) "Class 3"
    SUM(CASE WHEN edr_class_by_gvw_report_data.gvw >= 20 AND edr_class_by_gvw_report_data.gvw  < 25 THEN edr_class_by_gvw_report_data.gvw_count ELSE 0 END ) "Class 4"
    

    using data from tables report_parameters and report_range_parameters, which are like your tables.
    Right now, I don't have report_parameters and report_range_parameters tables.
    I need to create and put the data in them that is like your data.
    If I have the same data you have, and if I can produce the results that you want from the data, so I'll post my query, and you can use it.

    I do not see how to INSERT statements like this:

    INSERT INTO "class_by_gvw_report_data"
              SELECT site_id,
                  site_lane_id,
                 site_direction_id,
                site_direction_name,
                  bin_start_date_time,
                  bin_end_date_time,
                  bin_id,
                bin_value
             FROM "class_by_gvw_bin_data"
    

    can help me. Is the table "class_by_gvw_report_data" invloved in this problem? Is this the same as report_parameters or report_range_parameters? If Yes, I need to create it, and put the data into it, so to use the above statement I need all data of "class_by_gvw_bin_data".

    I need to have something that I can run, so that my paintings will have sample data which would result in the desired output.
    I need the CREATE TABLE statements, but I can probably guess what they should be if I have your data. If this isn't the case, I will seek further clarification later.
    I can't guess what your data, and why is it causing problems. If I just do a few data, LII is virtually no chance he's going against hepatitis has a relationship between the tables that are causing you problems of the same nature.

    Please post INSERT statements that I can run and produce the same type of data that is causing problems.

  • Specify the type of data when using the "CREATE TABLE AS SELECT"?

    In the table creation code I'm trying to create a DATE column called DOB below. However, the resulting DOB column in the condamnes2 table is a Varchar2. How can I specify that I want to be a DATE field DOB? (I know that I can create the structure first and then fill it but this isn't what I want.)

    create the table condamnes2
    SELECT Person_ID,
    decode (year of BIRTH, null, null, to_date (nvl(BIRTHMONTH,1) |)) » /'|| NVL(Birthday,1) | » /'|| NVL (BIRTHYEAR, 1500), ' MM/DD/YYYY')) DOB
    Among the people

    Thank you

    Use the CAST function in your decoding:

    SQL> create table Persons2 as
      2  SELECT Person_ID,
      3         decode(BIRTHYEAR
      4               ,null, cast(null as date)
      5               ,to_date(nvl(BIRTHMONTH,1)||'/'||nvl(birthday,1)||'/'||nvl(BIRTHYEAR,1500),'MM/DD/YYYY')) DOB
      6  from   persons
      7  ;
    
    Table created.
    
    SQL> desc persons2
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     PERSON_ID                                          NUMBER
     DOB                                                DATE
    
  • Bugs or features of NoSQL create table

    Hi, I used the runadmin CLI command to create a pattern with several tables and child tables (create table), reflecting our logistics OAGIS model BO.

    The following clothe are bugs in runadmin, I think:

    * children tables have a key with the same name as the name of the key of one of their parents? Why?

    adding a few records (add-registration-field) of the same structure (structure to address typical e.g.a) only works for the first, for example postalAddress. When you add an invoiceAddress of the same type, the error "Unknown Exception: class org.apache.avro.SchemaParseException ' appears at the output. Children tables for that aid works. With the help of several records from a same simple structure works, and I think that the error occurs when the records have a field with the same name as the key of the table.

    * In addition, I miss a feature like - AutoNumber to use keys by default. It is available or planned or displaced in the application layer?

    Hello

    Some good questions.

    | * children tables have a key with the same name as the name of the key of one of their parents? Why?

    As you are suggesting this restriction exists only for the fields that are part of the primary key.  A key field in a child table may have the same name as a key field in the parent.  This restriction makes a number of simpler and more efficient internal implementation details.  Do you have a use case where it is annoying?

    | adding a few records (add-registration-field) of the same structure (structure to address typical e.g.a) only works for the first, for example postalAddress. When you add an invoiceAddress of the same type, the error "Unknown Exception: class org.apache.avro.SchemaParseException ' appears at the output. Children tables for that aid works. With the help of several records from a same simple structure works, and I think that the error occurs when the records have a field with the same name as the key of the table.

    A specific example of this behavior would be helpful.  It may be a bug.

    | * In addition, I miss a feature like - AutoNumber to use keys by default. It is available or planned or displaced in the application layer?

    It is the responsibility of the application.

    Kind regards

    George

Maybe you are looking for