Composite Primary Key question
I have a new question regarding composite primary keys on another table I have created.
I have the following table with the following definition:
CREATE TABLE "APSOM"."CPULIST"
( "CPU_ID" VARCHAR2(10 BYTE),
"SERVER_ID" VARCHAR2(10 BYTE),
"CREATED_DATETIME" TIMESTAMP (6),
"UPDATED_DATETIME" TIMESTAMP (6)
with the following composite PK definition:
ALTER TABLE "APSOM"."CPULIST" ADD CONSTRAINT "CPULIST_PK" PRIMARY KEY ("CPU_ID", "SERVER_ID")
Then, I inserted data in the following way:
insert into CPULIST
values ('CPU1', 'P1', SYSDATE, SYSDATE);
with following CPU ID values from 'CPU1' to 'CPU16' for SERVER ID value 'P1' also inserted as well.
Now, I am trying to insert values for SERVER ID value 'P2'
insert into CPULIST
values ('CPU1', 'P2', SYSDATE, SYSDATE);
and I am getting the following error message:
Error starting at line 1 in command:
insert into CPULIST
values ('CPU1', 'P2', SYSDATE, SYSDATE)
Error report:
SQL Error: ORA-00001: unique constraint (APSOM.XPKCPULIST) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
Using the following SQL command:
select column_name from all_cons_columns
where constraint_name = 'CPULIST_PK'
and owner = 'APSOM';
I get the following records
1. CPU_ID
2. SERVER_ID
This error does not make sense to me. Any help would be appreciated.
Thanks,
Patrick Quinn
Operations
Turning Point Global Solutions
So, if there is a hidden unique constraint XPKCPULIST that cannot be pulled the all_cons_column table and I drop the XPXCPULIST constraint with the following SQL:
alter table CPULIST drop constraint XPKCPULIST;
Error starting at line 1 in command:
alter table CPULIST drop constraint XPKCPULIST
Error report:
SQL Error: ORA-02443: Cannot drop constraint - nonexistent constraint
02443. 00000 - "Cannot drop constraint - nonexistent constraint"
*Cause: alter table drop constraint <constraint_name>
*Action: make sure you supply correct constraint name.
What can I do to get past this so I can perform the following insert and receive this error message??
insert into CPULIST
values ('CPU1', 'P2', SYSTIMESTAMP, SYSTIMESTAMP);
Error starting at line 1 in command:
insert into CPULIST
values ('CPU1', 'P2', SYSTIMESTAMP, SYSTIMESTAMP)
Error report:
SQL Error: ORA-00001: unique constraint (APSOM.XPKCPULIST) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
Similar Messages
-
Composite Primary key & Primary key questions
Background:
1.5 TB data warehouse. All tables use at least a 3 column composite Primary key. Most use 3. col1||col2||col3 to achieve uniqueness.
col1= very low cardinality. 99% of the values are '0'
col2 = high cardinality. (SSN's, loaded monthly)
col3 = low cardinality. (monthly sequence number used for partitioning)
From what I've read, the first column used in a composite primary key also receives its own index. If that is correct, then the primary key being used is losing its effectiveness by putting a very low cardinality column as the first column of the Primary key. By moving col2 to the first position of the composite key, I would be obtaining an index on SSN which would be much more useful. (Please correct me if I'm wrong) Or since the index would be so large anyway, the CBO would just do full table scans which is what I'm trying to get away from.
This Primary key is used to ensure uniqueness during loads. Other than that, it really has no purpose and is never queried by the user. (WHERE col1||col2||col3 = xxxxxxxxx)
As a DBA, I see this massive tablespace for holding the primary keys now reaching in excess of 157 GB and it seems like such a waste of space. The problem I'm running across is how to ensure uniqueness during the loads w/o having to store the unique values. (the 157 GB) If I drop the PK's, then create unique indexes just for the loads, then the unique index would be generated against the entire table, which would take forever.
If you create a local index (what I want in the end) it still has to create the index for all previous partitions (250+ partitions). You can't create a specific 'local' index on a partition. You create a local index on the table and when a new partition is added, the index is then added as well. That's what I want to do with some of my fields like SSN but for loading purposes, this isn't going to help me.
I need a way to ensure uniqueness during a monthly load of a new partition (col1||col2||col3) but w/o having to store these values for eternity. Right now it's the primary key, so it has to be stored. I hope I'm making sense here. Any ideas?I think you need some clarification about the index supporting the primary key.
The primary key is unique - the database will enforce this for you.
All of the columns in the primary key are in the index that enforces the key (not just the first column).
Usually this index is a unique index, but you can have a non-unique index supporting a primary key.
I'm a little confused with some of your other statements
how to ensure uniqueness during the loads w/o having to store the unique valuesIf you don't store the value how do you know it is unique?
Did you mean that you don't want to store the key values in both the table and the index?
You may want to consider making col3 (the partition key) the leading column of the index, so you can create a local (instead of global) PK index.
I wouldn't worry too much about col1 (the column full of mostly zeros) - numbers are stored variable length. A NUMBER(38) that holds a zero takes no more space than a NUMBER(1) that holds a zero. -
Error While Deploying A CMP Entity Bean With A Composite Primary Key
Hello all,
I have a problem deploying CMP Entity beans with composite primary keys. I have a CMP Entity Bean, which contains a composite primary key composed of two local stubs. If you know more about this please respond to my post on the EJB forum (subject: CMP Bean Local Stub as a Field of a Primary Key Class).
In the mean time, can you please tell me what following error message means and how to resolve it? From what I understand it might be a problem with Sun ONE AS 7, but I would like to make sure it's not me doing something wrong.
[05/Jan/2005:12:49:03] WARNING ( 1896): Validation error in bean CustomerSubscription: The type of non-static field customer of the key class
test.subscription.CustomerSubscriptionCMP_1530383317_JDOState$Oid must be primitive or must implement java.io.Serializable.
Update the type of the key class field.
Warning: All primary key columns in primary table CustomerSubscription of the bean corresponding to the generated class test.subscription.CustomerSubscriptionCMP_1530383317_JDOState must be mapped to key fields.
Map the following primary key columns to key fields: CustomerSubscription.CustomerEmail,CustomerSubscription.SubscriptionType. If you already have fields mapped to these columns, verify that they are key fields.Is it enough that a primary key class be serializable or all fields have to implement Serializable or be a primitive?
Please let me know if you need more information to answer my question.
Thanks.
NikolaHi Nikola,
There are several problems with your CMP bean.
1. Fields of a Primary Key Class must be a subset of CMP fields, so yes, they must be either a primitive or a Serializable type.
2. Sun Application Server does not support Primary Key fields of an arbitrary Serializable type (i.e. those that will be stored
as BLOB in the database), but only primitives, Java wrappers, String, and Date/Time types.
Do you try to use stubs instead of relationships or for some other reason?
If it's the former - look at the CMR fields.
If it's the latter, I suggest to store these fields as regular CMP fields and use some other value as the PK. If you prefer that
the CMP container generates the PK values, use the Unknown
PrimaryKey feature.
Regards,
-marina -
Doubt in composite primary key
hi, i need ans for the following question.
1. what is composite primary key
2.in what situation it is used?
3.advantages and dis advantages of the composite primary key.
4.example for composite primary key.
please give me ans for this,pleaseeeeeeeeeeeee1) A primary key that consists of more than one column
2) When you like natural keys more than surrogate keys (search the forum for numerous discussions on this subject)
3) Advantage: By duplicating key information in your fact tables, you may have enough information in the key values to prevent accessing the real table
Disadvantage: Your key values become part of other tables, preventing updates of key values (and natural key values can and will eventually almost always change, warning: this is an opinion)
4) tables order and order_items. Order has a order_no as a primary key, order_items's primary key is (order_no,sequence_no)
Regards,
Rob. -
Can a composite primary key column be null
Hi All,
It will be a silly question but still I would like to ask can a composite primary key column be null?
Thanks,
Rafi.Rafi,
Why you think it would be allowed?
SQL> drop table test purge;
drop table test purge
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> create table test as select * from dba_objects;
Table created.
SQL> alter table test add primary key(object_id, owner);
Table altered.
SQL> insert into test(object_id, owner) values(null, 'aman');
insert into test(object_id, owner) values(null, 'aman')
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SYS"."TEST"."OBJECT_ID")
SQL> insert into test(object_id, owner) values(1,null);
insert into test(object_id, owner) values(1,null)
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SYS"."TEST"."OWNER")
SQL>HTH
Aman.... -
How to define Composite primary key for a Table
Hi ,
I am basically more into Java Programming , with little bit knowledge on Oracle as DataBase .so please excuse for my silly doubts .
Can anybody please tell me how to define a Composite Primary Key on a Table .
Thanks in advance .
Edited by: user672373773 on Sep 25, 2009 8:54 AMHere is an example right out of the Oracle documentation and the syntax for adding PK since you mention adding a composite PK.
Example creating composite index
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_indexing.htm#sthref594
Syntax for adding a PK (composite or not)
alter table oooooooo.tttttttt
add constraint tttttttt_PK
primary key (sample_column2,
sample_column1)
using index
tablespace IDXSPC
pctfree 05
initrans 04
maxtrans 08
storage (initial 16k
next 16k
maxextents 32
pctincrease 0);
-- dictionary management with restricted storage, change as desired.
HTH -- Mark D Powell -- -
Composite Primary Key using cmp
How can an Entity Bean with Composite Primary Key using Container Managed Persistance (CMP) be Deployed using in WebLogic Server 8.1
pls help meYour text is a bit confusing, but I think the answer is yes (it can be used). However, it would help to see the DDL that you are using (or that you propose to use) to avoid any misunderstandings. And please be specific about whether you are referring
to COLUMNS that are part of a primary key versus the primary key itself (whether it is composed of one column or multiple columns).
Lastly, why not just try it and see. -
I am using Sun One App Server PE8.
I have a class with a composite primary key field. When I place the following method in my Home interface:
public MyEjb findByPrimaryKey(MyEjbPrimaryKey pk) throws FinderException, RemoteException;I get the following error when deploying:
ejbFindByPrimaryKey(EjbPrimaryKey) is already defined in MyEjb1368202910_ConcreteImpl
public MyEjbPrimaryKey ejbFindByPrimaryKey (MyEjbPrimaryKey key)However, If i remove this method from the Home interface, i get the following error when running the verification tool:
Error: No single arg findByPrimaryKey(PrimaryKeyClass) method was found in home interface class [ MyEjb ].However, I can still deploy the EAR successfully.
Another related symptom of this problem, is if I include the following method in my Home interface:
public MyEjb findByPrimaryKey(String pkField1, String pkField2) throws FinderException, RemoteException;And call this method, I get the following exception at runtime:
java.rmi.RemoteException: Bean class for ejb [MyEjb] does not define a method corresponding to [Home] interface method [public abstract MyEjb MyEjbHome.findByPrimaryKey(java.lang.String,java
.lang.String) throws javax.ejb.FinderException,java.rmi.RemoteException]I get these same problems with all EJB's that use composite keys. Has anyone else had this problem?
Thanks
tobyThis is a CMP bean, with no ejbFindByPrimaryKey in the Bean class. Below, i have included the Home interface and the Bean class (with unneccessary code removed)
Thanks for looking at this for me.
BEAN CLASS
package lands.mc.bus.prod;
import java.rmi.*;
import java.util.*;
import javax.ejb.*;
public abstract class TopoMapBean implements EntityBean
private EntityContext entity;
public TopoMapBean()
public void setEntityContext(EntityContext ctx)
entity = ctx;
public void unsetEntityContext()
entity = null;
public TopoMapPrimaryKey ejbCreate(String mapName, String mapNumber, String mnemonic,String edition, String scale)
throws CreateException
// call setters...
return null;
public void ejbPostCreate( String mapName,
String mapNumber,
String mnemonic,
String edition,
String scale )
removed set/get methods
public void ejbStore() {}
public void ejbLoad() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void ejbRemove() {}
}HOME INTERFACE
package lands.mc.bus.prod;
import java.rmi.*;
import java.util.*;
import javax.ejb.*;
public interface TopoMapHome extends EJBHome
public TopoMap create(String mapName,
String mapNumber,
String mnemonic,
String edition,
String scale
throws CreateException, RemoteException;
public TopoMap findByPrimaryKey(String mapNumber, String edition) throws FinderException, RemoteException;
// doesnt deploy with this signature
// public TopoMap findByPrimaryKey(TopoMapPrimaryKey pkey) throws FinderException;
// have to use this method instead of findByPrimaryKey(String, String) above
public TopoMap findTopoMap(String mapNumber, String edition) throws FinderException, RemoteException; -
Querying on the basis of some attribute of composite primary key
Hello,
I am looking for suggestion about querying just on the basis of one attribute of the composite primary key.
TO exemplify,
I have a 6 attributes example A1,A2,A3,A4,A5,A6.
A1,A2 and A3 together, serve as composite primary key.Now,because of the need of the project,I want to do querying on the basis of any A1,A2 or A3.One way I could think of is to have secondary indices on each of A1,A2,A3.
Can some one explain me roughly how to go about it?
I am a new user of BerkeleyDB Java Edition,hence not sure what would be a good way to do it.I understand one way to do it,would be to keep A1,A2,A3 in the Key class and A1,A2,A3,A4,A5,A6 in the value class as well.Then create secondary indices on the A1,A2 and A3 individually.
Can someone suggest a more efficient way?
Thanks,
Will appreciate any suggestions.
PrateekExactly as you said. Create secondary indices on each attribute you want to index off of. I don't use the Java interface, but what you pretty much need to do is form your secondary key like so:
skey: pkey_individual_attribute
skeysize: pkey_individual_attribute_sizeHow to do this is documented in the BDB Java API docs:
For example:
class MyKeyCreator implements SecondaryKeyCreator {
public boolean createSecondaryKey(SecondaryDatabase secondary,
DatabaseEntry key,
DatabaseEntry data,
DatabaseEntry result)
throws DatabaseException {
// DO HERE: Extract the secondary key from the primary key and
// data, and set the secondary key into the result parameter.
return true;
SecondaryConfig secConfig = new SecondaryConfig();
secConfig.setKeyCreator(new MyKeyCreator());
// Now pass secConfig to Environment.openSecondaryDatabaseThe extractor function used to construct the secondary index is passed the primary key and primary data - therefore all the data is available to you with no need to duplicate the key within the data itself. While the standard example is to use some part of the primary data to form a secondary key - there's absolutely nothing against using only a part of the primary key to form a secondary key instead. The only thing you have to do is slice up said primary key and construct the "result" parameter to be a single attribute. The backend API already knows which composite key this secondary entry will be associated with and as such will implicitly form the data (or as you called it "value") section of the index (which will be the composite primary key passed to it).
The primary key/data should consist of the composite A1,A2,A3 with only A4,A5,A6 as data.
The secondary->get() call (within the Java API) takes a key and provides back the primary key and primary data (basically the same as the db->pget() call in the C API). Since you've already indexed individual attributes, based off of the composite key, into their own respective databases - you just query from one of your secondary indexes with whatever specific attribute as the key. You then use the filled in primary key and primary data to work off of. -
HOW TO GET COUNT IN OF COMPOSITE PRIMARY KEYS USING ECLIPSELINK
Hi all,
We are currently migrating our application form oracle 10g to 11 g and hence migrating from toplink to eclipselink.
we are unable to fire the count query and getting the following exception ...
Error Code: 909
Call: SELECT COUNT() FROM T_USER_MESSAGE t0, T_USER t2, T_MESSAGE_RECIPIENT t1 WHERE ((((t2.PERSISTENT_ID = ?) AND (t2.SITE_CODE = ?)) AND (t1.DELETED_BY_RECIPIENT = ?)) AND (((t2.PERSISTENT_ID = t1.RECIPIENT_ID) AND (t2.SITE_CODE = t1.RECIPIENT_SITE)) AND ((t0.PERSISTENT_ID = t1.MESSAGE_ID) AND (t0.SITE_CODE = t1.MESSAGE_SITE))))
bind => [13398610, 1, F]
please advise .
we suspect that this could be because of the composite primary key in one of the tables .
any pointers to specify how count(*) could be used in this scenario would be of great help ..
Thanks in advanceWhat is the query being used, include the JPQL/expression code.
What is the error message (I assume this is a database error?).
What version are you using, can you try the latest EclipseLink 2.1 release.
James : http://www.eclipselink.org -
Null in Composite Primary Key and "Primary keys must not contain null"
Hello all.
I'm a newbie concerning to JPA/EJB3, but I was wondering if toplinks doesn't support composite primary keys with null in some field (something perfectly right in any RDBMS).
I used JDeveloper (I'm using Oracle 10g database and JDeveloper 10.1.3.2.) wizards to generate JPA classes and I checked out generated files (with annotations), so they should be right (by the way, other O-R mappings for my model are working right, but this one).
I'm getting the next error:
Exception Description: The primary key read from the row [DatabaseRecord(
TSUBGRUPOSLDI.CD_GRUP => 01
TSUBGRUPOSLDI.CD_SUBGRUP => null
TSUBGRUPOSLDI.CG_POBL => 058
TSUBGRUPOSLDI.CG_PROV => 28
TSUBGRUPOSLDI.DSCR => Sanidad)] during the execution of the query was detected to be null. Primary keys must not contain null.
Compound primary key is (CD_GRUP, CD_SUBGRUP). No foreign keys, no joins (only a NamedQuery: "select o from ..."). It's the simplest case!
I checked out that everything runs ok if there's no "null" value in CD_SUBGRUP.
After some research (this and other forums) I'm beginning to believe that it's not supported, but not sure.
Am I doing sth wrong? If not, what is the reason to not support this? Will it be supported in the future?
Thanks in advance.Null is a special value and in many databases is not comparable to another null value (hence the isNull operator) and may pose problems when used to uniquely identify an Entity. TopLink does not support null values within a composite PK. As the nullable column is most likely not designated as a PK within your database table (many databases do not allow this) I recommend updating the Entity PKs to match that of the database.
--Gordon -
In which case composite primary key allows NULL values in it
Hi to all
In what case composite primary key allows nulls in it.
Let us suppose, I created a composite primary key with 2 attributes.
CREATE TABLE sample
BNK_Id NUMBER(6),
BNK_Name VARCHAR2(20),
CONSTRAINT BNK_Id_Name_PK PRIMARY KEY(BNK_Id,BNK_Name)
When it allows null values in it.
thanks in advanceAre you sure that your instructor was not talking about unique keys? As Solomon said, a primary key always implies not null on all of the columns of the PK. However a unique key does not automatically imply not null, and can have nulls in a column as long as the values in the populated columns are unique.
SQL> create table test (
2 id number,
3 pid number,
4 descr varchar2(10));
Table created.
SQL> alter table test add constraint test_unq
2 unique (id, pid);
Table altered.
SQL> insert into test values (1, null, 'desc1');
1 row created.
SQL> insert into test values (2, null, 'desc2');
1 row created.
SQL> insert into test values (2, null, 'fail1');
insert into test values (2, null, 'fail1')
ERROR at line 1:
ORA-00001: unique constraint (OPS$ORACLE.TEST_UNQ) violatedJohn -
Null value in Composite Primary key
Hi,
I have a requirement where I need to identify each record based on 4 columns. I though that I could achieve the same by imposing a composite primary key based on all the 4 columns. But any one of the column can be null at anytime. Can I still impose a composite primary key? i.e., if I create a composite primary key based on 4 columns, can any one of the column be null?
Your help would be more appreciated.No, you can't
By definition a Primary Key is NOT NULL
SQL> drop table t
2 /
Table dropped.
Elapsed: 00:00:00.03
SQL>
SQL> create table t
2 (col1 number null
3 ,col2 number null
4 ,col3 number null
5 ,col4 number null
6 ,constraint tpk primary key (col1, col2, col3, col4)
7 )
8 /
Table created.
Elapsed: 00:00:00.03
SQL>
SQL> desc t
Name Null? Type
COL1 NOT NULL NUMBER
COL2 NOT NULL NUMBER
COL3 NOT NULL NUMBER
COL4 NOT NULL NUMBER
SQL> -
Master Detail Forms with 2 composite primary keys - Is there a workaround?
Hello All,
I have been searching for a workaround to the maximum 2 part primary key restriction on the multi-row updates, and master-detail forms, and am hoping that someone can help me. I am using HTMLDB v2.0.0.00.49 with IE 6 against a 9.2 DB.
I successfully implemented the workaround of Fred Stoopendaal's (see Updata PK on HTML DB ) and it works fine for single page multi-record updateable forms, but alas I haven't been able to extend it to master detail forms (I think it is something to do with Oracle not allowing the "returning" clause on views).
Here is what I tried:
two tables, one with a 2 part composite primary key, which is the master table, and a detail table with 3 part composite primary key -
--------- BEGIN SQL ---------
create table master_table
( master_col1 number
, master_col2 number
, master_col3 varchar2(30)
, constraint master_pk primary key (master_col1,master_col2));
create table detail_table
(detail_col1 number
,detail_col2 number
,detail_col3 number
,detail_col4 varchar2(30)
, constraint detail_pk primary key(detail_col1,detail_col2,detail_col3)
, constraint master_detail_fk foreign key (detail_col1,detail_col2) references master_table(master_col1,master_col2));
create or replace view v_master_table as
select rowid mata_rowid,mata.*
from master_table mata;
create or replace view v_detail_table as
select rowid deta_rowid,
(select rowid from master_table mata where mata.master_col1 = deta.detail_col1 and mata.master_col2 = deta.detail_col2) deta_mata_rowid
, deta.*
from detail_table deta;
create or replace trigger mata_ins_upd_trg
instead of insert or update on v_master_table
referencing new as new old as old
for each row
begin
if inserting then
insert into master_table (master_col1, master_col2, master_col3)
values (:new.master_col1, :new.master_col2, :new.master_col3);
end if;
if updating then
update master_table
set master_col1 = :new.master_col1,
master_col2 = :new.master_col2,
master_col3 = :new.master_col3
where rowid = :old.mata_rowid;
end if;
end;
create or replace trigger deta_ins_upd_trg
instead of insert or update on v_detail_table
referencing new as new old as old
for each row
begin
if inserting then
insert into detail_table ( detail_col1, detail_col2, detail_col3, detail_col4)
values (:new.detail_col1, :new.detail_col2, :new.detail_col3, :new.detail_col4);
end if;
if updating then
update detail_table
set detail_col1 = :new.detail_col1,
detail_col2 = :new.detail_col2,
detail_col3 = :new.detail_col3,
detail_col4 = :new.detail_col4
where rowid = :old.deta_rowid;
end if;
end;
--------- END SQL ---------
Then I created a master-detail form in Apex on the two views, using the mata_rowid and deta_rowid as primary keys, and mata_rowid=deta_mata_rowid as the link. I realise that using a function to fetch the master rowid within the detail view query is costly, but it was my intention to modify the record fetch queries to use the real FK columns once things were up and running.
It seems to generate the pages ok, and I can insert/update master table records, but as soon as I modify records in the detail table things go a bit haywire. I can't find any documentation on how the inbuilt MRU/MRD logic works, so can't figure out the issue.
Can anyone out there tell me what the problem is with the logic above, or if they have come up with a neat solution to this annoying limitation. I know that many will say that I should modify the data model to use surrogate primary keys, but many of the uses for HTMLDB are new interfaces for old schemas, so a workaround that doesn't involve wholesale data model changes would be preferable.
Thanks in advance,
Mike CretanHi, this is likely not the most elegant way...but perhaps the simplest -- and I didn't have much time to play.
I used Wizard to create two separate Master Detail forms, each with a separate detail table. Thus I ended up with four pages:
Page "A" - "Selector" page for Master (Report), with Edit link driving to Detail-1
Page "B" - Editable Master/Detail-1 page (HTML / Report)
Page "C" - "Selector" page for Master (Report), with Edit link driving to Detail-2
Page "D" - Editable Master/Detail-2 page (HTML / Report)
Then I selected the primary key column TWICE on the Report on Page A. Modified the second instance of this column to navigate to Page D (passing primary key) exactly the way the original instance of this column navigates to Page B. Then I deleted Page C.
Since you can have only one Tabular Entry form per page, this seemed the best way to drive two separate detail tables from a common interface. -
Urgent - ESB: DB Adapter with composite primary keys no returning any data
I have a DB Adapter in the ESB that inserts/updates/selects data to/from a table with 2 columns as primary keys, but table has several columns.
1. Initially, the db table had constraints for the composite primary key, The DB adapter had valid data coming in, but no result data.
2. Then I removed the db constraints on the composite primary key, and selected the 2 columns in the DB adapter wizard. Still, valid data is going in, since I am outputing to a file prior to call this node, but no result data is appearing. The result XML is empty.
Do I need to do something in Toplink for this?
The table spec is below. the ACCT_FIELD and ACCT_CODE columns make up the composite primary key.
CREATE TABLE AFF_DATA_SYNC
ACCT_FIELD NUMBER NOT NULL,
ACCT_CODE VARCHAR2(16) NOT NULL,
ACCT_EXISTS_FLAG VARCHAR2(1),
SAVE_ACCT_SEG_XML CLOB,
LAST_UPDATE_DATE DATE
The following xml is the request to the DB adapter:
<top:AffDataSyncReadDBAdapterSelect_accountField_accountCodeInputParameters xmlns:top="http://xmlns.oracle.com/pcbpel/adapter/db/top/AffDataSyncReadDBAdapter">
<top:accountField>8</top:accountField>
<top:accountCode>0003888</top:accountCode>
</top:AffDataSyncReadDBAdapterSelect_accountField_accountCodeInputParameters>
Log output:
JCA: esb:///ESB_Projects/STRIPES-AFF-Data-Intg_AFF-Data-Integration/AffDataSyncReadDBAdapter.wsdl [ AffDataSyncReadDBAdapter_ptt::AffDataSyncReadDBAdapterSelect_accountField_accountCode(AffDataSyncReadDBAdapterSelect_accountField_accountCode_inparameters,Af
DataSyncWipCollection) ] - No XMLRecord headers provided
JCA: <oracle.tip.adapter.db.DBInteraction executeOutboundRead> Executing query with arguments [8, 0003917]
JCA: <oracle.tip.adapter.db.TopLinkLogger log> SELECT ACCT_FIELD, ACCT_CODE, ACCT_EXISTS_FLAG, SAVE_ACCT_SEG_XML, LAST_UPDATE_DATE FROM
AFF_DATA_SYNC_WIP WHERE ((ACCT_FIELD = ?) AND (ACCT_CODE = ?))
bind => [8, 0003888]
JCA: <oracle.tip.adapter.db.DBInteraction executeOutboundRead> Read the following objects: []
Message was edited by:
user589357
Message was edited by:
user589357
Message was edited by:
user589357
Message was edited by:
user589357The Toplink has no errors. Now I changed my table with only a single primary key, but for some reason, I am still getting no data.
JDeveloper 10.1.3.3 / SOA Suite (only using ESB) 10.1.3.3 with Oracle DB 10g 10.2.0.3.
1. What does No XMLRecord headers found mean?
2. Notice the last log item; Read ... []
Here are the log contents:
Invoking next service "AffDataSyncReadDBAdapterSelect_recordId" with payload :
<top:AffDataSyncReadDBAdapterSelect_recordIdInputParameters xmlns:top="http://xmlns.oracle.com/pcbpel/adapter/db/top/AffDataSyncReadDBAdapter">
<top:recordId>80003888</top:recordId>
</top:AffDataSyncReadDBAdapterSelect_recordIdInputParameters>
JCA: esb:///ESB_Projects/STRIPES-AFF-Data-Intg_AFF-Data-Integration/AffDataSyncReadDBAdapter.wsdl [ AffDataSyncReadDBAdapter_ptt::AffDataSyncReadDBAdapterSelect_recordId(AffDataSyncReadDBAdapterSelect_recordId_inparameters,AffDataSyncWipCollection)
] - No XMLRecord headers provided
JCA: esb:///ESB_Projects/STRIPES-AFF-Data-Intg_AFF-Data-Integration/AffDataSyncReadDBAdapter.wsdl [ AffDataSyncReadDBAdapter_ptt::AffDataSyncReadDBAdapterSelect_recordId(AffDataSyncReadDBAdapterSelect_recordId_inparameters,AffDataSyncWipCollection)
] - Starting JCA LocalTransaction
JCA: esb:///ESB_Projects/STRIPES-AFF-Data-Intg_AFF-Data-Integration/AffDataSyncReadDBAdapter.wsdl [ AffDataSyncReadDBAdapter_ptt::AffDataSyncReadDBAdapterSelect_recordId(AffDataSyncReadDBAdapterSelect_recordId_inparameters,AffDataSyncWipCollection)
] - Invoking JCA Outbound Interaction
JCA: <oracle.tip.adapter.db.DBInteraction executeOutboundRead> executing the NamedQuery: AffDataSyncReadDBAdapter.AffDataSyncWip.AffDataSyncReadDBAdapterSelect
JCA: <oracle.tip.adapter.db.DBInteraction executeOutboundRead> Parsing header record element.
JCA: <oracle.tip.adapter.db.TopLinkLogger log> client acquired
JCA: <oracle.tip.adapter.db.DBInteraction executeOutboundRead> Executing query with arguments [80003888]
JCA: <oracle.tip.adapter.db.TopLinkLogger log> SELECT RECORD_ID, ACCT_FIELD, ACCT_CODE, ACCT_EXISTS_FLAG, SAVE_ACCT_SEG_XML, LAST_UPDATE_DATE
FROM AFF_DATA_SYNC_WIP WHERE (RECORD_ID = ?)
bind => [80003888]
JCA: <oracle.tip.adapter.db.DBInteraction executeOutboundRead> Read the following objects: []
Message was edited by:
user589357
Message was edited by:
user589357
Maybe you are looking for
-
Calendars off by 1 hour when syncing to iPhone
So just recently I noticed that the events that are being synced to my iPhone are off by one hour. All events appear fine on my computer and on mobile me. The events on my iPhone are off by one hour. Any ideas. I do have time zone support turned on a
-
XDC error while running test program FP_CHECK_DESTINATION_SERVICE
Hi, all. We are on ECC 6.0 backend single stack and EP6 on NW04 SP17. I have installed the ADS on the java stack on EP6. However, I could not get the XDC working. Note that I am just using http for the ADS, not https. When I run the test programs lik
-
BAPI o FM for posting goods receipt of an inbound delivery
Hi I have a program that post a goods receipt for an inbound delivery using batch input of transaction VL32 (in the first screen of this trx pushing button "Post Goods Recepit"). We need to change it for a BAPI o FM that makes the same process. I'
-
My iMac freezes and sometimes shuts down on its own. Any suggestion on how to fix this? Thanks.
-
I have previewed my book but after cliking BUY BOOK it compiles it OK but then it always states an error after of during uploading it to the store. How can I rectify this?