Two objects from one table
My current setup is two tables and two objects with a one to one relationship between them, Object and ObjectMD (metadata).
Not sure why my predecessors set it up like this but...that's how it is.
The problem is that my Object table (and thus ObjectMD also) has reached 40 million rows and large joins between Object and ObjectMD are taking forever and are completely unnecessary.
I want to import the ObjectMD data into the Object table and go forward with a single table. The problem is that the ObjectMD table has it's own java surrounding it and that code is used in way too many places to weed it out. I need to leave the Java object structure in place.
I think I should be able to create both these objects from a single table, but I can not figure out the descriptor. My set method needs to be getMetaData().setMethod, but of course TL's reflection doesn't like this. I suppose I could create new methods in Object to get/set all these fields and just forward them to the real methods.
How can I define descriptors to create two objects from a single table?
What I decided on for my last problem was to use a method to setBar, and inside that method, set the Foo of the Bar.
Here are my files for future reference:
--------------------------------------Foo.java-------------------------------------
public class Foo {
public int id;
public String first;
public Bar bar;
public void setBar(Bar newBar){
if(newBar != null){
newBar.foo = this;
this.bar = newBar;
--------------------------------------Bar.java-------------------------------------
public class Bar {
public Foo foo;
public String second;
--------------------------------------Descriptors.java-------------------------------------
public class Descriptors {
public static void addDescriptors(Project project) {
project.addDescriptor(Descriptors.buildFooDescriptor());
project.addDescriptor(Descriptors.buildBarDescriptor());
private static Descriptor buildFooDescriptor() {
Descriptor descriptor = new Descriptor();
// basic information
descriptor.setJavaClass(Foo.class);
descriptor.addTableName("FOO");
descriptor.setPrimaryKeyFieldName("ID");
// mappings
DirectToFieldMapping directToFieldMapping;
AggregateObjectMapping aggregateObjectMapping;
// id mapping
directToFieldMapping = new DirectToFieldMapping();
directToFieldMapping.setAttributeName("id");
directToFieldMapping.setFieldName("ID");
descriptor.addMapping(directToFieldMapping);
// first mapping
directToFieldMapping = new DirectToFieldMapping();
directToFieldMapping.setAttributeName("first");
directToFieldMapping.setFieldName("FIRST");
descriptor.addMapping(directToFieldMapping);
// bar mapping
aggregateObjectMapping = new AggregateObjectMapping();
aggregateObjectMapping.setAttributeName("bar");
aggregateObjectMapping.setReferenceClass(Bar.class);
aggregateObjectMapping.setSetMethodName("setBar");
aggregateObjectMapping.dontAllowNull();
descriptor.addMapping(aggregateObjectMapping);
return descriptor;
private static Descriptor buildBarDescriptor() {
Descriptor descriptor = new Descriptor();
// basic information
descriptor.descriptorIsAggregate();
descriptor.setJavaClass(Bar.class);
// mappings
DirectToFieldMapping directToFieldMapping;
// second mapping
directToFieldMapping = new DirectToFieldMapping();
directToFieldMapping.setAttributeName("second");
directToFieldMapping.setFieldName("SECOND");
descriptor.addMapping(directToFieldMapping);
return descriptor;
----------------------------------------Go.java------------------------------------
public class Go {
public static void main(String[] args) {
if(args.length != 0){
throw new RuntimeException("Arguments are not supported");
Project project = new Project();
project.setName("fooBarProject");
DatabaseLogin login = new DatabaseLogin();
login.usePlatform(new Oracle9Platform());
login.setDriverClassName("oracle.jdbc.driver.OracleDriver");
login.setConnectionString("jdbc:oracle:thin:@nnn.nnn.nnn.nnn:nnnn:SERVICE");
project.setDatasourceLogin(login);
Descriptors.addDescriptors(project);
Server server = project.createServerSession(2, 2);
server.setLogLevel(oracle.toplink.sessions.SessionLog.FINE);
server.login("schema", "password");
Session session = server.acquireClientSession();
UnitOfWork uow = session.acquireUnitOfWork();
Foo fooBar = (Foo) uow.newInstance(Foo.class);
fooBar.id = (int) (Math.random() * 10000);
fooBar.first = "abcd";
uow.commit();
ExpressionBuilder builder = new ExpressionBuilder();
Foo fooBarLoad = (Foo) session.readObject(Foo.class, builder.get("id").equal(fooBar.id));
System.out.println("ID:" + fooBarLoad.id + " FIRST:" + fooBarLoad.first + " SECOND:" + fooBarLoad.bar.second );
session.release();
server.logout();
------------------------------------------------------------------------------------------
Similar Messages
-
What is the prerequisite for creating two hierarchies from one fact table i
Hi,
what is the prerequisite for creating two hierarchies from one a single fact table.
Rgds,
Amitcreate global temporary table t1 as select * from trn_ordbase on commit preserve rows;You CANNOT use this syntax.
http://download-east.oracle.com/docs/cd/B19188_01/doc/B15917/sqcmd.htm
http://download-east.oracle.com/docs/cd/B19188_01/doc/B15917/glob_tab.gif
http://download-east.oracle.com/docs/cd/B19188_01/doc/B15917/cre_tabl.gif -
Adding Data From One Table to Another
Now, this doesn't strike me as a particularly complex problem, but I've either strayed outside the domain of Numbers or I'm just not looking at the problem from the right angle. In any case, I'm sure you guys can offer some insight.
What I'm trying to do is, essentially, move data from one table to another. One table is a calendar, a simple two column 'date/task to be completed' affair, the other is a schedule of jogging workouts, i.e, times, distances. Basically, I'm trying to create a formula that copies data from the second table onto the first but only for odd days of the week, excepting Sundays (and assuming Monday as the start of the week). Now, this isn't the hard part, I can do that. The problem comes when I replicate the formula down the calendar. Even on the days when the 'if' statement identifies it as an 'even day', the cell reference to the appropriate workout on the second table is incremented, so when it comes to the next 'odd day', it has skipped a workout.
I can't seem to see any way of getting it to specifically copy the NEXT line in the second table, and not the corresponding line.
This began as a distraction to try and organise my running so I could see at a glance what I had to do that day and track my progress, but now it's turned into an obsession. SURELY there's a solution?
Cheers.Hi Sealatron,
Welcome to Apple Discussions and the Numbers '09 forum.
Several possible ways to move the data occur to me, but the devil's in the details of how the data is currently arranged.
Is it
• a list of three workouts, one for each of Monday, Wednesday and Friday, then the same three repeated the following week?
• an open-ended list that does not repeat?
• something else?
Regards,
Barry -
Insert old missing data from one table to another(databaase trigger)
Hello,
i want to do two things
1)I want to insert old missing data from one table to another through a database trigger but it can't be executed that way i don't know what should i do in case of replacing old data in table_1 into table_2
2)what should i use :NEW. OR :OLD. instead.
3) what should i do if i have records exising between the two dates
i want to surpress the existing records.
the following code is what i have but no effect occured.
CREATE OR REPLACE TRIGGER ATTENDANCEE_FOLLOWS
AFTER INSERT ON ACCESSLOG
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
V_COUNT NUMBER(2);
V_TIME_OUT DATE;
V_DATE_IN DATE;
V_DATE_OUT DATE;
V_TIME_IN DATE;
V_ATT_FLAG VARCHAR2(3);
V_EMP_ID NUMBER(11);
CURSOR EMP_FOLLOWS IS
SELECT EMPLOYEEID , LOGDATE , LOGTIME , INOUT
FROM ACCESSLOG
WHERE LOGDATE
BETWEEN TO_DATE('18/12/2008','dd/mm/rrrr')
AND TO_DATE('19/12/2008','dd/mm/rrrr');
BEGIN
FOR EMP IN EMP_FOLLOWS LOOP
SELECT COUNT(*)
INTO V_COUNT
FROM EMP_ATTENDANCEE
WHERE EMP_ID = EMP.EMPLOYEEID
AND DATE_IN = EMP.LOGDATE
AND ATT_FLAG = 'I';
IF V_COUNT = 0 THEN
INSERT INTO EMP_ATTENDANCEE (EMP_ID, DATE_IN ,DATE_OUT
,TIME_IN ,TIME_OUT,ATT_FLAG)
VALUES (TO_NUMBER(TO_CHAR(:NEW.employeeid,99999)),
TO_DATE(:NEW.LOGDATE,'dd/mm/rrrr'), -- DATE_IN
NULL,
TO_DATE(:NEW.LOGTIME,'HH24:MI:SS'), -- TIME_IN
NULL ,'I');
ELSIF V_COUNT > 0 THEN
UPDATE EMP_ATTENDANCEE
SET DATE_OUT = TO_DATE(:NEW.LOGDATE,'dd/mm/rrrr'), -- DATE_OUT,
TIME_OUT = TO_DATE(:NEW.LOGTIME,'HH24:MI:SS'), -- TIME_OUT
ATT_FLAG = 'O'
WHERE EMP_ID = TO_NUMBER(TO_CHAR(:NEW.employeeid,99999))
AND DATE_IN <= (SELECT MAX (DATE_IN )
FROM EMP_ATTENDANCEE
WHERE EMP_ID = TO_NUMBER(TO_CHAR(:NEW.employeeid,99999))
AND DATE_OUT IS NULL
AND TIME_OUT IS NULL )
AND DATE_OUT IS NULL
AND TIME_OUT IS NULL ;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS THEN RAISE;
END ATTENDANCEE_FOLLOWS ;
Regards,
Abdetu..INSERT INTO SALES_MASTER
( NO
, Name
, PINCODE )
SELECT SALESMANNO
, SALESMANNAME
, PINCODE
FROM SALESMAN_MASTER;Regards,
Christian Balz -
Inserting data from one table into another table using PL/SQL
HI,
I am trying to insert values from one table into another using PL procedure, the values I want to retrieve from the table riverside1 are charac_id and charac_type and insert these values into another table called riverside2 , the stored procedure zorgs_gorfs(x,y) accepts two parameters which are 2 charac_id's of d characters in riverside1 then using insert statements inserts these characters from riverside1 into riverside2.
CREATE OR REPLACE PROCEDURE zorgs_gorfs(x IN NUMBER, y IN NUMBER) AS
BEGIN
INSERT INTO riverside2
(charac_id)
VALUES
(x);
INSERT INTO riverside2
(charac_id)
VALUES
(y);
END zorgs_gorfs;
/This works but the problem im having is that when I also try to insert the charac_type as well as the charac_id it doesnt work below is the code:
CREATE OR REPLACE PROCEDURE zorgs_gorfs(x IN NUMBER, y IN NUMBER) AS
BEGIN
INSERT INTO riverside2
(charac_id,charac_tye)
VALUES
(Select
charac_id,
charc_type
FROM
riverside1
WHERE
charac_id = x);
END zorgs_gorfs;
/can someone kindly sort me outmodify this sql
INSERT INTO riverside2
(charac_id,charac_tye)
VALUES
(Select
charac_id,
charc_type
FROM
riverside1
WHERE
charac_id = x);as
INSERT INTO riverside2
(charac_id,charac_tye)
VALUES
(Select
charac_id,
charc_type
FROM
riverside1
WHERE
charac_id in ( x,y));But my suggestion would be consider revising your approach. It does not look that good.
Thanks,
karthick. -
How to get the data from one table and insert into another table
Hi,
We have requirement to build OA page with the data needs to be populated from one table and on save data into another table.
For the above requirement what the best way to implement in OAF.
I understand that if we attach VO object instance to region/page, we only can pull and put data in to only one table.
ThanksYou can achieve this in many different ways, one is
1. Create another VO based on the EO which is based on the dest table.
2. At save, copy the contents of the source VO into the dest VO (see copy routine in dev guide).
3. commiting the transaction will push the data into the dest table on which the dest VO is based.
I understand that if we attach VO object instance to region/page, we only can pull and put data in to only one table.
if by table you mean a DB table, then no, you can have a VO based on multiple EOs which will do DMLs accordingly.Thanks
Tapash -
Flowing data from one Table to another
I am new to Numbers and I am having a hard time figuring out how to flow a sum from one table into another table. Is this possible? Please help.
Thanks
Elassiegirl wrote:
I am new to Numbers and I am having a hard time figuring out how to flow a sum from one table into another table. Is this possible? Please help.
Hi lassiegirl,
Welcome to Apple Discussions and the Numbers '09 forum.
Apple provides two excellent resources that I recommend be downloaded by all Numbers users, the Numbers '09 User Guide and the iWork Formulas and Functions User Guide. You'll find linke for both of them in the Help menu in Numbers.
The first will give you an overview of Numbers and how it works—spend some time with the preface and the first chapter, browse the rest on a need to know basis when you're doing something new. The second is a reference, useful when you're trying to write a formula.
To your question...
You can copy the sum from one table to another.
For the example formula beow, both Table 1 and Table 2 have one header row and one footer row, and a total of 21 rows each.
If the SUM on Table 1 is in cell C21, and you want to include it in the SUM of column C in Table 2, you could transfer the sum to C1 in the header row of Table 2 with:
C1: =Table 1::C21
In C21 of Table 2 (a Footer row), use any of these formulas:
=SUM(C)+C1
=SUM(Table 1::C)+SUM(C)
=SUM(Table 1 :: C,C)
The first calculates the sum of the cells in column C (of its own table—Table 2) and adds the value in C1, the total transferred from Table 1.
The second returns the same result by calculating the sums of the two columns separately, then adding those sums.
The third takes the single arguments of the two SUM statements in the second, and lists them as multiple arguments in a single SUM statement.
Regards,
Barry -
How give a data from one table to another table
Oracle forms6i
Hai All
I had two table in table data base and from one table the data has to move to another table using forms
The two tables are
First table name temp_att from this the data has to move and the data are
BARCODE BARDATE BARTIME Row_number
0000000009949296 08-NOV-09 0800 1
0000000009949296 08-NOV-09 1230 2
0000000009949296 08-NOV-09 1245 3
0000000009949296 08-NOV-09 1645 4
0000000009949297 08-NOV-09 0815 1
0000000009949297 08-NOV-09 1230 2
0000000009949297 08-NOV-09 1300 3
0000000009949297 08-NOV-09 1650 4
Another table dail_att and the fields are
barcode,bardate,intime(mintime),outtime(maxtime),intrin(nextmintime)intr,(nextmaxtime)
Pls give some solutions to solve this problem.
Thanks & Regards
Srikkanth.MHai
Could pls explain me little bit clear
I have explained my problem clearly in the last Post
This is the requirement
I had two table in table data base and from one table the data has to move to another table using forms
The two tables are
First table name temp_att from this the data has to move and the data are
BARCODE BARDATE BARTIME Row_number
0000000009949296 08-NOV-09 0800 1
0000000009949296 08-NOV-09 1230 2
0000000009949296 08-NOV-09 1245 3
0000000009949296 08-NOV-09 1645 4
0000000009949297 08-NOV-09 0815 1
0000000009949297 08-NOV-09 1230 2
0000000009949297 08-NOV-09 1300 3
0000000009949297 08-NOV-09 1650 4
Another table dail_att and the fields are
barcode,bardate,intime(mintime),outtime(maxtime),intrin(nextmintime)intr,(nextmaxtime)
Pls give some solutions to solve this problem.
Thanks & Regards
Srikkanth.M -
Simple way to insert data from one table
Hi,
I need to know a simple way on how to transfer the data from one table to another....
First table xx_inv_tab1 has three columns col1, col2, col3 and where as second table xx_inv_tab2 has five columns col1, col2, col3, col4, col5.
Here col2, col3, col4 are the same columns as in table1 xx_inv_tab1...
Now I want to transfer first table data in to second table .... first column of second table holds a sequence, followed by the first table three columns data and followed with col4 and col5 which will hold NULL values....
In my scenario, I have 70 - 75 columns in my first table which I want to move to second table which three new columns (one is sequence and other two has null values)...
Any ideas if we make it in a simplest way rather saying insert into xx_inv_tab2 (col1, col2, col3 ............................................. col75) values (seq, col1, col2..........................col75, null, null)
Help Appreciated..
ThanksEasy
untested
insert into xx_inv_tab2 t2 (col1,col2,col3,col4)
select yourSequence.nextval, t1.col1, t1.col2, t1.col3
from xx_inv_tab1 t1
;Note that col5 does not need to be used, since you want to fill it with NULL.
USe excel or sql developer to write you a list of column names, if you are to lazy to write all 75 columns by yourself.
What might also work:
untested
insert into xx_inv_tab2 t2
select yourSequence.nextval, t1.*, null
from xx_inv_tab1 t1
;Edited by: Sven W. on Aug 31, 2012 4:41 PM -
Move objects from one tablespace to another
Hello
Running Oracle 10g rel 2 and I would like to move all objects from one tablespace to another. There are Primary Key indexes to other tables in this tablespace. The size grew too large and I want to reduce the size.
Thank you.Good afternoom Sir!
I believe that below "ask tom - moving tables across tablespaces" may help you.
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:47812348053
Regards,
Marcello M. -
Moving object from one client to another using transport requests...
Hi,
If we want to move one object from one client to another, we go to se09 and release it. I know this. But after release what are the next steps to move it from one system to another ?
Regards,
RajeshHello Rajesh
If the two systems share a <u>common</u> transport directory then you can simply go to transaction <b>STMS</b>, double-click on the <b>import queue</b> (target system), then choose menu <b>Extras -> Other Requests -> Add.</b>
The transport request will be added to the import buffer. Next you can import the request.
If the two systems do not share a common transport directory you can use RFC-enabled function module <b>EPS_FTP_PUT</b> to copy the data and cofile from the source to the target system (check for <b>DIR_TRANS</b> directories using transaction AL11).
Regards
Uwe -
How do I read from one table and write to another identical table?
I am very new to Oracle. I am trying to do something that should be very simple.
I am trying to read from one table in SQL and then write to another
Identically formatted table. I keep getting various errors. Could someone please
post some vey simple code that will work so that I can play around with it?
Any help would be greatly appreciated.
Thanks,
RonThanks, but I must be missing something.
I have two tables, SONGLIST and SETLIST.
The second line by itself works just fine on either table.
Here is the code I used following your seggestion, along with it's error message.
Hope you can help. Thanks again...
INSERT INTO SETLIST
SELECT TITLE FROM SONGLIST WHERE ROTATION <> 'X'
ORA-00947: not enough values -
Need to compare values in two columns of one table against values in two columns in another table
Hi, as the title reads, I'm looking for an approach that will allow me to compare values in two columns of one table against values in two columns in another table.
Say, for instance, here are my tables:
Table1:
Server,Login
ABCDEF,JOHN
ABCDEF,JANE
FEDCBA,SEAN
FEDCBA,SHAWN
Table2:
Server,Login
ABCDEF,JOHN
ABCDEF,JANE
FEDCBA,SHAWN
In comparing the two tables, I'd like my query to report the rows in table1 NOT found in table2. In this case, it'll be the 3rd row of table one:
Server,Login
FEDCBA,SEAN
Thanks.create table Table1([Server] varchar(50), Login varchar(50))
Insert into Table1 values ('ABCDEF','JOHN'),('ABCDEF','JANE'),('FEDCBA','SEAN'),('FEDCBA','SHAWN')
create table Table2([Server] varchar(50), Login varchar(50))
Insert into Table2 values ('ABCDEF','JOHN'),('ABCDEF','JANE'), ('FEDCBA','SHAWN')
select [Server] ,Login from Table1
Except
select [Server] ,Login from Table2
select [Server] ,Login from Table1 t1
where not exists(Select 1 from Table2 where t1.[Server] = t1.[Server] AND Login=t1.Login)
drop table Table1,Table2 -
How to convert data when transferring from one table to another
I have two tables and these are the structure of the tables
create table E1(
ID NUMBER
,NAME VARCHAR2(30)
, DESIGNATION VARCHAR2(30)
,GENDER VARCHAR2(10));
create table E2(
ID NUMBER
,NAME VARCHAR2(30)
, DESIGNATION VARCHAR2(3)
,GENDER NUMBER); Now I want to transfer records from one table to another using a master tables where data are compared because the datatypes in tables are different
The first one is a gender table to match the gender and convert
create table Gender(
E1 varchar2(10),
E2 number);The second is for the designation
create table Designation(
E1 varchar2(30),
E2 varchar2(3);How to match and convert the data so that it can be transfered.Peeyush wrote:
Can we do it with the help of a cursor.
All SQL executed by the database are parsed as cursors and executed as cursors.
I mean I have to insert data in bulk and I want to use cursor for it.The read and write (select and insert) are done by the SQL engine. The read part reads data and passes it to the write part that inserts the data.
Now why would using PL/SQL and bulk processing make this faster? It will reside in-between the read part and the write part being done by the SQL engine.
So the SQL engine reads the data. This then travels all the way to the PL/SQL engine as a bulk collect. PL./SQL then issues an insert (the write part to be done by the SQL engine). And now this very same data travels all the way from the PL/SQL engine to the SQL engine for insertion.
So just how is this approach, where you add extra travel time to data, faster?
and i want to commit the transaction after every 50 recordsWhy? What makes you think this is better? What makes you think you have a problem with not committing every 50 rows? -
Authorization for all the maintenance views from one table
I have one table with data related to 5 systems.
I have created views with related data for each system.
These all are from one table only. while i am editing in one view, i must be able to edit the another view also. at a time 2 users cant edit the same view but at a time two users have to edit two different viws from same table.
I have to provide all authorization to all views at the same time.How to achieve this?.
Thanks.
Edited by: pagidala Ramesh on Oct 27, 2008 10:52 AMHi Pagidala,
This is my idea how much it can help you i am not sure but, create txcode for views and assign the authorizations for the txcodes according to your requirements. May be your issue will resolve.
Cheers!!
VEnk@
Maybe you are looking for
-
How do I copy a file from a flash drive to my iMac
I am trying to import my contacts from my old PC to my new iMac. I had all my files transfered by an Apple store tech. My contacts went to my Address Book. Which is fine, but I now want to import them into Office for iMac 2011 Outlook. So I expor
-
Installing oracle 9i on RHEL 5
Could someone share a document for installing oracle 9i on RHEL 5? Any help? Thanks in advance
-
Filter by File Extension & Zoom
It sure would be nice if Bridge had the ability to filter by file type. For example, the ability to show all psd files would be great for finding files that have previously been opened in ACR. And I second the previous requests for the ability to zoo
-
What should/can I do?
-
Hi, Can more than 1 username be used in ichat av? thanks -Danessa