How do i insert into temp table
Hi ALL,
I have a table APP
APP_I Acronym Desc
1 ACC Accounts
PLTFRM
swr_pltfrm_i swr_pltfrm_x swr_pltfrm_typ_x
1 AIX-JAVA Execution
2 COBOL/BATCH Execution
3 COBOL/CICS Execution
4 CONSULTWORKS/MOBILE Delivery
5 CONSULTWORKS Delivery
PLTFRM_APP_ENVT
swr_pltfrm_i app_i
1 1
2 1
3 1
4 1
5 1
I want to create one temporary tab
TEMP_insert(app_i,desc, acrnymc ,delivery,execution) which have this columns
App_i desc acrnymc execution
1 Accounts ACC AIX-JAVA,COBOL/BATCH,COBOL/CICS
delivery
CONSULTWORKS,CONSULTWORKS/MOBILE
How do i insert the row in to the Temp_Insert table based on APP_I as input to my stored procedure.
Thanks
hopefully this will help
dev>declare
2 cursor c is select empno,ename,job from emp where deptno=20 and rownum<3;
3 str varchar2(100);
4 begin
5 for cur in c loop
6 str:=str||' '||cur.ename||' '||cur.job;
7 end loop;
8 insert into emp_test (ename) VALUES(str);
9 end;
10 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.00
dev>select ename from emp_test;
ENAME
SMITH CLERK JONES MANAGER
[pre
Similar Messages
-
How can I insert into a table other than the default table in a form
Hi,
I want to insert into a table with some fields value of a form of another table. I have written insert code On successful submission of that form, but after submit it gives the following error
An unexpected error occurred: ORA-06502: PL/SQL: numeric or value error (WWV-16016)
My code is like this
declare
l_trn_id number;
l_provider_role varchar2(3);
l_provider_id varchar2(10);
begin
l_trn_id := p_session.get_value_as_number(p_block_name=>'DEFAULT',p_attribute_name=>'A_TRANSACTION_ID');
l_provider_id := p_session.get_value_as_varchar2(p_block_name=>'DEFAULT',p_attribute_name=>'A_PROVIDER1');
l_PROVIDER_ROLE := p_session.get_value_as_varchar2(p_block_name=>'DEFAULT',p_attribute_name=>'A_PROVIDER_ROLE1');
if (l_provider_role is not null) and (l_provider_id is not null) then
insert into service_provider_trans_records(service_provider_id,transaction_id,role_type_id)
values(l_provider_id, l_trn_id, l_provider_role);
commit;
end if;
end;
Where 'PROVIDER1' and 'PROVIDER_ROLE1' are not table fields.
How can do that or why this error comes ? Any idea?
Thanks
SumitaHi,
When do you get this error? Is it while running or while creating the form.
Here is a sample code which inserts a non-database column dummy into a table called dummy. This is done in successful procedure.
declare
l_dummy varchar2(1000);
begin
l_dummy := p_session.get_value_as_varchar2(p_block_name=>'DEFAULT',
p_attribute_name=>'A_DUMMY');
insert into sjayaram903_1g.dummy values(l_dummy);commit;
end;
Please check in your case if the size of the local variable is enough to hold the values being returned.
Thanks,
Sharmila -
How to Improve inserts into Template table for Query Processing
Hi guys!
I need your advice. How can i improve inserts into template table (/BI0/0P00000010 for exemple)? In my scenario i forced to load data from cube C_X to cubes C_1, C_2 and C_3.
To get a goal i created a transformations and a DTP process with delta upload to each of cubes (C_1, C_2, C3). And that proccess takes about 3 hours! (it doesn't matter 1.000 or 100.000 records). But when i tried to load data with full update (with a filter) a proccess get data takes about 1 minutes.
I traced process and saw that inserting into template table (which create each time when proccess started) take the longest time. How can i improve it?Hi Mahendar,
It will require some efforts to investigate it so I propose to open a support ticket with Microsoft (through portal).
Your first question interest me and I am not sure if you are doing proactive or reactive real time reporting. You can try with
HBase for storing and retrieving data. HBase known for providing good read and write speed. If you are not comfortable writing HBase syntax then you can add an abstraction layer i.e. HIVE. It might take little more time when you
query HBase from Hive.
If you are doing real time analytic, then you can choose from Strom and Microsoft Azure Stream Analytic.
Thanks and Regards,
Sudhir Rawat -
Insert into temp table with sorting not works
Hi,
Am inserting some of the values into temp table . Before going to insert i will be sorting a cloumn in descending order and then i will try insert. But actually inserts in ascending order.Dont know why.
Please find the code
Create table #TempTable( column1 smalldateTime )
Insert into #TempTable
Select distinct(column1) from table1 where cloumn2 = 1 order by column1 desc
When i query the table
select * from #TempTable
shows the dates are in ascending order instead it should in descending
But when i query this Select distinct(column1) from table1 where cloumn2 = 1 order by column1 desc
dates are in descending order which means recent dates fills topOr use a CTE = Common Table Expression:
CREATE TABLE #test (id int);
INSERT INTO #test
SELECT object_id
FROM sys.objects;
SELECT COUNT(*)
FROM #test;
GO
;WITH cte AS
(SELECT Top 2 *
FROM #test
ORDER BY id desc)
DELETE FROM cte;
GO
SELECT COUNT(*)
FROM #test;
GO
DROP TABLE #test;
Olaf Helper
[ Blog] [ Xing] [ MVP] -
How to capture insert into wf_notifications table
we are building a custom app, which needs to know as soon as a row in insterted into the wf_notifications table, and we want to avod creating a on insert trigger on this table.
Is there a way to figure out that a row is being inserted into this table without having to write a trigger.
Thanks
TapashOracle Workflow raises a business event oracle.apps.wf.notification.send as soon a notification record is created in WF_NOTIFICATIONS table. This business event has parameters such as NOTIFICATION_ID, RECIPIENT_ROLE etc. If you have access to the notification id you may access all other information from WF_NOTIFICATIONS table.
You may create a subscription to this business event with On Error -> Skip property so that in case of an error, your subscription does not impact the normal processing of seeded subscriptions. You may have a PLSQL rule function in the subscription to process the logic required when the notification is created.
Please refer to Oracle Workflow Developer Guide for more information on using Business Event System.
Hope this helps.
Vijay -
MS SQL Server 2014: Error inserting into Temp table with index and identity field
In this thread, I mentioned a problem with SQL Server 2014:
SQL Server 2014: Bug with IDENTITY INSERT ON
The question was answered, it is a bug. To keep you informed on this issue, I open this discussion.
Problem:
The code below works perfectly fine on MS SQL Server 2008 R2 and MS SQL Server 2012, but gives an error every second time the proc is executed on MS SQL Server 2014. If I do not define any index on the temp table, the problem disappears. Defining the index
after the insert, does not help.
SET NOCOUNT ON
GO
IF EXISTS (SELECT 1 FROM sys.procedures WHERE name = 'usp_Test') DROP PROC dbo.usp_Test;
GO
CREATE PROC dbo.usp_Test AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #Source(ID integer NOT NULL);
INSERT INTO #Source VALUES (1), (2), (3);
CREATE TABLE #Dest (ID integer IDENTITY(1,1) NOT NULL);
CREATE INDEX #IDX_Dest ON #Dest (ID);
PRINT 'Check if the insert might cause an identity crisis';
SELECT 'Source' AS SourceTable, * FROM #Source;
SELECT 'Destination' AS DestTable, * FROM #Dest;
SET IDENTITY_INSERT #Dest ON;
PRINT 'Do the insert';
INSERT INTO #Dest (ID) SELECT ID FROM #Source;
PRINT 'Insert ready';
SET IDENTITY_INSERT #Dest OFF;
SELECT * FROM #Dest;
DROP TABLE #Source;
DROP TABLE #Dest;
END;
GO
PRINT 'First execution of the proc, everything OK';
EXEC dbo.usp_Test;
PRINT '';
PRINT 'Second execution of the proc, the insert fails.';
PRINT 'Removing the index #IDX_Dest causes the error to disappear.';
EXEC dbo.usp_Test;
GO
DROP PROC dbo.usp_Test;
GOThere is some progress. Communication from a former Microsoft employee tells us this:
Shivendra Vishal
Engineer at Microsoft
I am no longer with MS, and I do not have code access, however from the public symbols, I could make out following:
sqlmin!SetidentI2I4+0x1f3:
000007fe`f4d865d3 488b10 mov rdx,qword ptr [rax] ds:00000000`00000000=????????????????
ExceptionAddress: 000007fef4d865d3 (sqlmin!SetidentI2I4+0x00000000000001f3)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000
This is a read AV and from registers it is clear that we were trying to move the value of location pointed by qword of register rax which is not valid:
rax=0000000000000000 rbx=0000000000000038 rcx=0000000000001030
rdx=0000000000000006 rsi=00000001f55def98 rdi=00000000106fd070
rip=000007fef4d865d3 rsp=00000000106fcf40 rbp=00000000106fcfe9
r8=0000000000000000 r9=00000001f55def60 r10=00000001f55defa0
r11=00000000106fcd20 r12=0000000000000000 r13=0000000000000002
r14=00000001f49c3860 r15=00000001f58c0040
iopl=0 nv up ei pl nz na po nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
The stack is:
# Child-SP RetAddr Call Site
00 00000000`106fcf40 000007fe`f30c1437 sqlmin!SetidentI2I4+0x1f3
01 00000000`106fd050 000007fe`f474e7ce sqlTsEs!CEsExec::GeneralEval4+0xe7
02 00000000`106fd120 000007fe`f470e6ef sqlmin!CQScanUpdateNew::GetRow+0x43d
03 00000000`106fd1d0 000007fe`f08ff517 sqlmin!CQueryScan::GetRow+0x81
04 00000000`106fd200 000007fe`f091cebe sqllang!CXStmtQuery::ErsqExecuteQuery+0x36d
05 00000000`106fd390 000007fe`f091ccb9 sqllang!CXStmtDML::XretDMLExecute+0x2ee
06 00000000`106fd480 000007fe`f08fa058 sqllang!CXStmtDML::XretExecute+0xad
07 00000000`106fd4b0 000007fe`f08fb66b sqllang!CMsqlExecContext::ExecuteStmts<1,1>+0x427
08 00000000`106fd5f0 000007fe`f08fac2e sqllang!CMsqlExecContext::FExecute+0xa33
09 00000000`106fd7e0 000007fe`f152cfaa sqllang!CSQLSource::Execute+0x86c
0a 00000000`106fd9b0 000007fe`f152c9e8 sqllang!CStmtExecProc::XretLocalExec+0x25a
0b 00000000`106fda30 000007fe`f152a1d8 sqllang!CStmtExecProc::XretExecExecute+0x4e8
0c 00000000`106fe1e0 000007fe`f08fa058 sqllang!CXStmtExecProc::XretExecute+0x38
0d 00000000`106fe220 000007fe`f08fb66b sqllang!CMsqlExecContext::ExecuteStmts<1,1>+0x427
0e 00000000`106fe360 000007fe`f08fac2e sqllang!CMsqlExecContext::FExecute+0xa33
0f 00000000`106fe550 000007fe`f0902267 sqllang!CSQLSource::Execute+0x86c
10 00000000`106fe720 000007fe`f0909087 sqllang!process_request+0xa57
11 00000000`106feee0 000007fe`f2bf49d0 sqllang!process_commands+0x4a3
12 00000000`106ff200 000007fe`f2bf47b4 sqldk!SOS_Task::Param::Execute+0x21e
13 00000000`106ff800 000007fe`f2bf45b6 sqldk!SOS_Scheduler::RunTask+0xa8
14 00000000`106ff870 000007fe`f2c136ff sqldk!SOS_Scheduler::ProcessTasks+0x279
15 00000000`106ff8f0 000007fe`f2c138f0 sqldk!SchedulerManager::WorkerEntryPoint+0x24c
16 00000000`106ff990 000007fe`f2c13246 sqldk!SystemThread::RunWorker+0x8f
17 00000000`106ff9c0 000007fe`f2c13558 sqldk!SystemThreadDispatcher::ProcessWorker+0x3ab
18 00000000`106ffa70 00000000`775d59ed sqldk!SchedulerManager::ThreadEntryPoint+0x226
19 00000000`106ffb10 00000000`7780c541 kernel32!BaseThreadInitThunk+0xd
1a 00000000`106ffb40 00000000`00000000 ntdll!RtlUserThreadStart+0x21
Unassembling the function:
000007fe`f4d8658e 4c8b10 mov r10,qword ptr [rax]
000007fe`f4d86591 4533e4 xor r12d,r12d
000007fe`f4d86594 410fb7d5 movzx edx,r13w
000007fe`f4d86598 4533c9 xor r9d,r9d
000007fe`f4d8659b 4533c0 xor r8d,r8d
000007fe`f4d8659e 488bc8 mov rcx,rax
000007fe`f4d865a1 4489642420 mov dword ptr [rsp+20h],r12d
000007fe`f4d865a6 41ff5230 call qword ptr [r10+30h]
000007fe`f4d865aa 8b5597 mov edx,dword ptr [rbp-69h]
000007fe`f4d865ad 4c8b10 mov r10,qword ptr [rax]
000007fe`f4d865b0 4489642438 mov dword ptr [rsp+38h],r12d
000007fe`f4d865b5 4489642430 mov dword ptr [rsp+30h],r12d
000007fe`f4d865ba 458d442401 lea r8d,[r12+1]
000007fe`f4d865bf 4533c9 xor r9d,r9d
000007fe`f4d865c2 488bc8 mov rcx,rax
000007fe`f4d865c5 c644242801 mov byte ptr [rsp+28h],1
000007fe`f4d865ca 4488642420 mov byte ptr [rsp+20h],r12b
000007fe`f4d865cf 41ff5250 call qword ptr [r10+50h]
000007fe`f4d865d3 488b10 mov rdx,qword ptr [rax] <=================== AV happened over here
000007fe`f4d865d6 488bc8 mov rcx,rax
000007fe`f4d865d9 4c8bf0 mov r14,rax
000007fe`f4d865dc ff5268 call qword ptr [rdx+68h]
000007fe`f4d865df 488d55e7 lea rdx,[rbp-19h]
000007fe`f4d865e3 4c8b00 mov r8,qword ptr [rax]
000007fe`f4d865e6 488bc8 mov rcx,rax
000007fe`f4d865e9 41ff5010 call qword ptr [r8+10h]
000007fe`f4d865ed f6450a04 test byte ptr [rbp+0Ah],4
I remember few issues with scan2ident function, I am not sure if they have fixed it however it appears that this is intoduced to SQL 2014 and we need help from MS to get this resolved as it needs code analysis.
It is not getting simulated for other versions of SQL apart from SQL 2014.
Also to add, interestingly, the value of rax is not visibly changed and it was successfully passed on to rcx, which has a valid value, so something should have changed the value of rax inside call to function using call qword ptr [r10+50h], and looking at this
it appears that it might be a list of functions and we are going at particular offset [50h]. So, bottom line is that the call to function qword ptr [r10+50h], should be changing something in rax, and debugging/analyzing this code might give us some more idea. -
How can i insert into dynamic table ?
i have regular internal table with data .
i have dynamic table <dyn_tab>
i insert the data from itab
MOVE-CORRESPONDING ITAB TO <LS_LINE>.
INSERT <LS_LINE> INTO TABLE <DYN_TABLE>.
OK , NOW I WANT TO ADD THE DATA FROM OTHER TABLE
THAT HOLD THE DATA THAT ALL THE DYNAMIC TAB BUILD FOR
HOW CAN I DO THIS INSERT ?
I NEED TO INSERT "KOSTL" TO MATCH LINE in <DYN_TABLE>
THIS WHAT I TRIED TO DO :
SHIFT INDX1 LEFT DELETING LEADING SPACE.
CONCATENATE 'KOSTL' INDX1 INTO FIELD .
ASSIGN COMPONENT FIELD OF STRUCTURE <DYN_TABLE> TO <FS>.
<FS> = IT_EKKN-KOSTL.
but i get dump that <FS> not been assign .hi,
pls chk the sample code below.
REPORT zmaschl_create_data_dynamic .
TYPE-POOLS: slis.
DATA: it_fcat TYPE slis_t_fieldcat_alv,
is_fcat LIKE LINE OF it_fcat.
DATA: it_fieldcat TYPE lvc_t_fcat,
is_fieldcat LIKE LINE OF it_fieldcat.
DATA: new_table TYPE REF TO data.
DATA: new_line TYPE REF TO data.
FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,
<l_line> TYPE ANY,
<l_field> TYPE ANY.
* Build fieldcat
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'SYST'
CHANGING
ct_fieldcat = it_fcat[].
LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS initial.
MOVE-CORRESPONDING is_fcat TO is_fieldcat.
is_fieldcat-fieldname = is_fcat-fieldname.
is_fieldcat-ref_field = is_fcat-fieldname.
is_fieldcat-ref_table = is_fcat-ref_tabname.
APPEND is_fieldcat TO it_fieldcat.
ENDLOOP.
* Create a new Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = new_table.
* Create a new Line with the same structure of the table.
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.
* Test it...
DO 30 TIMES.
ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
<l_field> = sy-index.
INSERT <l_line> INTO TABLE <l_table>.
ENDDO.
LOOP AT <l_table> ASSIGNING <l_line>.
ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
WRITE <l_field>.
ENDLOOP.
Regards
Anver
<i>if hlped pls mark points</i> -
How i can disable MONITORING temp tables
In the Oracle 10 g database stats are gathering using
Gtaher_stats_job
current setting is statictics _level =Typical
i need to disable the monotoring for temp tables
i try this command it will not change
ALTER TABLE "RDC"."INV_TEMP"
NOMONITORING
How i can disable this , i read some artikel this feature is disabled in oracle 10g
how i can disable
tks
rdaJustin Note
I would suggest that this is probably a bad idea, though. If there are no statistics on an object,
you're basically asking the CBO to work blind. Why not gather statistics after loading a fresh set of data
into the table?
I am running stats once a week , so i cannnot gather fresh set of dataNicolas
setting stats to a given value and lock them (to be not set to 0 by any gather stat process) may help as well.
Justin
Nicolas.
I cannot understand this >>to be not set to 0 by any gather stat processOk my process as follows
through sqlldr i load a data to temp table , i have a after insert trigger
once the data insert into temp table it check for some condition and
fire this trigger and insert into Permanent Table,
After the process finished the temp table truncated.
this whole process running every day .
I already mention stats are collected once a week , no point i keep the stats
for this temp table and suppose if i keep , it will give wong execution plan
and insert into this temp tabel will be slow -- am i right in this step
This is the reason i dont want stats at all in temp table
Thanks Justin & Nicolas
Best rds -
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 -
How can I get a count at the same time I am inserting into another table
I have a requirement where I have to find out the count(number of records inserted into another table) at the same time I insert into the table:
Like
I am copying records from table B to A, while doing this I have to find out how many records I've inserted since I need this count in subsequent steps
INSERT INTO A
SELECT * FROM B
how can I store the count into any variable while doing above statement
Please adviceNo, Warren that doesn't work!
SQL> set serveroutput on
SQL> declare
2 vCtr number := 0;
3 begin
4 insert into emp2
5 select * from emp;
6
7 select count(*)
8 into vCtr
9 from emp2;
10
11 dbms_output.put_line('rows created '||to_char(vCtr));
12 end;
13 /
rows created 15
PL/SQL procedure successfully completed.
SQL> declare
2 vCtr number := 0;
3 begin
4 insert into emp2
5 select * from emp;
6
7 select count(*)
8 into vCtr
9 from emp2;
10
11 dbms_output.put_line('rows created '||to_char(vCtr));
12 end;
13 /
rows created 30
PL/SQL procedure successfully completed.
SQL> -
How to insert into a table with a nested table which refer to another table
Hello everybody,
As the title of this thread might not be very understandable, I'm going to explain it :
In a context of a library, I have an object table about Book, and an object table about Subscriber.
In the table Subscriber, I have a nested table modeling the Loan made by the subscriber.
And finally, this nested table refers to the Book table.
Here the code concerning the creation of theses tables :
Book :
create or replace type TBook as object
number int,
title varchar2(50)
Loan :
create or replace type TLoan as object
book ref TBook,
loaning_date date
create or replace type NTLoan as table of TLoan;
Subscriber :
create or replace type TSubscriber as object
sub_id int,
name varchar2(25)
loans NTLoan
Now, my problem is how to insert into a table of TSubscriber... I tried this query, without any success...
insert into OSubscriber values
*(1, 'LEVEQUE', NTLoan(*
select TLoan(ref(b), '10/03/85') from OBook b where b.number = 1)
Of course, there is an occurrence of book in the table OBook with the number attribute 1.
Oracle returned me this error :
SQL error : ORA-00936: missing expression
00936. 00000 - "missing expression"
Thank you for your help1) NUMBER is a reserved word - you can't use it as identifier:
SQL> create or replace type TBook as object
2 (
3 number int,
4 title varchar2(50)
5 );
6 /
Warning: Type created with compilation errors.
SQL> show err
Errors for TYPE TBOOK:
LINE/COL ERROR
0/0 PL/SQL: Compilation unit analysis terminated
3/1 PLS-00330: invalid use of type name or subtype name2) Subquery must be enclosed in parenthesis:
SQL> create table OSubscriber of TSubscriber
2 nested table loans store as loans
3 /
Table created.
SQL> create table OBook of TBook
2 /
Table created.
SQL> insert
2 into OBook
3 values(
4 1,
5 'No Title'
6 )
7 /
1 row created.
SQL> commit
2 /
Commit complete.
SQL> insert into OSubscriber
2 values(
3 1,
4 'LEVEQUE',
5 NTLoan(
6 (select TLoan(ref(b),DATE '1985-10-03') from OBook b where b.num = 1)
7 )
8 )
9 /
1 row created.
SQL> select *
2 from OSubscriber
3 /
SUB_ID NAME
LOANS(BOOK, LOANING_DATE)
1 LEVEQUE
NTLOAN(TLOAN(000022020863025C8D48614D708DB5CD98524013DC88599E34C3D34E9B9DBA1418E49F1EB2, '03-OCT-85'))
SQL> SY. -
How to read LONG RAW data from one table and insert into another table
Hello EVERYBODY
I have a table called sound with the following attributes. in the music attribute i have stored some messages in the different language like hindi, english etc. i want to concatinate all hindi messages and store in the another table with only one attribute of type LONG RAW.and this attribute is attached with the sound item.
when i click the play button of sound item the all the messages recorded in hindi will play one by one automatically. for that i'm doing the following.
i have written the following when button pressed trigger which will concatinate all the messages of any selected language from the sound table, and store in another table called temp.
and then sound will be played from the temp table.
declare
tmp sound.music%type;
temp1 sound.music%type;
item_id ITEM;
cursor c1
is select music
from sound
where lang=:LIST10;
begin
open c1;
loop
fetch c1 into tmp; //THIS LINE GENERATES THE ERROR
temp1:=temp1||tmp;
exit when c1%notfound;
end loop;
CLOSE C1;
insert into temp values(temp1);
item_id:=Find_Item('Music');
go_item('music');
play_sound(item_id);
end;
but when i'm clicking the button it generates the following error.
WHEN-BUTTON-PRESSED TRIGGER RAISED UNHANDLED EXCEPTION ORA-06502.
ORA-06502: PL/SQL: numeric or value error
SQL> desc sound;
Name Null? Type
SL_NO NUMBER(2)
MUSIC LONG RAW
LANG CHAR(10)
IF MY PROCESS TO SOLVE THE ABOVE PROBLEM IS OK THEN PLESE TELL ME THE SOLUTION FOR THE ERROR. OTHER WISE PLEASE SUGGEST ME,IF ANY OTHER WAY IS THERE TO SOLVE THE ABOVE PROBLEM.
THANKS IN ADVANCE.
D. PrasadYou 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 -
How to insert into 2 tables from the same page (with one button link)
Hi,
I have the following 2 tables....
Employees
emp_id number not null
name varchar2(30) not null
email varchar2(50)
hire_date date
dept_id number
PK = emp_id
FK = dept_id
Notes
note_id number not null
added_on date not null
added_by varchar2(30) not null
note varchar2(4000)
emp_id number not null
PK = note_id
FK = emp_id
I want to do an insert into both tables via the application and also via the same page (with one button link). I have made a form to add an employee with an add button - adding an employee is no problem.
Now, on the same page, I have added a html text area in another region, where the user can write a note. But how do I get the note to insert into the Notes table when the user clicks the add button?
In other words, when the user clicks 'add', the employee information should be inserted into the Employees table and the note should be inserted into the Notes table.
How do I go about doing this?
Thanks.Hi,
These are my After Submit Processes...
After Submit
30 Process Row of NOTES Automatic Row Processing (DML) Unconditional
30 Process Row of EMPLOYEES Automatic Row Processing (DML) Unconditional
40 reset page Clear Cache for all Items on Pages (PageID,PageID,PageID) Unconditional
40 reset page Clear Cache for all Items on Pages (PageID,PageID,PageID) Unconditional
40 reset page Clear Cache for all Items on Pages (PageID,PageID,PageID) Unconditional
40 reset page Clear Cache for all Items on Pages (PageID,PageID,PageID) Unconditional
50 Insert into Tables PL/SQL anonymous block Conditional
My pl/sql code is the same as posted earlier.
Upon inserting data into the forms and clicking the add button, I get this error...
ORA-06550: line 1, column 102: PL/SQL: ORA-00904: "NOTES": invalid identifier ORA-06550: line 1, column 7: PL/SQL: SQL Statement ignored
Error Unable to process row of table EMPLOYEES.
Is there something wrong with the pl/sql code or is it something else? -
Insert into two tables, how to insert multiple slave records
Hi, I have a problem with insert into two tables wizard.
The wizard works fine and I can add my records, but I need to enter multiple slave table records.
My database:
table: paper
`id_paper` INTEGER(11) NOT NULL AUTO_INCREMENT,
`make` VARCHAR(20) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`model` VARCHAR(20) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`gsm` INTEGER(11) NOT NULL,
PRIMARY KEY (`id_paper`)
table: paper_data
`id_paper_data` INTEGER(11) NOT NULL AUTO_INCREMENT,
`id_paper` INTEGER(11) NOT NULL,
`value` DOUBLE(15,3) NOT NULL,
`nanometer` INTEGER(11) NOT NULL,
PRIMARY KEY (`id_paper_data`)
I need to add multiple fields "value" and "nanometer"
Current form looks like this:
Make:
Model:
Gsm:
Value:
nanometer:
I need it to look like this:
Make:
Model:
Gsm:
Value:
nanometer:
Value:
nanometer:
Value:
nanometer:
Value:
nanometer:
and so on.
The field "id_paper" in table paper_data needs to get same id for entire transaction. Also how do I set default values for each field "nanometer" on my form the must be different (370,380,390 etc)?
Thanks.you can find an answer here: http://209.85.129.132/search?q=cache:PzQj57dsWmQJ:www.experts-exchange.com/Web_Development /Software/Macromedia_Dreamweaver/Q_23713792.html+Insert+Into+Two+Tables+Wizard&cd=3&hl=lt& ct=clnk&gl=lt
This is a copy of the post:
Hi experts,
Im using ADDT to design a page that needs to insert one record into a master ALBUMS table, along with three records into a GENRES table, all linked by the primary, auto-incremented ALBUMS. ALBUM_ID.
Ive tried many different ways of combining the Insert into Multiple Tables wizard and the insert record wizard with Link Transactions, all with no luck. Either only the album info gets inserted, or a ALBUM_ID cannot be null error from MySQL. Here is the structure of the tables
ALBUMS
ALBUM_ID, INT(11), Primary, Auto_Increment
alb_name, varchar
alb_release, YEAR
USER_ID, int
alb_image, varchar
GENRES
ALBUM_ID, int, NOT NULL
GENRE_ID, int, NOT NULL
ID, int, primary, auto-increment
Many thanks in advance...
==========================================================================================
//remove this line if you want to edit the code by hand
function Trigger_LinkTransactions(&$tNG) {
global $ins_genres;
$linkObj = new tNG_LinkedTrans($tNG, $ins_genres);
$linkObj->setLink("ALBUM_ID");
return $linkObj->Execute();
function Trigger_LinkTransactions2(&$tNG) {
global $ins_genres2;
$linkObj = new tNG_LinkedTrans($tNG, $ins_genres2);
$linkObj->setLink("ALBUM_ID");
return $linkObj->Execute();
function Trigger_LinkTransactions3(&$tNG) {
global $ins_genres3;
$linkObj = new tNG_LinkedTrans($tNG, $ins_genres3);
$linkObj->setLink("ALBUM_ID");
return $linkObj->Execute();
//end Trigger_LinkTransactions trigger
//-----------------------Different Section---------------------//
// Make an insert transaction instance
//Add Record Genre 1
$ins_genres = new tNG_insert($conn_MySQL);
$tNGs->addTransaction($ins_genres);
$ins_genres->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "VALUE", null);
$ins_genres->registerTrigger("BEFORE", "Trigger_Default_FormValidation", 10, $detailValidation);
$ins_genres->setTable("genres");
$ins_genres->addColumn("GENRE_ID", "NUMERIC_TYPE", "POST", "GENRE_ID");
$ins_genres->addColumn("ALBUM_ID", "NUMERIC_TYPE", "VALUE", "");
$ins_genres->setPrimaryKey("ID", "NUMERIC_TYPE");
// Add Record Genre 2
$ins_genres2 = new tNG_insert($conn_MySQL);
$tNGs->addTransaction($ins_genres2);
$ins_genres2->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "VALUE", null);
$ins_genres2->setTable("genres");
$ins_genres2->addColumn("GENRE_ID", "NUMERIC_TYPE", "POST", "GENRE_ID2");
$ins_genres2->addColumn("ALBUM_ID", "NUMERIC_TYPE", "VALUE", "");
$ins_genres2->setPrimaryKey("ID", "NUMERIC_TYPE");
// Add Record Genre 3
$ins_genres3 = new tNG_insert($conn_MySQL);
$tNGs->addTransaction($ins_genres3);
$ins_genres3->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "VALUE", null);
$ins_genres3->setTable("genres");
$ins_genres3->addColumn("GENRE_ID", "NUMERIC_TYPE", "POST", "GENRE_ID3");
$ins_genres3->addColumn("ALBUM_ID", "NUMERIC_TYPE", "VALUE", "");
$ins_genres3->setPrimaryKey("ID", "NUMERIC_TYPE");
=========================================================================================
Hi Aaron,
Nice job!!
$ins_albums->registerTrigger("AFTER", "Trigger_LinkTransactions2", 98);
$ins_albums->registerTrigger("AFTER", "Trigger_LinkTransactions3", 98);
These lines, right? :-( Sorry I forgot to mention that
Thanks a lot for the grading! -
Does a temp table is reuired to insert into a table
Hi ,
I am using a stored procedure to check the availability of a record in a table and deleting the record if exists ,
actually if the user have multiple record i need to delete and store it in removed table , so i used insert with select command to insert into the table , do i need to use a temp table to insert multiple record in removed table .
Thank You
Jeevan VinayNo, it doesn't need to be that complex.
The records need to go to your deleted/history table, and they also need to be deleted from the main table. I would just insert the records into the history table and delete the records from your main table by joining back to it on the delete with the PK.
You could try something like this:
CREATE TABLE ##main_table (employee_id INT IDENTITY(1,1), employee_name VARCHAR(50))
CREATE TABLE ##history_table (employee_id INT, employee_name VARCHAR(50))
INSERT INTO ##main_table (employee_name)
SELECT 'Alice'
UNION ALL
SELECT 'Bob'
UNION ALL
SELECT 'Charlie'
--Bob is the user that will get deleted (employee_id = 2)
--Insert record into history table
INSERT INTO ##history_table
SELECT *
FROM ##main_table
WHERE employee_id = 2
--Delete record from main table
DELETE m
FROM ##main_table m
JOIN ##history_table h
ON m.employee_id = h.employee_id
SELECT *
FROM ##history_table
SELECT *
FROM ##main_table
Maybe you are looking for
-
Get Item data at ME23n or ME22N after implementing MM06E005
Dear Experts, I have implemented user exit MM06E005 (Customer fields in purchasing document) for ME21N. 1. Add 1 filed to custom include structure CI_EKKODB in EKKO table. 2. Add my coding to function module EXIT_SAPMM06E_012 for validation. *& Incl
-
I have used Roboform for many years and it was always compatible until I think Firefox 6 when it was disabled. Since then Roboform have created a new app called RoboEverywhere which they said would work on Firefox and after installing the app, to my
-
HTMLTextarea in a custom activity space - _htFormData problem
I can create a form in a custom activity space and read the HTMLInput form types after the form post in the XPHashtable available in both the Model's SavePage() method and the RepostControl's PerformAction() method - they're all in the htFormData has
-
XSLT Editor for creating xlst mappings
Hi , Is there any free editor (which can be downloaded) for creating XSLT Mappings. Any EDITOR (other than ALTOVA and STYLUS) Regards, Sushil.
-
Can't install latest Exchange Extension for Photoshop CC
Hi, I've been trying for a while now to just get the exchange extension working in Photoshop CC. 1. First Photoshop needed to be updated, did that. 2. Then I installed Extension Manager, did that. 3. Then apparently had to update Both, did that. 4. T