Problem in creating CHECK constraint
While creating a table, i want to apply a CHECK constraint, that pension_amount should be in accordance of pension_code, i am getting error mentioned below.
CREATE TABLE pension_amount_check
pension_amount NUMBER (4),
pension_code NUMBER (1),
CONSTRAINT amount_chk CHECK
(CASE
WHEN pension_code = 1 THEN (pension_amount = 3000 OR pension_amount > 3000)
WHEN pension_code = 2 THEN pension_amount = 1500
end)
ORA-00907: missing right parenthesisHow i can resolve this.
CREATE TABLE pension_amount_check
pension_amount NUMBER (4),
pension_code NUMBER (1),
CONSTRAINT amount_chk CHECK
(pension_code = 1 AND pension_amount >= 3000)
OR
(pension_code = 2 AND pension_amount = 1500)
)http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_constraints.htm#ADFNS282
Similar Messages
-
Problem in Creating Check boxes as a column in a table using MVC
I am trying to display a table format using the Model view controlers, with 1st column as a checkbox. if the user chooses some check boxes and submit the screen then i need to update the information in a custome table.
I am having a problem in creating the check boxes, also pls tell me how to catch the line items checked by the user in the table...
SriHI Srinivas
I am not getting what the exact problem is.....
I am giving you a work around.....to me it does not seems to be an Ideal Solution..But Probably it will solve your problem....
Changes To be Made in Page Layout...
In Pagelayout
<htmlb:tableView id = "tvX" width = "100%" visibleRowCount = "8" fillUpEmptyRows = "X" selectedRowIndexTable = "<%= selectedRowIndexTable %>"
<b>selectedrowindex = "<%= selectedrowindex %>"
onrowselection = "select"</b>
selectionMode = "MULTISELECT" table = "<%= sflight %>" />
<b>selectedindexrow is an attribute of type INT4</b>
In Do handle event.....instead of using the previous code use this one...
if event->id = 'SUBMIT'.
DATA: WA TYPE INT4.
LOOP AT SELECTEDROWINDEXTABLE INTO WA.
*Here you can read your table of TABLEVIEW with index *equal to WA into a workarea and then use that workarea *to update the customer table ENDLOOP.
elseif event->id = 'tvX'.
tv ?= CL_HTMLB_MANAGER=>GET_DATA( request = request name = 'tableView' id = 'tvX' ).
IF tv IS NOT INITIAL.
table_event = tv->data.
selectedRowIndex = table_event->SELECTEDROWINDEX.
append selectedrowindex into SELECTEDROWINDEXTABLE.
endif.
ENDIF.
Meanwhile..Let me check why that code does not work.....
Hope it solve your problem....
Cheers:)
Mithlesh -
Check constraint in Data Modeler
Hi
I have a problem with merging two logical models.
in first I have a table with column ranking number(2),
in second model I modify this column:
ranking varchar2(10) default 'A'
and create check constraint ranking_ch:
ranking..... check ('A', 'B',.....)
Then I compare models I have only
alter table....
modify ranking varchar2(10) default 'A'
but I have not constraint ranking_ch.
Why?Thanks.
Another topic:
I have a problem with reverse engineering with Data Modeler:
1.I have a simple script (*.sql):
create table jw
(a number(2),
b varchar2(30)
2.I use function file/import/ddl file - on Relational diagram is OK:
I have table with two columns.
3. I use function Engineer to Logical Model and I see entity with:
a numeric_0_2_0
b varchar_0_0_30
Modeler creates two new domains.
Why? -
Peculiar problem in oracle 10g on AIX 5.3.0 With Check constraints
Hi Every One,
I am facing peculiar problem in oracle 10.2.0.1.0,AIX 5.3.0. I created table with check constraints like this
create table test1 (name nvarchar2(1),check (name in('Y','N')));
SQL> create table test1 (name nvarchar2(1),check (name in('Y','N')));
Table created.
SQL> insert into test1 values ('Y');
1 row created.
SQL> COMMIT;
SQL> select from test1 where name = 'Y';* Why this statement is n't working
no rows selected
SQL> select * from test1;
N
Y
ANOTHER INTERSTING ONE IS
SQL> select * from test1 where name in('Y'); Why this statement is n't working
no rows selected
SQL> select * from test1 where name in('Y','Y'); it's working
N
Y
SQL> select * from test1 where name in('','Y'); it's working
N
Y
SQL> select * from test1 where name in('7','Y'); it's working
N
Y
Like
SQL> select * from test1 where name like 'Y'; it's not working
no rows selected
I created a table without check constraints
SQL> create table test2 (name nvarchar2(1));
Table created.
SQL> insert into test2 values ('Y');
1 row created.
SQL> select * from test2;
N
Y
SQL> select * from test2 where name ='Y'; it's working
N
Y
SQL> select * from test2 where name like 'Y'; it's working
N
Y
Database Details
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8MSWIN1252
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.1.0
Why it's happening. Whehter check constraint is valid or not in Equallity operator and like and in .
Whereever we using single character column with check constraint,it's working with Equality operator and like and in.
IT'S WORKING FINE WITHOUT CHECK CONSTRAINTS.WE HAVE TWO AIX MACHINES WITH ORACLE10G.THE SAME PROBLEM OCCURING IN TWO MACHINES
PLEASE HELP ME .
THANK YOU,
WITH REGARDS,
N.VINODHh
Edited by: user3266490 on Dec 3, 2008 2:30 AM -
Is it possible to create a dynamic(with a select) check constraint?
create table a (col_to_be_coded_fora number);
create table b (col_to_be_coded_forb number);
create table c (col_name varchar2(20), col_code number, col_desc varchar2(20));
insert into c values ('col_to_be_coded_fora', 1, 'active');
insert into c values ('col_to_be_coded_fora', 2, 'de-active');
insert into c values ('col_to_be_coded_fora', 3, 'pending');
insert into c values ('col_to_be_coded_forb', 10, 'school');
insert into c values ('col_to_be_coded_forb', 20, 'hospital');
insert into a values ( 1); -- meaning 'active' for table a, column col_to_be_coded_fora, can go in
insert into a values (10); -- meaning nothing for table a, column col_to_be_coded_fora, must give error
insert into b values ( 1); -- meaning nothing for table b, column col_to_be_coded_forb, must give error
insert into b values (10); -- meaning 'school' for table b, column col_to_be_coded_fora, can go in
I know i can handle this problem with dividing table c into to tables and creating foreign key relationship.
in this demo case i have only a and b, 2 tables but i want to encode thousands of tables with a table like c.
İs it possible to create a dynamic check constraint on a table which selects c table for the inputs that have permision?
Or do i have to use after insert, update triggers on table a and b to ensure this functionality?
Is there a smarter implementation for this need, may be a design change?
Thank you,
Kind regards.
TonguçHi Tonguç,
A small design change makes it possible to do this with simple foreign key constraints.
I would do something like:
ual303@ORKDEV01> CREATE TABLE c (
2 col_name VARCHAR2(20),
3 col_code NUMBER,
4 col_desc VARCHAR2(20),
5 PRIMARY KEY (col_name, col_code)
6 );
Tabel is aangemaakt.
ual303@ORKDEV01> CREATE TABLE a (
2 col_to_be_coded_fora NUMBER PRIMARY KEY,
3 col_name VARCHAR2(20) DEFAULT 'col_to_be_coded_fora' CHECK (col_name = 'col_to_be_coded_fora'),
4 FOREIGN KEY (col_name, col_to_be_coded_fora) REFERENCES c
5 );
Tabel is aangemaakt.
ual303@ORKDEV01> CREATE TABLE b (
2 col_to_be_coded_forb NUMBER PRIMARY KEY,
3 col_name VARCHAR2(20) DEFAULT 'col_to_be_coded_forb' CHECK (col_name = 'col_to_be_coded_forb'),
4 FOREIGN KEY (col_name, col_to_be_coded_forb) REFERENCES c
5 );
Tabel is aangemaakt.
ual303@ORKDEV01> insert into c values ('col_to_be_coded_fora', 1, 'active');
1 rij is aangemaakt.
ual303@ORKDEV01> insert into c values ('col_to_be_coded_fora', 2, 'de-active');
1 rij is aangemaakt.
ual303@ORKDEV01> insert into c values ('col_to_be_coded_fora', 3, 'pending');
1 rij is aangemaakt.
ual303@ORKDEV01> insert into c values ('col_to_be_coded_forb', 10, 'school');
1 rij is aangemaakt.
ual303@ORKDEV01> insert into c values ('col_to_be_coded_forb', 20, 'hospital');
1 rij is aangemaakt.
ual303@ORKDEV01> -- meaning 'active' for table a, column col_to_be_coded_fora, can go in
ual303@ORKDEV01> insert into a(col_to_be_coded_fora) values ( 1);
1 rij is aangemaakt.
ual303@ORKDEV01> -- meaning nothing for table a, column col_to_be_coded_fora, must give error
ual303@ORKDEV01> insert into a(col_to_be_coded_fora) values (10);
insert into a(col_to_be_coded_fora) values (10)
FOUT in regel 1:
.ORA-02291: integrity constraint (UAL303.SYS_C0033537) violated - parent key not found
ual303@ORKDEV01> -- meaning nothing for table b, column col_to_be_coded_forb, must give error
ual303@ORKDEV01> insert into b(col_to_be_coded_forb) values ( 1);
insert into b(col_to_be_coded_forb) values ( 1)
FOUT in regel 1:
.ORA-02291: integrity constraint (UAL303.SYS_C0033540) violated - parent key not found
ual303@ORKDEV01> -- meaning 'school' for table b, column col_to_be_coded_fora, can go in
ual303@ORKDEV01> insert into b(col_to_be_coded_forb) values (10);
1 rij is aangemaakt.
ual303@ORKDEV01>Cheers,
Colin -
10g R2 NVARCHAR2 check constraint problems
Hi, Thanks for taking a look...
I've just installed 10g R2 on Solaris 10 and run into a small problem with NVARCHAR2s.
I have a table with a check constraint to make sure the column is a valid value on an nvarchar2 column. Querying the table for a specific value results in no data found, however the data appears to be intact.
The database NLS_CHARACTERSET is AL32UTF8 and NLS_NCHAR_CHARACTERSET is AL16UTF16.
I think the following script results can show the problem better than I can explain it.
Any suggestions would be appreciated. Thanks.
Mike
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Apr 17 13:51:40 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning and Data Mining options
SQL> @problem_script.sql
SQL> create table foo (
2 bar nvarchar2(10) constraint ck_bar check (bar in ('abc','def'))
3 );
Table created.
SQL> insert into foo values ('abc');
1 row created.
SQL> commit;
Commit complete.
SQL>
SQL> REM Strange. This worked in every version prior to 10g R2.
SQL> REM Why doesn't it work now?
SQL>
SQL> select * from foo where bar = 'abc';
no rows selected
SQL>
SQL> REM Even more strange is why this doesn't work:
SQL>
SQL> select * from foo where bar = N'abc';
no rows selected
SQL>
SQL> REM Stranger still are these two queries:
SQL>
SQL> select bar, decode(bar, 'abc', 'It matches', 'No it doesnt')
2 from foo;
BAR DECODE(BAR,'A
abc It matches
SQL>
SQL> REM This is still strange, but not unexpected given the prior query
SQL>
SQL> select bar, decode(bar, 'abc', 'It matches', 'No it doesnt')
2 from foo
3 where bar = 'abc';
no rows selected
SQL>
SQL> REM Strangest of all is why this DOES work:
SQL>
SQL> alter table foo disable constraint ck_bar;
Table altered.
SQL> select * from foo where bar = 'abc';
BAR
abc
SQL>
SQL>
SQL> REM Regular varchars are unchanged...
SQL>
SQL> create table bar (
2 foo varchar2(10) constraint ck_foo check (foo in ('abc','def'))
3 );
Table created.
SQL> insert into bar values ('abc');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from bar where foo = 'abc';
FOO
abcNope.
SQL> select * from foo where bar = TO_NCHAR('abc');
no rows selected
Of all the things I've tried (and I think I've tried just about everything), only the TO_CHAR(bar) and disabling the check constraint work. The fact that DECODE(bar, 'abc', 'true', 'false') in the select list is also confusing since it's converted there correctly, but not in the WHERE clause. And why does it work as epxected when the constraint is disabled?
My thoughts are that it can't be an Oracle bug, otherwise I'm sure I wouldn't be the first to find it. I've built the instance using the same configuration script I used for the 10g R1 database that works, so the configuration parametes are the same.
More things that don't make sense:
SQL> select dump(bar), dump('abc') from foo;
DUMP(BAR)
DUMP('ABC')
Typ=1 Len=6: 0,97,0,98,0,99
Typ=96 Len=3: 97,98,99
SQL> select dump(bar), dump(to_nchar('abc')) from foo;
DUMP(BAR)
DUMP(TO_NCHAR('ABC'))
Typ=1 Len=6: 0,97,0,98,0,99
Typ=1 Len=6: 0,97,0,98,0,99
Thanks for your help though...
Mike -
Problem with check constraint in mysql
I am using mysql v8.14 and I have a problem on CHECK which is given below. I want to insert just 'friends' and 'all' on privacy attribute
but mysql inserts everything.
Can anyone help me, please? Thanks
CREATE TABLE `customer`
`cid` NUMERIC(6),
`cname` VARCHAR(25),
`password` VARCHAR(6),
`email` VARCHAR(25),
`phone` NUMERIC(12),
`privacy` VARCHAR(10),
PRIMARY KEY (`cid`),
CHECK (`privacy`= `friends` OR `privacy`= `all`)
);I am not familiar with MySQL syntax, but I would offer this observation:
In your definition of the check constraint:
CHECK (`privacy`= `friends` OR `privacy`= `all`)you are using the same delimiters (`) around both your column names and your literals. Is that correct?
i.e. in Oracle I would use
CHECK(privacy = 'friends' OR privacy = 'all')because privacy is not a literal, it is a column name.
Is your syntax correct? -
hi..
i am attempting to create a primary constraint on one table which containts
more than 50 lacs records.when i tried to add constraints with enable novalidate,but its failed to create a constraints on the table.
we have to preserve the data which already presented in the table. there is no way to delete and change the records which is presented now.
please in what way to over come this problem.
by
ravikumarBANNER
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Prod
PL/SQL Release 10.1.0.2.0 - Production
CORE 10.1.0.2.0 Production
TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
NLSRTL Version 10.1.0.2.0 - Production
desc hp_tran_dtls
Name Null? Type
TC VARCHAR2(3)
DOC_NO VARCHAR2(15)
DOC_DT DATE
AGR_NO VARCHAR2(10)
TRAN_DTLS_SRNO NUMBER(6)
GL_CODE NOT NULL VARCHAR2(5)
SUB_CODE VARCHAR2(15)
REF_NO VARCHAR2(15)
REF_DT DATE
CHQ_NO VARCHAR2(10)
CHQ_DT DATE
ACT VARCHAR2(5)
DIV VARCHAR2(5)
EMP VARCHAR2(5)
PARTICULARS VARCHAR2(60)
DBCR CHAR(1)
AMT NOT NULL NUMBER(16,2)
TRN_TYPE CHAR(1)
LOCK_REC_FLG CHAR(1)
TMP_RECNO VARCHAR2(10)
VALUE_DT DATE
CHQ_BANK VARCHAR2(10)
BRANCH NOT NULL VARCHAR2(5)
SECTOR VARCHAR2(5)
PRODUCT VARCHAR2(5)
PORTFOLIO VARCHAR2(5)
FUTURE1 VARCHAR2(5)
FUTURE2 VARCHAR2(5)
BRANCHNM VARCHAR2(30)
REASON1 VARCHAR2(5)
TMP_REC_DT DATE
ADDL_AMT NUMBER(14,2)
TRANS_NAT VARCHAR2(5)
REC_STATUS CHAR(1)
BUSI_AREA VARCHAR2(5)
FA_TRANSFER CHAR(1)
CHQ_HNDL VARCHAR2(60)
CHQ_HNDL_TAG CHAR(1)
INS_CHECK VARCHAR2(2)
FA_POST_IND VARCHAR2(3)
FA_POST_DOC_NO VARCHAR2(10)
i have to create primary(tc,doc_no,TRAN_DTLS_SRNO) -
How to create this check constraint
create table emplt
( emplt_pk number,
indvl_pk number,
start_dt date,
end_dt date,
lct_fl char(1),
sup_fl char(1),
br_pk number,
nro_pk number,
default_fl char(1) default 'N' );
INSERT INTO emplt
values(
1001, 101, to_date('01-01-2005', 'MM-DD-YYYY' ), NULL, 'Y','N',123,NULL,NULL );
INSERT INTO emplt
values(
1002, 101, to_date('02-01-2005', 'MM-DD-YYYY' ), NULL, 'Y','N',NULL,0001,NULL );
INSERT INTO emplt
values(
1003, 102, to_date('02-01-2005', 'MM-DD-YYYY' ), NULL, 'Y','N',NULL,0001,NULL );
Is it possible to create a check constraint on this table that enforces that for a given indvl_pk, br_pk and nro_pk
there is only one row with dflt_fl = 'Y'?
Thanks in advance!Say,
SQL> create unique index empli_ui on emplt(case default_fl when 'Y' then indvl_pk end,
2 case default_fl when 'Y' then br_pk end,
3 case default_fl when 'Y' then nro_pk end
4 )
5 /
 
Index created.
 
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(1,2,3,'J');
 
1 row created.
 
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(1,2,3,'J');
 
1 row created.
 
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(3,2,1,'A');
 
1 row created.
 
SQL>
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(3,2,1,'A');
 
1 row created.
 
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(3,2,1,'Y');
 
1 row created.
 
SQL>
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(3,2,1,'Y');
insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.EMPLI_UI) violated
 
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(1,2,3,'Y');
 
1 row created.
 
SQL> insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
2 values(1,2,3,'Y');
insert into emplt (indvl_pk,br_pk,nro_pk,default_fl)
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.EMPLI_UI) violatedRgds. -
Creating a check constraint with a join
Hi,
is it possible to create a check constraint under the data models using a join on lookup table?
I would like to filter out tuples in the target table involving conditions from an another table.
RegardsNumbers has checkable boxes but they don't work once exported to PDF.
And there is iBooks Author as well which can create ePubs.
If it is just for yourself on your Mac I highly recommend Qu-s.
Peter -
Primary key and relevant not null check constraints....
Hi ,
There are some constraints of primary key type and not null check constraints on columns which constitute each primary key....
Should I/Do I have to drop them....????
Do they burden the db at the time of data validation....????
Thanks...
SimHi,
>>There are some constraints of primary key type and not null check constraints on columns which constitute each primary key..
In fact, a column that constitutes a primary key, by default cannot accept NULL values. In this case, defines a PK column as NOT NULL would not be necessary.
LEGATTI@ORACLE10> create table x (id number constraint pk_x primary key);
Table created.
LEGATTI@ORACLE10> desc x
Name Null? Type
ID NOT NULL NUMBER
LEGATTI@ORACLE10> select constraint_name,constraint_type,table_name,search_condition from user_constraints where table_name='X';
CONSTRAINT_NAME C TABLE_NAME SEARCH_CONDITION
PK_X P X
LEGATTI@ORACLE10> create table y (id number not null constraint pk_y primary key);
Table created.
LEGATTI@ORACLE10> desc y
Name Null? Type
ID NOT NULL NUMBER
LEGATTI@ORACLE10> select constraint_name,constraint_type,table_name,search_condition from user_constraints where table_name='Y';
CONSTRAINT_NAME C TABLE_NAME SEARCH_CONDITION
SYS_C006327381 C Y "ID" IS NOT NULL
PK_Y P Y
LEGATTI@ORACLE10> alter table y drop constraint SYS_C006327381;
Table altered.
LEGATTI@ORACLE10> desc y
Name Null? Type
ID NOT NULL NUMBER
LEGATTI@ORACLE10> insert into y values (NULL);
insert into y values (NULL)
ERROR at line 1:
ORA-01400: cannot insert NULL into ("LEGATTI"."Y"."ID")
LEGATTI@ORACLE10> insert into y values (1);
1 row created.
LEGATTI@ORACLE10> insert into y values (1);
insert into y values (1)
ERROR at line 1:
ORA-00001: unique constraint (LEGATTI.PK_Y) violated
>>Should I/Do I have to drop them....????
I don't see any problem, otherwise, drop the NOT NULL constraint is the same with alter the column table like below:
LEGATTI@ORACLE10> create table z (id number not null constraint pk_z primary key);
Table created.
LEGATTI@ORACLE10> select constraint_name,constraint_type,table_name,search_condition from user_constraints where table_name='Z';
CONSTRAINT_NAME C TABLE_NAME SEARCH_CONDITION
SYS_C006328420 C Z "ID" IS NOT NULL
PK_Z P Z
LEGATTI@ORACLE10> desc z
Name Null? Type
ID NOT NULL NUMBER
LEGATTI@ORACLE10> alter table z modify id NULL;
Table altered.
LEGATTI@ORACLE10> select constraint_name,constraint_type,table_name,search_condition from user_constraints where table_name='Z';
CONSTRAINT_NAME C TABLE_NAME SEARCH_CONDITION
PK_Z P Z
LEGATTI@ORACLE10> desc z
Name Null? Type
ID NOT NULL NUMBERCheers
Legatti -
Having a problem with creating/using a primary key on a view
I have a problem with a primary key on a view
I created the view and primary key as follows:
CREATE OR REPLACE FORCE VIEW "MDD"."ROCK_LU" ("DESCRIPTION",
UNIQUE ("DESCRIPTION") RELY DISABLE,
CONSTRAINT "ROCK_LU_PK" PRIMARY KEY ("DESCRIPTION") RELY DISABLE) AS
SELECT DESCRIPTION
FROM MRMC_LU
WHERE ROCK = 'T';
The view with the primary key appears to have been created as there were no error messages. (The above was from the sql tab in sql developer.)
When I try to create the foreign key on my mdd_hr table - I get an error
/* hr_name - foreign key */
ALTER TABLE mdd_hr add CONSTRAINT hr_name_fk FOREIGN KEY (hr_name) REFERENCES rock_lu(description);
Error report:
SQL Error: ORA-02270: no matching unique or primary key for this column-list.
When I lookup the index in sql developer, rock_lu_pk is not there.
All my other foreign keys work - but I don't understand what I am doing wrong with this one. Please help.
glenn
Background - as to why I want to use a view as a lookup table.
The MRMC_LU table that the view is created from is structured like:
DESCRIPTION - MINERAL - ROCK - MODIFIER - COMMODITY
ANHYDRITE - T - T - T
APLITE - T - - T
GRAPHITE - T - - - T
GREYWACKE - - T
DESCRIPTION is a list of all names of minerals, rocks, modifiers and commodities. T is entered in each valid field. Often a description name is used for both a mineral and a rock or a mineral and a commodity or any other combination. Because this database is just starting up, it was more efficient to create one table that could be updated (and thereby automatically update the MINERAL_LU, ROCK_LU, MODIFIER_LY, COMMODITY_LU views) rather than create and maintain four separate but similar tables. A primary key cannot be generated for the MRMC_LU table as there are nulls in each column
except DESCRIPTION.
Perhaps there is a smarter way to do this?http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_85a.htm#2065512
You can specify constraints on views and object views. You define the constraint at the view level using the out_of_line_constraint clause. You define the constraint as part of column or attribute specification using the inline_constraint clause after the appropriate alias.
Oracle does not enforce view constraints. However, operations on views are subject to the integrity constraints defined on the underlying base tables. This means that you can enforce constraints on views through constraints on base tables.
Restrictions on View Constraints
View constraints are a subset of table constraints and are subject to the following restrictions:
You can specify only unique, primary key, and foreign key constraints on views. However, you can define the view using the WITH CHECK OPTION clause, which is equivalent to specifying a check constraint for the view.
Because view constraints are not enforced directly, you cannot specify INITIALLY DEFERRED or DEFERRABLE.
View constraints are supported only in DISABLE NOVALIDATE mode. You must specify the keywords DISABLE NOVALIDATE when you declare the view constraint, and you cannot specify any other mode.
You cannot specify the using_index_clause, the exceptions_clause clause, or the ON DELETE clause of the references_clause.
You cannot define view constraints on attributes of an object column.
Rgds. -
Problem when creating Database (Database, OS and hardware Configuraiton included)
Problem when creating Database:
Below are the problems, which I faced during creation of database. I have mentioned both the problem separately. Plus the log file maintained by Oracle during installation. It might help in diagnosing the error. Plus a little conclusion with I turned up to.
There are two problems, when creating database with Oracle Database Assistant. One when creating pre tuned database from CD. And second when creating customized database giving options your self.
Problem # 1:
When creating pre tuned database from CD. The process of creating Database is 90 % complete and is at step # 3 Initializing Database. It gives error ORA-03113: end-of-file on communication channel.
I searched following oracle help for this problem.
ORA-03113: end-of-file on communication channel
Cause: An unexpected end-of-file was processed on the communication channel. The problem could not be handled by the Net8, two-task software. This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally, or if there is a physical failure of the interprocess communication vehicle, that is, the network or server machine went down.
Action: If this message occurs during a connection attempt, check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server. If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of customer support.
Conclusion:
What I conceive from this problem and the help available is that, I have to install NET8 again. But I am not sure about the solution, please tell me whether I am rite or not.
Problem # 2:
When creating database with custom option. The process of creating Database is 2 % complete and is at step # 2 Creating Database Files. It gives error ORA-12571: TNS:packet writer failure.
I searched following oracle help for this problem.
ORA-12571: TNS:packet writer failure
Cause: An error occurred during a data send.
Action: Not normally visible to the user. For further details, turn on tracing and re-execute the operation. If error persists, contact Worldwide Customer Support.
Conclusion:
What I conceive from this problem and the help available is that, I have to install NET8 again. But I am not sure about the solution, please tell me whether I am rite or not.
Log File Showing Error :
Result code for launching of configuration tool is 0
Launched configuration tool Oracle Database Configuration Assistant
Command which is being spawned is C:\Program Files\Oracle\jre\1.1.7\bin/jrew.exe -Duser.dir=d:\oracle\ora81\assistants\dbca\jlib -classpath ";C:\Program Files\Oracle\jre\1.1.7\lib\rt.jar;C:\Program Files\Oracle\jre\1.1.7\lib\i18n.jar;d:\oracle\ora81\jlib\ewt-3_3_6.jar;d:\oracle\ora81\jlib\share-1_0_8.jar;d:\oracle\ora81\jlib\swingall-1_1_1.jar;d:\oracle\ora81\assistants\dbca\jlib\dbassist.jar;d:\oracle\ora81\assistants\jlib\jnls.jar;d:\oracle\ora81\assistants\jlib\acc.jar;d:\oracle\ora81\jlib\help-3_1_8.jar;d:\oracle\ora81\jlib\ice-4_06_6.jar;d:\oracle\ora81\jlib\netcfg.jar;" DBCreateWizard -progress_only -responseFile NO_VALUE -createtype seed -numusers NO_VALUE -apptype NO_VALUE -cartridges NO_VALUE -options NO_VALUE -demos NO_VALUE -seedloc d:\oracle\ora81\starterdb -sid ora8i -orabase d:\oracle -clususer NO_VALUE -cluspswd Protected value, not to be logged -nodeinfo NO_VALUE -gdbName ora8i
Invalid Exit Code. The following result code will be used for configuration tool: 1
Configuration tool Oracle Database Configuration Assistant failed
The datafiles will be copied from the CD to d:\oracle\oradata\ora8i. The Oracle Database Configuration Assistant will begin creating the database.
An Oracle database will be created for you. The database name will be ora8i. The system identifier for the database will be ora8i. The password for the INTERNAL account will be ******, the SYS account will be change_on_install and the SYSTEM account will be manager.
Log File of Installation:
The above code is a part of the log file, which is generated by Oracle installer at C:\Program Files\Oracle\Inventory\Log\..
I just pasted the part of code, highlighted is the code showing error with Oracle Database Configuration Assistant.
Software & Hardware Configuration are as follow:
Software:
Database
Oracle 8.1.7.0.0 (Oracle8i)
Operating System
Microsoft Windows 2000
5.00.2195
Service Pack 2
Hardware:
x86 Family 6 Model 8 stepping
10
AT/AT COMPITABLE
260,400 KB RAMDont't worry about that. Before you
create a table(or view), it is wise to
drop the table(or view) with the same name.
If the name doesn't exist, of course there
is an error message. See the following script:
-------------------begin-----------
drop table students cascade constraints;
create table students (
sid varchar2(5),
fname varchar2(20),
lname varchar2(20) not null,
minit char,
primary key (sid));
--------------end-----------------
Good day!
null -
Check constraint from domain missing after generation
Hi,
I've got the following problem with designer 10g. When I create a column and specify a specific domain, then generate the scripts for 10g (or 8i,9,...) the check constraints that is specified in the domain goes missing. The strange part is that we have about 50 domains and 49 of them work perfect but one of them just doesn't want to be generated. I've been comparing the domain to the others but I don't see any major differences that would cause the problem. Anyone know what could cause the problem or where I should (I think it is somewhere in the design & generate part) ?
Help would be greatly appreciated.
Grtz
Message was edited by:
Yves CKent,
in the DM v3.3.0.747 I have defined domains using value lists that lets you specify data values for the domain instead of define a check constraint, example Domain Name: "YesNo" and Value List -> "Y", "N".
After adding a new column and set with the domain created, I force to apply the standard names to table with the button "Naming Rules", and the constraint created is correctly named . Notice that I need to force to apply the standard names because by default these constraints are created without name.
Now I checked create a domain with check constraint definition for 11g (instead of using a list of values) and the behavior was the same.
I recently upgraded to version 4.0EA2 and it works in the same way for both, so see if forcing to apply the "naming rules" solves your issue.
Regards.
Ariel. -
Oracle check constraint bug ?
Hi,
This is an 'interesting' bug:
create table mytable (
id number,
status number,
constraint mytable_pk primary key (id)
insert into mytable (id, status) values (1, 0);
insert into mytable (id, status) values (2, -1);
On XE (10.2.0.1) and 10.2.0.4:
Following command gives the expected ORA-02293 error (using string values instead of numbers): alter table mytable add constraint mytable_status_chk check (status in ('0', '1'));
BUT no error with the following command: alter table mytable add constraint mytable_status_chk check (status in ('-1', '0', '1'));
On XE:
The query select * from mytable where status=0 returns no records until the constraint is dropped again !
Best regards,
Serge
Edited by: sergeko on Nov 19, 2010 11:19 AM
Edited by: sergeko on Nov 19, 2010 11:21 AMI don't have access to any 10.x or XE currently and cannot reproduce on EE 9.2.0.9 or 11.1.0.6.
It's possible that you're running into an optimizer issue with the constraint.
This might be visible if you run an explain plan on the statement, get the execution plan via dbms_xplan.display and check the predicates section both with and without the constraint.
I take it that you don't get the problem if you use a check constraint with numbers not strings.
I wonder also whether it makes a difference if you declare status as not null.
Edited by: DomBrooks on Nov 19, 2010 10:44 AM
Maybe you are looking for
-
I cannot open firefox at all.
-
Process: Mail [461] Path: /Applications/Mail.app/Contents/MacOS/Mail Identifier: com.apple.mail Version: 4.5 (1084) Build Info: Mail-10840000~1 Code Type: X86-64 (Native) Parent Process: launchd [257] Date/Time: 2012-04-14 10:49
-
Can I list files on local drive in tab in a particular sort order?
I find it useful to have Firefox list files on a local drive or network drive such as: file:///u:/captures/ Is there a way to have it list in the files in a tab in a particular order such as newest to oldest?
-
What are valid and invalid email address characters
What are valid and invalid email address characters in Exchange 2010, for example can you have Conan.O'[email protected] is there a document that shows the valid and invalid sysmbols?
-
TMSXE 4.1 upgrade failing
I am trying to upgrade TMSXE from 4.0 to 4.1. It is not a cluster deployment. I stopped the "Cisco TMSXE" service. But once the upgrade is complete, it launches the "ClusterNodeWizard" window and gives me an error saying "Cannot complete upgrade whil