Insert into oracle_table (column1) - select column1 from mysql_table
Hi all,
How do I select data from mysql_table and insert it into oracle_table ?
Is it possible at all?
Hi,
You can use the Database Gateway for ODBC (DG4ODBC) to setup a connection from oracle to MySQL. You thne use database links to access the MYSQL tables as if they were remote Oracle tables.
If you have access to My Oracle Support have a look at -
Master Note for Oracle Gateway Products (Doc ID 1083703.1)
How to Configure DG4ODBC (Oracle Database Gateway for ODBC) on Windows 32bit to Connect to Non-Oracle Databases Post Install (Doc ID 466225.1)
How to Configure DG4ODBC (Oracle Database Gateway for ODBC) on 64bit Windows Operating Systems to Connect to Non-Oracle Databases Post Install (Doc ID 1266572.1)
How to Configure DG4ODBC on 64bit Unix OS (Linux, Solaris, AIX, HP-UX Itanium) to Connect to Non-Oracle Databases Post Install (Doc ID 561033.1)
and -
Oracle Database Gateways
Regards,
Mike
Similar Messages
-
Insert into oracle_table (column1) select column1 from ms_sql_table
Hi all,
how do I export data from ms sql table into oracle table ?
begin
insert into oracle_table (column1)
select column1 from ms_sql_table;
commit;
end;Hi ymarkiv,
In addition to Prashanth’s suggestion, you can also use Import and Export Data Wizard to export SQL Server data to Oracle. When using the Wizard, you can edit transformation parameters using the Column
Mapping dialog box, or write your own query to specify the data to transfer.
For more details about export data from SQL Server to Oracle , please review this similar blog:
Export SQL Server Data to Oracle using SSIS.
Thanks,
Lydia Zhang -
Strange result from insert into...select query
Hello guys,
I need your preciuos help for a question maybe simple, but that I can't explain by myself!
I have a query of "insert into...select" that, as I have explained in the title, returns a strange result. In facts, If I execute ONLY the SELECT statement the query returns the expected result (so 2 rows); instead If I execute the entire statement, that is the "insert into...select", the query returns 0 rows inserted!!
Following an example of the query:
INSERT
INTO TITOLI_ORI
COD_TITOLO_RICCONS ,
D_ESTRAZIONE ,
COD_SOCIETA ,
COD_PIANO_CONTABILE ,
COD_CONTO_CONTABILE ,
COD_RUBRICATO_STATISTICO_1 ,
COD_NDG ,
NUM_ESEGUITO ,
CUR_IMPORTO_RICCONS ,
CUR_IMPORTO_BICO ,
FLG_MODIFICATO ,
CUR_NON_ASSEGNATO ,
FLG_QUOTATO ,
COD_CATEG ,
TIP_COPERTURA ,
TIPTAS_TITOLO
SELECT NEWID,
'28-feb-2111',
COD_SOCIETA,
COD_PIANO_CONTABILE,
COD_CONTO_CONTABILE,
COD_RUBRICATO_STATISTICO_1,
COD_NDG,
NUM_ESEGUITO,
CUR_VAL_IMPEGNI,
'ABC' as CUR_IMPORTO_BICO,
0 as FLG_MODIFICATO,
NULL as CUR_NON_ASSEGNATO,
FLG_QUOTATO,
COD_CATEG,
TIP_COPERTURA,
TIP_TASSO
FROM
(SELECT S.COD_SOC AS COD_SOCIETA,
S.TIP_PIANO_CNTB AS COD_PIANO_CONTABILE,
S.COD_CONTO_CNTB AS COD_CONTO_CONTABILE,
S.COD_RUBR_STAT AS COD_RUBRICATO_STATISTICO_1,
TRC.COD_RAGGR_IAS AS COD_RAGGRUPPAMENTO_IAS,
TRC.COD_NDG AS COD_NDG,
TRC.COD_ESEG AS NUM_ESEGUITO,
CAST((TRC.IMP_PLUS_MINUS_VAL/TRC.IMP_CAMB) AS FLOAT) AS CUR_VAL_IMPEGNI,
TRC.TIP_QUOTAZ AS FLG_QUOTATO,
TRC.COD_CAT_TIT AS COD_CATEG,
TIP_COP AS TIP_COPERTURA,
T.TIP_TASSO AS TIP_TASSO
FROM S_SLD_CNTB S
INNER JOIN
(SELECT DISTINCT COD_SOC,
TIP_PIANO_CNTB,
COD_CONTO_CNTB,
COD_RUBR_STAT ,
COD_INTER_TIT AS COD_INTER
FROM S_COLLEG_CONTO_CNTB_TIT
WHERE COD_SOC = 'ME'
) CCC
ON S.COD_SOC = CCC.COD_SOC
AND S.TIP_PIANO_CNTB = CCC.TIP_PIANO_CNTB
AND S.COD_CONTO_CNTB = CCC.COD_CONTO_CNTB
AND S.COD_RUBR_STAT = CCC.COD_RUBR_STAT
INNER JOIN S_TIT_RICCONS TRC
ON CCC.COD_INTER = TRC.COD_INTER_TIT
AND CCC.COD_SOC = TRC.COD_SOC
AND TRC.COD_RAGGR_IAS = RTRIM('VALUE1 ')
AND TRC.COD_RAGGR_IAS NOT IN ('VALUE2')
AND TRC.DES_TIP_SLD_TIT_RICCONS IN ('VALUE3')
AND TRC.DES_MOV_TIT = RTRIM('VALUE4 ')
AND TRC.COD_CAT_TIT = RTRIM('VALUE4 ')
AND TRC.COD_INTER_TIT = RTRIM('VALUE5')
AND '28-feb-2011' = TRC.DAT_RIF
LEFT JOIN S_TIT T
ON T.COD_INTER_TIT = TRC.COD_INTER_TIT
AND T.COD_SOC = TRC.COD_SOC
AND '28-feb-2011' = T.DAT_RIF
INNER JOIN S_ANAG_SOGG AG
ON TRC.COD_NDG = AG.COD_NDG
AND AG.COD_SOC = TRC.COD_SOC
AND '28-feb-2011' = AG.DAT_RIF
WHERE S.DAT_RIF = '28-feb-2011'
AND (S.FLG_ANULL_BICO = 0
OR S.FLG_ANULL_BICO IS NULL)
AND S.COD_SOC = 'V6'
AND LENGTH(RTRIM(S.COD_CONTO_CNTB)) = 10
AND S.TIP_PIANO_CNTB = 'V7'
AND TRC.IMP_PLUS_MINUS_VAL < 0
AND SUBSTR(S.COD_CONTO_CNTB,1,7) IN (RTRIM('VALUE8 '))
Thanks a lotRight, I have executed this steps:
- I have changed the query with the select count(*)
- Changed the insert into with the select count(*)
- Executed the insert into
These are the result:
SQL> select count(*) from TITOLI_ORI2;
COUNT(*)
1
BUT:
SQL> select * from TITOLI_ORI2;
A
0
The insert into that I've modified is this:
INSERT INTO bsc.TITOLI_ORI2
select count(*)
FROM
(SELECT bsc.NEWID,
TO_DATE('28-feb-2111','DD-MON-YYYY') as data,
COD_SOCIETA,
COD_PIANO_CONTABILE,
COD_CONTO_CONTABILE,
COD_RUBRICATO_STATISTICO_1,
COD_NDG,
NUM_ESEGUITO,
CUR_VAL_IMPEGNI,
'ABC' AS CUR_IMPORTO_BICO,
0 AS FLG_MODIFICATO,
NULL CUR_NON_ASSEGNATO,
FLG_QUOTATO,
COD_CATEG,
TIP_COPERTURA,
TIP_TASSO
FROM
(SELECT S.COD_SOC AS COD_SOCIETA,
S.TIP_PIANO_CNTB AS COD_PIANO_CONTABILE,
S.COD_CONTO_CNTB AS COD_CONTO_CONTABILE,
S.COD_RUBR_STAT AS COD_RUBRICATO_STATISTICO_1,
TRC.COD_RAGGR_IAS AS COD_RAGGRUPPAMENTO_IAS,
TRC.COD_NDG AS COD_NDG,
TRC.COD_ESEG AS NUM_ESEGUITO,
CAST((TRC.IMP_PLUS_MINUS_VAL/TRC.IMP_CAMB) AS FLOAT) AS CUR_VAL_IMPEGNI,
TRC.TIP_QUOTAZ AS FLG_QUOTATO,
TRC.COD_CAT_TIT AS COD_CATEG,
TIP_COP AS TIP_COPERTURA,
T.TIP_TASSO AS TIP_TASSO
FROM bsc.S_SLD_CNTB S
INNER JOIN
(SELECT DISTINCT COD_SOC,
TIP_PIANO_CNTB,
COD_CONTO_CNTB,
COD_RUBR_STAT ,
COD_INTER_TIT AS COD_INTER
FROM bsc.S_COLLEG_CONTO_CNTB_TIT
WHERE COD_SOC = 'ME'
) CCC
ON S.COD_SOC = CCC.COD_SOC
AND S.TIP_PIANO_CNTB = CCC.TIP_PIANO_CNTB
AND S.COD_CONTO_CNTB = CCC.COD_CONTO_CNTB
AND S.COD_RUBR_STAT = CCC.COD_RUBR_STAT
INNER JOIN bsc.S_TIT_RICCONS TRC
ON CCC.COD_INTER = TRC.COD_INTER_TIT
AND CCC.COD_SOC = TRC.COD_SOC
AND TRC.COD_RAGGR_IAS = RTRIM('HFT ')
AND TRC.COD_RAGGR_IAS NOT IN ('GPO')
AND TRC.DES_TIP_SLD_TIT_RICCONS IN ('DISPONIBILI')
AND TRC.DES_MOV_TIT = RTRIM('CONSEGNARE ')
AND TRC.COD_CAT_TIT = RTRIM('OBBLIGAZIONE ')
AND TRC.COD_INTER_TIT = RTRIM('334058')
AND '28-feb-2011' = TRC.DAT_RIF
LEFT JOIN bsc.S_TIT T
ON T.COD_INTER_TIT = TRC.COD_INTER_TIT
AND T.COD_SOC = TRC.COD_SOC
AND '28-feb-2011' = T.DAT_RIF
INNER JOIN bsc.S_ANAG_SOGG AG
ON TRC.COD_NDG = AG.COD_NDG
AND AG.COD_SOC = TRC.COD_SOC
AND '28-feb-2011' = AG.DAT_RIF
WHERE S.DAT_RIF = '28-feb-2011'
AND (S.FLG_ANULL_BICO = 0
OR S.FLG_ANULL_BICO IS NULL)
AND S.COD_SOC = 'ME'
AND LENGTH(RTRIM(S.COD_CONTO_CNTB)) = 10
AND S.TIP_PIANO_CNTB = 'IS'
AND TRC.IMP_PLUS_MINUS_VAL < 0
AND SUBSTR(S.COD_CONTO_CNTB,1,7) IN (RTRIM('P044C11 '))
Another time the strange result returns!!
And I've created the table TITOLI_ORI2 as create table TITOLI_ORI2 (a number); to contain the number result of the query. -
Insert into table a (select * from table b) - need pk?
Hi there.
I'm going to insert into table FINAL (select * from table STAGING) - same structure but in STAGING the ID column has nulls.
Do I need to provide the ID (primary key) for table FINAL or will it get created based on sequence/trigger?
If I were doing this in a loop I'd get the next val from the sequence but on a simple insert, I'm curious.
thanks!hmm.. what is ?
it didn't like it.
Error(11,4): PLS-00103: Encountered the symbol "[" when expecting one of the following: begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge <a single-quoted SQL string> pipe
9i, sqldeveloper -
Procedure to insert data into table by selecting data from another table
Hi all,
I have to create a procedure where i have to select the data from one table and insert it into another table. Any help on this. And i have to update the 2nd table also when ever new records got inserted in the 1st table then.
RegardsHi, you can try something like:
CREATE [OR REPLACE] PROCEDURE procedure_name
IS
BEGIN
INSERT INTO TABLE1
VALUES (SELECT * FROM TABLE2);
END;
For the other part you may create a trigger on the first table AFTER INSERT to insert the values in the second table too. -
T-SQL - PL/SQL conversion: insert into ... select problem
Hi!
If I have an insert into ... select statement in T-SQL without a 'from' clause:
bq. insert into sometable (foo, bar) \\ select 5, case when @bar=5 then 4 else 3 end
its translation is:
bq. INSERT INTO sometable \\ ( foo, bar ) \\ VALUES ( 5, CASE \\ WHEN 5 = 5 THEN 4 \\ ELSE 3 \\ END col );
and I got: ORA-00917: "missing comma" for that. I'm not sure if it's a bug in the migration code, or is there a trick so that I can use 'CASE' in an insert into .. values statement somehow?
ZoliYou have to remove the column name. I just simplified your test case to check and it's working:
CREATE TABLE test(
id NUMBER
INSERT
INTO test(id)
VALUES(CASE WHEN 5=5 THEN 4 ELSE 3 END)
SELECT *
FROM test
;C. -
ORA-02025 error while insert into emp@custard select ....
Hello All,
I want to insert the row in MS Access 2003 database from SQL PLUS. My oracle version is 9.2.0.1. and OS is Windows 2000 server.
Insert command is:
SQL> insert into emp@custard select empno, ename, job, mgr, hiredate, sal, comm, deptno from emp ;
and the error is
ORA-02025: all tables in the SQL statement must be at the remote database.
Thanks for helping me.
Akshay.
PS: i am able to see the records of Access table in SQL Plus using below command
select * from acc_tab@custard ;Hi,
I got the solution.
You can not use directly Insert into remote_table select * from local_table while the other database is not oracle database. The same can be done as:
SQL> select * from emp@custard ;
no rows selected
SQL> copy from scott/tiger@trimcap insert emp@custard using select * from emp ;
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
14 rows selected from scott@trimcap.
14 rows inserted into EMP@CUSTARD.
14 rows committed into EMP@CUSTARD at DEFAULT HOST connection.
SQL> select * from emp@custard ;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
7369 SMITH CLERK 7902 17/DEC/80 800
20
7499 ALLEN SALESMAN 7698 20/FEB/81 1600 300
30
7521 WARD SALESMAN 7698 22/FEB/81 1250 500
30
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
7566 JONES MANAGER 7839 02/APR/81 2975
20
7654 MARTIN SALESMAN 7698 28/SEP/81 1250 1400
30
7698 BLAKE MANAGER 7839 01/MAY/81 2850
30
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
7782 CLARK MANAGER 7839 09/JUN/81 2450
10
7788 SCOTT ANALYST 7566 19/APR/87 3000
20
7839 KING PRESIDENT 17/NOV/81 5000
10
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
7844 TURNER SALESMAN 7698 08/SEP/81 1500 0
30
7876 ADAMS CLERK 7788 23/MAY/87 1100
20
7900 JAMES CLERK 7698 03/DEC/81 950
30
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
7902 FORD ANALYST 7566 03/DEC/81 3000
20
7934 MILLER CLERK 7782 23/JAN/82 1300
10
14 rows selected.
SQL>
Hope this helps others... if you stuck like me.
Thanks & Regards,
Akshay Brahmbhatt. -
How to insert into a table in database1 from a table in database2?
hi!
how to insert into a table in database1 from a table in
database2?
can anyone help?
Tariq.using the EXEC_SQL package.
see form help for detail.
Regards. -
The source tables are having crores of data (growing tables). Tables with 4crores, 17cr. We want these tables to be copied frequently to our local database. Previously it was done by export-import through windows scheduled task. but now we are planning to do it as database jobs. We are fetching the datas with query
insert into dest_tablee( select * from source_table@dblink) when we tried with this it was throwing exception like enough table space is not there. And also it was found that frequent commits has to be used while populating datas from big tables. So tried with cursor But it was very slow and again we got the exception like 'the table space unable to extend segment by 16 in undo tablespace 'UNDOTBS1'.
After that we tried with the group by. In this case we got the exception like unable to extend table and also index in the table space. For this the solution is to add datafile. Again we have increase the table space. Now the procedure is running very slow(taking much time. It might be because of the conditions used in the query).
Is there any other option to copy the datas from such a big tables? can we use the same sort of query?
Friends please help me to sort it out.
Thanks in AdvanceHi,
you have lot of data DONT use cursor, did you try using the COPY command.
How frequently you will be doing the COPYING of the data ?
If you have any constraints you can disable and enable after all the records have been copied.
Please look at this link this should help.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5280714813869
Thanks
Message was edited by:
hkandpal
Link added -
May returning Clause be used w/ INSERT INTO...SELECT FROM
Hi,
I use Oracle 8i: 8.1.7.2.0.
I'd like to insert multiple rows into a table, and get back certain inserted columns into a collection variable. Is this possible?
Eg:
INSERT INTO foo
f1
, f2
SELECT b1, b2...
FROM bar
RETURNING f1 bulk collect into collection
This compiles, but yields a "command not properly ended" error at runtime--I assume because the "returning" binds to the SELECT subquery, and not to the main INSERT query.
Is there a way to do this?
By the way, I already know this works when INSERTing just 1 row via the "values" clause.
Regards,
--IGHi,
Try this way:
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
Connected as hr
SQL>
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
2 TYPE emp_t IS TABLE OF VARCHAR2(30);
3 emp_list emp_t;
4
5 TYPE emp_t2 IS TABLE OF NUMBER;
6 emp_code emp_t2;
7 BEGIN
8
9 emp_list := emp_t('John',
10 'Doe',
11 'Max');
12
13 FORALL i IN emp_list.FIRST .. emp_list.LAST
14 INSERT INTO emp
15 (id,
16 NAME)
17 VALUES
18 (employees_seq.NEXTVAL,
19 emp_list(i))
20 RETURNING id BULK COLLECT INTO emp_code;
21
22 FOR i IN emp_code.FIRST .. emp_code.LAST LOOP
23 dbms_output.put_line(emp_code(i));
24 END LOOP;
25 END;
26 /
213
214
215
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
SQL> select * from emp;
ID NAME
213 John
214 Doe
215 Max
SQL>Regards,
Edited by: Walter Fernández on May 8, 2009 12:59 PM -- Adding query on emp table... -
Insert into using a select and dynamic sql
Hi,
I've got hopefully easy question. I have a procedure that updates 3 tables with 3 different update statements. The procedure goes through and updates through ranges I pass in. I am hoping to create another table which will pass in those updates as an insert statement and append the data on to the existing data.
I am thinking of using dynamic sql, but I am sure there is an easy way to do it using PL/SQL as well. I have pasted the procedure below, and what I'm thinking would be a good way to do it. Below I have pasted my procedure and the bottom is the insert statement I want to use. I am faily sure I can do it using dynamic SQL, but I am not familiar with the syntax.
CREATE OR REPLACE PROCEDURE ACTIVATE_PHONE_CARDS (min_login in VARCHAR2, max_login in VARCHAR2, vperc in VARCHAR2) IS
BEGIN
UPDATE service_t SET status = 10100
WHERE poid_id0 in
(SELECT poid_id0 FROM service_t
WHERE poid_type='/service/telephony'
AND login >= min_login AND login <= max_login);
DBMS_OUTPUT.put_line( 'Service Status:' || sql%rowcount);
UPDATE account_t SET status = 10100
WHERE poid_id0 IN
(SELECT account_obj_id0 FROM service_t
WHERE poid_type = '/service/telephony'
AND login >= min_login AND login <= max_login);
DBMS_OUTPUT.put_line( 'Account Status:' || sql%rowcount);
UPDATE account_nameinfo_t SET title=Initcap(vperc)
WHERE obj_id0 IN
(SELECT account_obj_id0 FROM service_t
WHERE poid_type='/service/telephony'
AND login >=min_login AND login <= max_login);
DBMS_OUTPUT.put_line('Job Title:' || sql%rowcount);
INSERT INTO phone_card_activation values which = 'select a.status, s.status, s.login, to_char(d.sysdate,DD-MON-YYYY), ani.title
from account_t a, service_t s, account_nameinfo_t ani, dual d
where service_t.login between service_t.min_login and service_t.max_login
and ani.for_key=a.pri_key
and s.for_key=a.pri_key;'
END;
Thanks for any advice, and have a good weekend.
GeordieCorrect my if I am wrong but aren't these equal?
UPDATE service_t SET status = 10100
WHERE poid_id0 in
(SELECT poid_id0 FROM service_t
WHERE poid_type='/service/telephony'
AND login >= min_login AND login <= max_login);
(update all the records where there id is in the sub-query that meet the WHERE Clause)
AND
UPDATE service_t SET status = 10100
WHERE poid_type='/service/telephony'
AND login >= min_login AND login <= max_login);
(update all the records that meet the WHERE Clause)
This should equate to the same record set, in which case the second update would be quicker without the sub-query. -
Ain't getting it: insert into table by determing value from another table
I have a table (PERCENTILE_CHART) with percentiles and test scores for different tests:
Structure:
Percentile, Reading_Test, Writing_Test
Data:
30,400,520
31,450,560
97,630,750
98,630,780
99,640,800
The data is currently in ascending order by Percentile.
If a person took the Reading test and scored 630 he or she would be in the 98th (not 97th) percentile of the class taking that test.
I wrote a statement to return the percentile:
select Percentile
from ( select ROWNUM, PERCENTILE
from PERCENTILE_CHART
where READING_TEST <= '650'
order by READING_TEST desc)
where ROWNUM < 2 order by PERCENTILE desc;
This select works and is able to determine the highest percentile for a score.
Ok, now I want to process all the records in a STUDENT table which have
test scores and insert them in a new table along with the percents, normalizing the data in the process.
Have this:
STUDENT:
Student_Name,Student_ID,
John Smith,121,Reading,98,Writing,90
Maggie Smithe,122,Reading,95,Writing,96
And needs to be moved to into SCORES with the percentiles, so I get this:
SCORES:
Student_Name,Student_ID,Test_Name,Percentile
121,Reading,98
121,Writing,90
122,Reading,95
122,Writing,96
This is were I get confused. How do I insert the data into the SCORES table with the percentile? I think calling a function in package is the way to do it:
function oua_Test_Percentile_f (
p_Test_Name in char,
p_Test_Value in char)
return char as
-- Declare variables
c_Return_PTile char(2);
begin
select PERCENTILE into c_Return_PTile
from (select ROWNUM, PERCENTILE
from PERCENTILE_CHART
where p_Test_Name <= '&p_Value'
order by p_Test_Nmae desc)
where ROWNUM < 2 order by PERCENTILE desc;
return c_Return_PTile;
end;
But this function doesn't return the percentile even though it is based on my working select mentioned earlier. It returns a blank for all tests.
And even if it is working how do I then populate the SCORES table?You may want to use analytical functions so that you can determine the percentile across all of the different scores:
SQL> with
2 PERCENTILE_CHART as
3 (
4 select 30 PERCENTILE, 400 READING_TEST, 520 WRITING_TEST from dual union all
5 select 31 PERCENTILE, 450 READING_TEST, 560 WRITING_TEST from dual union all
6 select 97 PERCENTILE, 630 READING_TEST, 750 WRITING_TEST from dual union all
7 select 98 PERCENTILE, 630 READING_TEST, 780 WRITING_TEST from dual union all
8 select 99 PERCENTILE, 640 READING_TEST, 800 WRITING_TEST from dual
9 )
10 select
11 max(percentile) over (partition by reading_test) HIGHEST_READING,
12 max(percentile) over (partition by writing_test) HIGHEST_WRITING,
13 percentile_chart.*
14 from
15 percentile_chart
16 /
HIGHEST_READING HIGHEST_WRITING PERCENTILE READING_TEST WRITING_TEST
30 30 30 400 520
31 31 31 450 560
98 97 97 630 750
98 98 98 630 780
99 99 99 640 800
SQL>
I wasn't exactly sure how you wantd to coorelate this to the student records though; the student table had only two column name headings but there were four rows listed as examples and had fewer rows than in the percentile_chart table...
If you join the student table to the able query it might be what you are looking for.
You can create another table based on the output of your query by doing:
create table scores
as select * from
(insert your query here)
/ -
How do i insert into more than one table from temp table?
Hi,
I have three tables such as temp,stck and stol
temp table contains data as below. It has 22 columns.
STOCK STOCKDESC ALIAS1 ALIAS2 ALIAS3 ALIAS4 ALIAS5 ALIAS6 ALIAS7 ALIAS8 ALIAS9 ALIAS10 ALIAS11 ALIAS12 ALIAS13 ALIAS14 ALIAS15 ALIAS16 ALIAS17 ALIAS18 ALIAS19 ALIAS20
bmg667691031 NOWE FINANSE LTD yy zz B282DV3 TESTICKER te te1 bmg667691031BM te 707943W ex IR-PRIME IR-ALTID IR-BLOOM NT-PRIME NT-ALTID NT-BLOOM AU-PRIME AU-ALTID AU-BLOOM mm
AA0098000181 UFACEX HOLDINGS VAR RT DUE 06-30-2010 kk yy mm TESTICKER aa ff AA0098000181GB bb 031969W cc IR-PRIME IR-ALTID IR-BLOOM NT-PRIME NT-ALTID NT-BLOOM AU-PRIME AU-ALTID AU-BLOOM ba
AC1350Z7M923 CDA GOVT TREAS BILLS CDS- 08-05-2010 ee ff gg TESTICKER hh ij AC1350Z7M923CA mn 1A1MTLU op IR-PRIME IR-ALTID IR-BLOOM NT-PRIME NT-ALTID NT-BLOOM AU-PRIME AU-ALTID AU-BLOOM op
stck table contains as below.It has six columns. But always first three columns will have values.
stock_id stock_code stock_description stock_type terriory_code preferred code
1185072 AED
1185073 ARA CURRENCY ARGENTINA PESO
1185074 ATS CURRENCY AUSTRIAN SCHS
stol table contains as below. It has 6 columns.Terriory_code is always empty.
stock_code territory_code stol_type stock_id stck_code_type sys_entry_date
AED 0 1185072 0 6/22/2007 3:59:13.000 PM
ARA 0 1185073 0 6/22/2007 3:59:13.000 PM
ATS 0 1185074 0 6/22/2007 3:59:13.000 PM
Now, i want to insert into stck and stol table based on temp table records. constraints to insert into stck and stol tables are as below
In temp table first column is called stock. This stock has to compare with stck table stock_code. If it is not present in stck table, then it has to insert into stck table with stock_id and stock_description. Here, I need to generate stock_id my self in the code.
In temp table, column 3 to column 22, i have alias. Each column has to check with stol table stock_code column. For instance, column3 check with stock_code column. Then column4 check with stock_code. If stock_code is not present in stol table, then i have to insert into stol table.
I need to generate stock,id in the code. How do i perform this insertion?
Edited by: user12852882 on Jun 12, 2010 2:37 AMIt can be done using SQL (no loops required)
insert into stock_table (stock_id,stock_code,stock_description)
select stock_id,get_stock_code,stockdesc /* get_stock_code is a function providing stock_code - usually a sequence value */
from (select t.stock stock_id,t.stockdesc,s.stock_id stock_stock_id
from temp_table t,stock_table s
where t.stock = s.stock_id(+)
where s.stock_id is null;
insert into stol_table (stock_code,sys_entry_date) /* not clear where other values to be inserted will come from */
select stock_code,sysdate
from (select t.stock_code,s.stock_code stol_stock_code
from (select distinct stock_code
from (select alias1 stock_code from temp_table union all
select alias2 from temp_table union all
select alias3 from temp_table union all
select alias4 from temp_table union all
select alias5 from temp_table union all
select alias6 from temp_table union all
select alias7 from temp_table union all
select alias8 from temp_table union all
select alias9 from temp_table union all
select alias10 from temp_table union all
select alias11 from temp_table union all
select alias12 from temp_table union all
select alias13 from temp_table union all
select alias14 from temp_table union all
select alias15 from temp_table union all
select alias16 from temp_table union all
select alias17 from temp_table union all
select alias18 from temp_table union all
select alias19 from temp_table union all
select alias20 from temp_table
) /* use unpivot instead if you are 11g */
where stock_code is not null
) t,stol_table s
where t.stock_code = s.stock_code(+)
where s.stock_code is null;
and think about damorgan's post, you'll never regret it (especially when you will not just think)
Regards
Etbin -
Insert into multiple tables; grab id from first
I apologize if this has been answered elsewhere, but I tried
searching and got no results.
I'm trying to insert the contents of one form into two
tables. After inserting some fields into one table, I want to grab
the key/id from the first table into the second table with the
other fields.
I've tried a few different things, including trying to use
SCOPE_IDENTITY(), but just kept getting lots of errors.
The current version of my code works perfectly, *except for
the fact that it doesn't insert the ID*!
Can anyone tell me what I'm doing wrong? or offer another way
of doing this?
Thanks for your help, as usual.MarianneStone wrote:
> The current version of my code works perfectly, *except
for the fact that it doesn't insert > the ID*!
> Can anyone tell me what I'm doing wrong?
The EmployeeID is not inserted because the getMyID query
cannot find the newly inserted record. When using a UUID to
identify the new records ..
<cfquery name="qAddDeptHead" datasource="#db#"
result="result">
INSERT INTO Employee(... , EmpUUID)
VALUES ( ... , '#CreateUUID()#')
</cfquery>
You have to use that _same_ UUID to find the record, _not_
create a new one.
<cfquery name="getMyID" datasource="#db#">
SELECT EmployeeID, EmpUUID
FROM Employee
WHERE Employee.EmpUUID='#UseTheSameUUIDFromTheFirstQuery#'
</cfquery>
As an aside, you could probably do this in two queries not
three. Just drop the second SELECT query and use an INSERT
INTO/SELECT .. FROM Table statement instead. Plus you should also
consider using cfqueryparam for your query parameters. It has many
benefits.
http://livedocs.adobe.com/coldfusion/8/htmldocs/Tags_p-q_18.html#1102474
> Can anyone ... offer another way of doing this?
There are a few options. For ColdFusion 8, you could use the
result attribute. After running the INSERT you can grab the new
EmployeeID by using #yourResult.IDENTITYCOL#
<cfquery name="qAddDeptHead" datasource="#db#"
result="yourResult">
INSERT INTO Employee ( Columns here )
VALUES (... values here ...)
</cfquery>
For earlier versions, you can either use SCOPE_IDENTITY() or
a UUID value - as you are currently doing now.
> I've tried a few different things, including trying to
use SCOPE_IDENTITY(),
> but just kept getting lots of errors.
If you use SCOPE_IDENTITY() turn off the rowcount, or the
query variable "qAddDeptHead" may be undefined when you try and use
it.
<cfquery name="qAddDeptHead" datasource="#db#"
result="yourResult">
SET NOCOUNT ON;
INSERT INTO Employee ( Columns here )
VALUES (... values here ...)
SELECT EmployeeID AS NewEmployeeID
SET NOCOUNT OFF;
</cfquery>
<cfquery name="qNewEmpPosition" datasource="#db#">
INSERT INTO EmployeePositions(EmployeeID, .... )
VALUES ( #qAddDeptHead.NewEmployeeID#, ....)
</cfquery> -
Inserting into table whith select query...
Hi All,
I am having requirement where
INSERT into employee_Temp (emp_id,emp_name,emp_email) (select emp_id,emp_name,emp_email from EMP where sal > 300) order by emp_name.
Here EMP table has Toplink mapping to a java object.So I have constructed the select part of the query using ReportQuery.
Can you help me in constructing the complete query so that employee_Temp will be populated in one shot.
I am using Toplink Toplink9.0.3
Thanks in Advance,
Ashwin BTopLink does not currently support an InsertAllQuery, (10.1.3 added an UpdateAllQuery, and DeleteAllQuery will be supported in 11.1.1).
You will need to use SQL for your query.
Maybe you are looking for
-
Function modules to create leave request?
Hi experts, In my project I need to create a leave request and trigger workflow for approval. Do you know any function modules existed for this purpose? Or shall we need to create workflow and attach it with inserting IT2001 records? Thanks a lot.
-
How can I move my iPhoto Library from one Mac to another without losing the comments on the individual photos in the process? The source Macbook (OS 10.4.11 and iPhoto 6.0.6 (3.2.2.)) is with my husband in Germany, the target MacBook Pro (OS 10.8.5,
-
Can I amend text in a 1.7(acrobat 8.x) documnet? What program do I need?
-
History will not clear using Firefox under Mac OS 10.9.2
Cannot clear the history. No matter what I do, I'm stuck with junk left over in the History drop-down (Sears and Lowes sites always show up). Tried uninstalling/reinstalling without success. The same sites still show up. Tried going to ~Library/Appli
-
In Invoice header conditions pricing values updated as u201C0u201D
Dear guruu2019s I am facing the below error can any please suggest me on the same. We have created the sales order with 3 line items and we have created 3 individual deliveries and 3 different invoices but for the 1st sales order line item we observe