Avoid an insertion in a table
Good morning!!
I'm trying to create a trigger in order to avoid some undesiderable insertions in a table of my DB. I check some basic rules of the data and I would like that in some cases the insertion won't be committed, but if I use a raise_application_error in my trigger, an error appears informing me that the number of the exception is out of range, and I can't make a rollback inside the trigger.
I've tried to insert the wrong data in other table and program other after insert trigger on this auxiliary table to drop the incorrect data, but without possitive result. The code of both triggers is as follow:
-- Table where I want to avoid the insertions: TABLE1
-- Auxiliar table: TABLE_AUX
CREATE OR REPLACE TRIGGER CHECK_CONDITIONS
AFTER INSERT
ON TABLE1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
EXISTE NUMBER;
PREV_DATA1 NUMBER;
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
SELECT COUNT(*),DATA1 INTO EXISTE,PREV_DATA FROM TABLE1 WHERE DATA2 = :NEW.DATA2 GROUP BY DATA1;
IF EXISTE = 1 THEN
dbms_output.put_line('Mother Word '||:new.mother_word ||' existente en BD');
IF PREV_DATA <> :NEW.DATA1 THEN
INSERT INTO TABLE_AUX VALUES(:NEW.DATA1,:NEW.DATA2);
COMMIT;
END IF;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;
WHEN OTHERS THEN
dbms_output.put_line(to_char(sqlcode)||': '||to_char(sqlerrm));
END CHECK_CONDITIONS;
CREATE OR REPLACE TRIGGER DELETE_BAD_DATA
AFTER INSERT
ON TABLE_AUX
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
DELETE FROM TABLE1 WHERE DATA1 = :NEW.DATA1 AND DATA2 = :NEW.DATA2;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(to_char(sqlcode)||to_char(sqlerrm));
END DELETE_BAD_DATA;
Any help would be useful.
Thanks in advance.
Isabel
One thing if you want to do a rollback or commit inside a trigger is using autonomous transaction inside a trigger..Please find the sample code for that which might be useful in your case
CREATE OR REPLACE TRIGGER t_autonomous_tx
BEFORE INSERT
ON person
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO audit_log
(chng_when, commentcol)
VALUES
(SYSDATE, 'Reporting an error');
COMMIT;
END t_autonomous_tx;
Similar Messages
-
Efficient Technique to Insert Data in Table ???
Hi
I want to implement the best efficient technique to insert data in Table. I have rows counts in millions in one db and I want to insert them in to another db with least time.
>>
I am implementing the technique of reading data from first db, apply some logics on it, insert the data in the log file (log4j) in the tab and line separated format and after completing the process insert log file data into the final table (using mysql load data local infile).
>>
Another technique that I use is to directly insert data into the final table after reading it from first db and applying logics on it.
>>
Another technique that I am going to use is using the JDBC Batch Update i.e. updating around (say 1000) rows in a final table after reading and applying logics on it.
Bench Marks:
The first technique takes 2 minutes for 60,000 rows
The second technique takes 4.5 minutes for 60,000 rows
The third technique is not implemented yet
Do anyone have any other technique to implement this working in more efficient way?
Regards
Rizwan Ahmed (rizzz86)When optimizing JDBC code, there are several things you should look into:
* use batch statements (reducing the number of roundtrips is really important!)
* disable autoCommit and commit() on your own (reducing the number of roundtrips and the number of disk accesses on the DB server)
* use PreparedStatements (avoid parsing the same statement again and again)
Those three should buy you quite a bit of time.
Edit: if it's still too slow (and only then!) you can look at the documentation of your JDBC driver. Sometimes there are options that can be enabled to speed things up (MySQL is especially bad here: there are some advanced features that are disabled by default, just because older server releases don't support them. I don't understand why they arent enabled conditionaly.). -
Insert into a table excluding duplicates of a selected column
I have mytable:
IDNO
Item
Date
Level
1
X24
12/23/13 10:41
22996
2
X24
12/23/13 10:41
22996
3
X24
12/23/13 9:21
23256
4
X24
12/23/13 9:21
23256
5
X24
12/23/13 9:22
23256
6
X24
12/23/13 9:22
23256
7
X24
12/23/13 9:22
22916
that is a result of INSERT i.e.,
INSERT INTO myTABLE(Item,[Date],[Level])
values('X24','12/23/13 :22','22916')
I want the INSERT to exclude the duplicate level defined as the previous level in a selected column [Level]. This would avoid having to 'view' the table using:
SELECT
i.IDNO,i.[Date],i.[Level]
FROM
mytable
i
INNER
JOIN
mytable
d
ON
d.IDNO
=
i.IDNO-1
WHERE
i.[Level]
<>
d.[Level]
IDNO is an identity column.
How can this INSERT be achieved without the overheads?Quite helpful comments particularly the ISO- 11179 and the design elements that can prevent the problem in the first instance. My apologies with regards to my impolite post omitting the DDL. It is a small procedure and [Date] and [Level] can be accommodated
by the server but are bad habits. My efforts to control the data input were in vain as the data was not from a software conducive to such controls. Because of the high frequency volume of the data, (suggested by the time-stamps with milliseconds cut), any
effort to have 'The data... cleaned in a presentation/input layer ' would be futile. The suggestions of yourself
and Erland Sommarskog, SQL Server MVP, [email protected], of a UNIQUE constraint to deal with the problem
underscores the importance of design even in the 'smallest' of procedures.
This worked:
drop table Foobar
CREATE TABLE Foobar
(item_name CHAR(5) NOT NULL,
foo_timestamp DATETIME2(0) NOT NULL
CHECK (foo_timestamp
= DATEADD(MINUTE, DATEDIFF(MINUTE, '2000-01-01', foo_timestamp),
'2000-01-01')),
water_level INTEGER NOT NULL, -- why not be silly?
PRIMARY KEY (item_name,foo_timestamp, water_level));
INSERT INTO Foobar
VALUES
('X24', '2013-12-23 10:41:00', 22996),
-- ('X24', '2013-12-23 10:41:00', 22996), rejected by DDL!!
-- ('X24', '2013-12-23 09:21:00', 23256), rejected by DDL!!
('X24', '2013-12-23 09:21:00', 23256),
('X24', '2013-12-23 09:22:00', 23256),
-- ('X24', '2013-12-23 09:22:00', 23256), rejected by DDL!!
('X24', '2013-12-23 09:22:00', 22916);
select *
from Foobar
item_name foo_timestamp
water_level
X24 2013-12-23 09:21:00
23256
X24 2013-12-23 09:22:00
22916
X24 2013-12-23 09:22:00
23256
X24 2013-12-23 10:41:00
22996 -
LOAD vs OVERWRITE INSERT PRODUCE DIFFERENT TABLE SIZE!!
Hi again!
Here is another issue I don't understand why happens:
The size of the table doubles if I load the data with INSERT OVERWRITE vs LOAD. As follows is an illustration of the problem:
I created a table "item". Loaded the data from item.dat (aprox 28MB). After that what happens is that the file item.dat will be moved to hive/warehouse and off course the size remains the same
Now if I create another table "item2" same as item and then load the data from item to item2 with the following command:
INSERT OVERWRITE TABLE item2 SELECT * FROM item
the size of table item2 is double of item (aprox 55MB)
Why does this happen? And is there any way to avoid it?
And the situation escalates as the size of the data grows.
ps. this is only to illustrate the problem. In practice I am interested for pre-joining tables but INSERT OVERWRITE increases the size of the joined table drastically (Actual problem: 4GB joined with 28MB gives 18GB)
Thank you!Latest update on the issue:
I tested on cloudera as well and it is the same behavior: As follows are some details after running describe formatted <table_name> :
item (with LOAD):
33 Table Type: MANAGED_TABLE NULL
34 Table Parameters: NULL NULL
35 COLUMN_STATS_ACCURATE true
36 numFiles 1
37 numRows 0
38 rawDataSize 0
39 totalSize 28855325
40 transient_lastDdlTime 1427988576
41 NULL NULL
42 # Storage Information NULL NULL
43 SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe NULL
44 InputFormat: org.apache.hadoop.mapred.TextInputFormat NULL
45 OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat NULL
46 Compressed: No NULL
item2 (with INSERT OVERWRITE):
33 Table Type: MANAGED_TABLE NULL
34 Table Parameters: NULL NULL
35 COLUMN_STATS_ACCURATE true
36 numFiles 1
37 numRows 102000
38 rawDataSize 52058005
39 totalSize 52160005
40 transient_lastDdlTime 1427990208
41 NULL NULL
42 # Storage Information NULL NULL
43 SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe NULL
44 InputFormat: org.apache.hadoop.mapred.TextInputFormat NULL
45 OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat NULL
46 Compressed: No NULL
And now I don’t understand why the number of rows is 0 for item. When I query it returns 102000 rows -
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 -
Can not insert or update [TABLE] from internal table in method
I've faced a problem with OO abap. I've tried to insert into [ TABLE ] from internal table, but i've got error msg after i compiled.
"An explicit work area is necessary in the OO context. Use "INSERT wa INTO [TABLE] itab""
After i changed to loop in work area and INSERT INTO [TABLE] VALUES gw_data., everything is fine, can compile and run.
This is error code.
METHOD set_data_to_table.
REFRESH gi_data.
CLEAR gi_data.
IF gi_file[] IS NOT INITIAL.
* Set data for modify table
LOOP AT gi_file INTO gw_file.
MOVE-CORRESPONDING gw_file TO gw_data.
me->conversion_input( EXPORTING im_vendor = gw_data-vendor
CHANGING ch_vendor = gw_data-vendor ).
APPEND gw_data TO gi_data.
ENDLOOP.
INSERT [TABLE] FROM TABLE gi_data.
* LOOP AT gi_data INTO gw_data.
* INSERT INTO [TABLE] VALUES gw_data.
* IF sy-subrc = 0.
* COMMIT WORK.
* ELSE.
* ROLLBACK WORK.
* ENDIF.
* ENDLOOP.
ELSE.
MESSAGE 'No data found' TYPE 'I'.
ENDIF.
ENDMETHOD. "set_data_to_tableHi Matthew,
I think there is no difference in database insert between OO and non-OO.
The correct syntax according to ECC600 online documentation is
[Inserting Several Lines|http://help.sap.com/saphelp_erp2005vp/helpdata/en/fc/eb3a6d358411d1829f0000e829fbfe/content.htm]
To insert several lines into a database table, use the following:
INSERT target FROM TABLE itab \[ACCEPTING DUPLICATE KEYS].
This writes all lines of the internal table itabto the database table in one single operation. If one or more lines cannot be inserted because the database already contains a line with the same primary key, a runtime error occurs. You can prevent the runtime error occurring by using the addition ACCEPTING DUPLICATE KEYS.
Whenever you want to insert more than one line into a database table, it is more efficient to work with an internal table than to insert the lines one by one.
I think the syntax
INSERT my_dbtable FROM TABLE gi_data.
should work, your suggestion may lead to syntax error.
Regards,
Clemens -
Inserting into a table which is created "on the fly" from a trigger
Hello all,
I am trying to insert into a table from a trigger in Oracle form. The table name however, is inputted by the user in am item form.
here is what the insert looks like:
insert into :table_name
values (:value1, :value2);
the problem is that forms does not recognize ::table_name. If I replace :table_name with an actual database table, it works fine. However, I need to insert to a table_name based from oracle form item.
By the way, the table|_name is built on the fly using a procedure before I try to insert into it.
Any suggestion on how can I do that? My code in the trigger is:
declare
dm_drop_tbl(:table_name,'table) // a call to an external procedure to drop the table
dm_create_tbl(:table_name,'att1','att2');
insert into :table_name
values (:value1, :value2);
this give me an error:
encounter "" when the symbol expecting one.....Hi ,
You should use the FORMS_DDL built_in procedure. Read the on-line documentation of forms ...
Simon -
Insert From Master Table which is not based on EO
Hi
I have a Master-Detail relationship table page,now my requirement is to Insert data from Master VO(which is not based on any EO)
Actually I have added four new columns in the VO,only these four columns are of type message Text Input,all others are message Styled Text(just for fetching not inserting)
Now the problem is some fields in the VO will simply query and some will fetch as well as Insert
If at all I am trying to make the VO based on the New EO it is not inserting
Please help it is a bit Urgent
Regards
Ravi
Edited by: user10757594 on Jan 3, 2009 6:11 AMHi Ravi,
I think you should write update statement to insert into the table.
Thanks,
Kumar -
Weird behaviour while inserting in a table
Hi All,
I am coming across a wierd problem.
We are using Oracle 10.2.0.3.0.
There is a collection system where by we give snapshot of the entire database in a pre-requisite format.
Recently a strange thing is happenning.
When we try to insert into a table data for 3 Lac individual (1 row per customer shud be inserted) customers from 12 different tables, it inserts more than 4 million rows.
Another observation is that for one account there are 39,98,300 rows and rest has data for some customers and not all.
When i printed the count of the select query, it returned exactly 3 Lac rows.
But when i run the proc from SQL prompt, it inserted exactly 3 Lac rows.
Has anyone come across such a problem.
Thanks in advance.
Ameya.Ameya wrote:
I am coming across a wierd problem.Problems are always weird,interesting etc until you know how to fix them.
Recently a strange thing is happenning.Since when, was there a change in your code, table re-org, some objects/code dropped etc.
When we try to insert into a table data for 3 Lac individual (1 row per customer shud be inserted) customers from 12 different tables, it inserts more than 4 million rows.How do you define individual customer, do you have unique constraint on the table, what is your business rule for unique customer identification etc.?
Does your 12 different tables same structure or 12 different structures.
What process inserts data - list the code.
Another observation is that for one account there are 39,98,300 rows and rest has data for some customers and not all.
When i printed the count of the select query, it returned exactly 3 Lac rows.Your code ?
But when i run the proc from SQL prompt, it inserted exactly 3 Lac rows.can you recreate problem using some sample representative code.
SS -
Problem while inserting into a table which has ManyToOne relation
Problem while inserting into a table *(Files)* which has ManyToOne relation with another table *(Folder)* involving a attribute both in primary key as well as in foreign key in JPA 1.0.
Relevent Code
Entities:
public class Files implements Serializable {
@EmbeddedId
protected FilesPK filesPK;
private String filename;
@JoinColumns({
@JoinColumn(name = "folder_id", referencedColumnName = "folder_id"),
@JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false)})
@ManyToOne(optional = false)
private Folders folders;
public class FilesPK implements Serializable {
private int fileId;
private int uid;
public class Folders implements Serializable {
@EmbeddedId
protected FoldersPK foldersPK;
private String folderName;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "folders")
private Collection<Files> filesCollection;
@JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Users users;
public class FoldersPK implements Serializable {
private int folderId;
private int uid;
public class Users implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer uid;
private String username;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "users")
private Collection<Folders> foldersCollection;
I left out @Basic & @Column annotations for sake of less code.
EJB method
public void insertFile(String fileName, int folderID, int uid){
FilesPK pk = new FilesPK();
pk.setUid(uid);
Files file = new Files();
file.setFilename(fileName);
file.setFilesPK(pk);
FoldersPK folderPk = new FoldersPK(folderID, uid);
// My understanding that it should automatically handle folderId in files table,
// but it is not…
file.setFolders(em.find(Folders.class, folderPk));
em.persist(file);
It is giving error:
Internal Exception: java.sql.SQLException: Field 'folderid' doesn't have a default value_
Error Code: 1364
Call: INSERT INTO files (filename, uid, fileid) VALUES (?, ?, ?)_
_ bind => [hello.txt, 1, 0]_
It is not even considering folderId while inserting into db.
However it works fine when I add folderId variable in Files entity and changed insertFile like this:
public void insertFile(String fileName, int folderID, int uid){
FilesPK pk = new FilesPK();
pk.setUid(uid);
Files file = new Files();
file.setFilename(fileName);
file.setFilesPK(pk);
file.setFolderId(folderId) // added line
FoldersPK folderPk = new FoldersPK(folderID, uid);
file.setFolders(em.find(Folders.class, folderPk));
em.persist(file);
My question is that is this behavior expected or it is a bug.
Is it required to add "column_name" variable separately even when an entity has reference to ManyToOne mapping foreign Entity ?
I used Mysql 5.1 for database, then generate entities using toplink, JPA 1.0, glassfish v2.1.
I've also tested this using eclipselink and got same error.
Please provide some pointers.
ThanksHello,
What version of EclipseLink did you try? This looks like bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=280436 that was fixed in EclipseLink 2.0, so please try a later version.
You can also try working around the problem by making both fields writable through the reference mapping.
Best Regards,
Chris -
Parsing XML file & insert into Oracle Tables
Hi,
Following is a sample xml file which is an input for a oracle procedure :
<Sales ID="1" CreatedDate="16-Jan-2007" CreatedTime="16:09:40">
<Customer ID="1" Name="Scott" Address="City1">
<Order ID="1" Date="15-Jan-2007" TotItems="2" Value="200">
<Item ID="01" Name="Chocolate" Qty="2" Amount="80" />
<Item ID="03" Name="Biscuit" Qty="5" Amount="120" />
</Order>
</Customer>
<Customer ID="2" Name="Tiger" Address="City2">
<Order ID="1" Date="15-Jan-2007" TotItems="1" Value="500">
<Item ID="01" Name="Pizza" Qty="3" Amount="500" />
</Order>
</Customer>
<User ID="ABC" Name="TestUser" LastLogin="16-Jan-2007" />
<City Code="NY" Name="New York" />
<City Code="NJ" Name="New Jersy" />
</Sales>
I have individual tables for Sales, Customer, Order, Item, User & City tags with proper referential constraints. I have to parse the xml & have to insert the corresponsing tables for each & every tag if the ID in individual tag does not exists in the table. If the ID already exist, then, I have to update other attributes in the table for the corresponding ID.
Can anyone suggest me the simplest way to perform the above said scenario?Dera Michael,
Sorry for the confusing previous reply. I went through your solution again and tried for my XML File.
I have stored the XML File in table XXLF_DS_XML.Should I make use of the table in the below query.
Here is my SQL Query erroring Out
SQL> SELECT EXTRACTVALUE(s.COLUMN_VALUE,
2 '/Header@orderID') ID
3 ,EXTRACTVALUE(c.COLUMN_VALUE,
4 '/Detail@lineNumber') lienum
5 ,EXTRACTVALUE(t.COLUMN_VALUE,
6 '/Detail/Tax@currency') currency
7 ,EXTRACTVALUE(t.COLUMN_VALUE,
8 '/Detail/Tax/Money') customer_name
9 FROM TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE('- <Recordset>
10 - <Header dueDate="2007-01-17T16:09:05" orderDate="2004-01-17" orderID="0009" transactionID="1389"
type="new">
11 <KeyIndex>2</KeyIndex>
12 - <BillTo>
13 - <Address addressID="5619" isoCountryCode="US">
14 <Name>fMat</Name>
15 - <PostalAddress name="default">
16 <Street>34545</Street>
17 <City>dfgfg</City>
18 <State>AZ</State>
19 <PostalCode>85086-1693</PostalCode>
20 <County>Maricopa</County>
21 <Country>US</Country>
22 </PostalAddress>
23 <Email name="default">[email protected]</Email>
24 </Address>
25 </BillTo>
26 <PromotionCode />
27 - <SubTotal>
28 <Money currency="USD">32.49</Money>
29 </SubTotal>
30 - <Tax>
31 <Money currency="USD">2.32</Money>
32 <Description />
33 </Tax>
34 - <Shipping>
35 <Money currency="USD">8.95</Money>
36 <Description />
37 </Shipping>
38 </Header>
39 - <Detail lineNumber="1" quantity="1">
40 - <ItemDetail>
41 - <UnitPrice>
42 <Money currency="USD">29.99</Money>
43 </UnitPrice>
44 <ShortName>Little;reg; pxxxx® Learning System</ShortName>
45 </ItemDetail>
46 - <Tax>
47 <Money currency="USD">1.68</Money>
48 <Description />
49 - <TaxDetail category="sales">
50 - <TaxAmount>
51 <Money currency="USD">1.68</Money>
52 </TaxAmount>
53 <TaxLocation>AZ</TaxLocation>
54 </TaxDetail>
55 </Tax>
56 </Detail>
57 - <Detail lineNumber="2" quantity="1">
58 - <ItemDetail>
59 - <UnitPrice>
60 <Money currency="USD">29.99</Money>
61 </UnitPrice>
62 <ShortName>Little;reg; pxxxx® Learning System</ShortName>
63 </ItemDetail>
64 - <Tax>
65 <Money currency="USD">1.68</Money>
66 <Description />
67 - <TaxDetail category="sales">
68 - <TaxAmount>
69 <Money currency="USD">1.68</Money>
70 </TaxAmount>
71 <TaxLocation>AZ</TaxLocation>
72 </TaxDetail>
73 </Tax>
74 - <Tax>
75 <Money currency="USD">0.68</Money>
76 <Description />
77 - <TaxDetail category="sales">
78 - <TaxAmount>
79 <Money currency="USD">0.68</Money>
80 </TaxAmount>
81 <TaxLocation>DISTRICT</TaxLocation>
82 </TaxDetail>
83 </Tax>
84 </Detail>
85 </Recordset>'),'/Recordset/Header'))) s
86 ,TABLE(XMLSEQUENCE(EXTRACT(c.COLUMN_VALUE,
87 '/Recordset/Detail'))) c
88 ,TABLE(XMLSEQUENCE(EXTRACT(t.COLUMN_VALUE,
89 '/Recordset/Detail/Tax'))) t
90 /
,TABLE(XMLSEQUENCE(EXTRACT(c.COLUMN_VALUE,
ERROR at line 86:
ORA-00904: "C"."COLUMN_VALUE": invalid identifier
Here is my XML Data
<Recordset>
<Header dueDate="2007-01-17T16:09:05" orderDate="2004-01-17" orderID="0009" transactionID="1389"
type="new">
<KeyIndex>2</KeyIndex>
<BillTo>
<Address addressID="5619" isoCountryCode="US">
<Name>fMat</Name>
<PostalAddress name="default">
<Street>34545 </Street>
<City>dfgfg</City>
<State>AZ</State>
<PostalCode>85086-1693</PostalCode>
<County>Maricopa</County>
<Country>US</Country>
</PostalAddress>
<Email name="default">[email protected]</Email>
</Address>
</BillTo>
<PromotionCode/>
<SubTotal>
<Money currency="USD">32.49</Money>
</SubTotal>
<Tax>
<Money currency="USD">2.32</Money>
<Description/>
</Tax>
<Shipping>
<Money currency="USD">8.95</Money>
<Description/>
</Shipping>
</Header>
<Detail lineNumber="1" quantity="1">
<ItemDetail>
<UnitPrice>
<Money currency="USD">29.99</Money>
</UnitPrice>
<ShortName>Little;reg; pxxxx® Learning System </ShortName>
</ItemDetail>
<Tax>
<Money currency="USD">1.68</Money>
<Description/>
<TaxDetail category="sales">
<TaxAmount>
<Money currency="USD">1.68</Money>
</TaxAmount>
<TaxLocation>AZ</TaxLocation>
</TaxDetail>
</Tax>
</Detail>
<Detail lineNumber="2" quantity="1">
<ItemDetail>
<UnitPrice>
<Money currency="USD">29.99</Money>
</UnitPrice>
<ShortName>Little;reg; pxxxx® Learning System </ShortName>
</ItemDetail>
<Tax>
<Money currency="USD">1.68</Money>
<Description/>
<TaxDetail category="sales">
<TaxAmount>
<Money currency="USD">1.68</Money>
</TaxAmount>
<TaxLocation>AZ</TaxLocation>
</TaxDetail>
</Tax>
<Tax>
<Money currency="USD">0.68</Money>
<Description/>
<TaxDetail category="sales">
<TaxAmount>
<Money currency="USD">0.68</Money>
</TaxAmount>
<TaxLocation>DISTRICT</TaxLocation>
</TaxDetail>
</Tax>
</Detail>
</Recordset>
Thanks -
Hi Everyone,
A Very Very Happy, Fun-filled, Awesome New Year to You All.
Now coming to the discussion of my problem in Oracle Forms 6i:
I have created a form in which the data is entered & saved in the database.
CREATE TABLE MATURED_FD_DTL
ACCT_FD_NO VARCHAR2(17 BYTE) NOT NULL,
CUST_CODE NUMBER(9),
FD_AMT NUMBER(15),
FD_INT_BAL NUMBER(15),
TDS NUMBER(15),
CHQ_NO NUMBER(10),
CREATED_DATE DATE,
CREATED_BY VARCHAR2(15 BYTE),
PREV_YR_TDS NUMBER(15),
ADD_FD_AMT NUMBER(15),
DESCRIPTION VARCHAR2(100 BYTE),
P_SAP_CODE NUMBER(10),
P_TYPE VARCHAR2(1 BYTE)
The form looks like below:
ENTER_QUERY EXECUTE_QUERY SAVE CLEAR EXIT
ACCT_FD_NO
CUST_CODE
FD_AMT
FD_INT_BAL
PREV_YR_TDS
TDS
ADD_FD_AMT
P_SAP_CODE
P_TYPE
CHQ_NO
DESCRIPTION
R
W
P
List Item
There are 5 push buttons namely ENTER_QUERY, EXECUTE_QUERY, SAVE, CLEAR, EXIT.
The table above is same as in the form. All the fields are text_item, except the P_TYPE which is a List_Item ( Elements in List Item are R, W & P).
The user will enter the data & save it.
So all this will get updated in the table MATURED_FD_DTL .
I am updating one column in another table named as KEC_FDACCT_MSTR.
and
I want this details to get updated in another table named as KEC_FDACCT_DTL only if the P_TYPE='P'
CREATE TABLE KEC_FDACCT_DTL
FD_SR_NO NUMBER(8) NOT NULL,
FD_DTL_SL_NO NUMBER(5),
ACCT_FD_NO VARCHAR2(17 BYTE) NOT NULL,
FD_AMT NUMBER(15,2),
INT_RATE NUMBER(15,2),
SAP_GLCODE NUMBER(10),
CATOGY_NAME VARCHAR2(30 BYTE),
PROCESS_YR_MON NUMBER(6),
INT_AMT NUMBER(16,2),
QUTERLY_FD_AMT NUMBER(16,2),
ITAX NUMBER(9,2),
MATURITY_DT DATE,
FDR_STAUS VARCHAR2(2 BYTE),
PAY_ACC_CODE VARCHAR2(85 BYTE),
BANK_CODE VARCHAR2(150 BYTE),
NET_AMOUNT_PAYABLE NUMBER,
QUATERLY_PAY_DT DATE,
CHEQUE_ON VARCHAR2(150 BYTE),
CHEQUE_NUMBER VARCHAR2(10 BYTE),
CHEQUE_DATE DATE,
MICR_NUMBER VARCHAR2(10 BYTE),
PAY_TYPE VARCHAR2(3 BYTE),
ADD_INT_AMT NUMBER(16,2),
ADD_QUTERLY_FD_AMT NUMBER(16,2),
ADD_ITAX NUMBER(16,2),
ECS_ADD_INT_AMT NUMBER(16),
ECS_ADD_QUTERLY_FD_AMT NUMBER(16),
ECS_ADD_ITAX NUMBER(16)
So for the push button 'Save' , i have put in the following code in the Trigger : WHEN BUTTON PRESSED,
BEGIN
Commit_form;
UPDATE KEC_FDACCT_MSTR SET PAY_STATUS='P' WHERE ACCT_FD_NO IN (SELECT ACCT_FD_NO FROM MATURED_FD_DTL);
UPDATE MATURED_FD_DTL SET CREATED_DATE=sysdate, CREATED_BY = :GLOBAL.USER_ID WHERE ACCT_FD_NO = :acct_fd_NO;
IF :P_TYPE='P' THEN
INSERT INTO KEC_FDACCT_DTL
SELECT FD_SR_NO, NULL, MATURED_FD_DTL.ACCT_FD_NO, FD_AMT, INT_RATE, P_SAP_CODE,
GROUP_TYPE, (TO_CHAR(SYSDATE, 'YYYYMM'))PROCESS_YR_MON,
FD_INT_BAL, (FD_INT_BAL-MATURED_FD_DTL.TDS)QUTERLY_FD_AMT , MATURED_FD_DTL.TDS,
MATURITY_DATE, P_TYPE, NULL, NULL, (FD_INT_BAL-MATURED_FD_DTL.TDS)NET_AMOUNT_PAYABLE,
NULL, NULL, CHQ_NO, SYSDATE, NULL, 'CHQ', NULL, NULL, NULL, NULL, NULL, NULL
FROM MATURED_FD_DTL, KEC_FDACCT_MSTR
WHERE KEC_FDACCT_MSTR.ACCT_FD_NO=MATURED_FD_DTL.ACCT_FD_NO;
END IF;
COMMIT;
MESSAGE('RECORD HAS BEEN UPDATED AS PAID');
MESSAGE(' ',no_acknowledge);
END;
If P_TYPE='P' , then the data must get saved in KEC_FDACCT_DTL table.
The problem what is happening is,
If i enter the details with all the records as 'P' , the record gets inserted into the table KEC_FDACCT_DTL
If i enter the details with records of 'P' and 'R' , then nothing gets inserted into the table KEC_FDACCT_DTL.
Even the records with 'P' is not getting updated.
I want the records of 'P' , to be inserted into table KEC_FDACCT_DTL, even when multiple records of all types of 'P_Type' (R, w & P) are entered.
So, can you please help me with this.
Thank You.
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
Oracle Forms Builder 6i.Its not working properly.
At Form_level_Trigger: POST_INSERT, I have put in the following code.
IF :P_TYPE='P'THEN
INSERT INTO KEC_FDACCT_DTL
SELECT FD_SR_NO, NULL, MATURED_FD_DTL.ACCT_FD_NO, FD_AMT, INT_RATE, P_SAP_CODE,
GROUP_TYPE, (TO_CHAR(SYSDATE, 'YYYYMM'))PROCESS_YR_MON,
FD_INT_BAL, (FD_INT_BAL-MATURED_FD_DTL.TDS)QUTERLY_FD_AMT , MATURED_FD_DTL.TDS,
MATURITY_DATE, P_TYPE, NULL, NULL, (FD_INT_BAL-MATURED_FD_DTL.TDS)NET_AMOUNT_PAYABLE,
NULL, NULL, CHQ_NO, SYSDATE, NULL, 'CHQ', NULL, NULL, NULL, NULL, NULL, NULL
FROM MATURED_FD_DTL, KEC_FDACCT_MSTR
WHERE KEC_FDACCT_MSTR.ACCT_FD_NO=MATURED_FD_DTL.ACCT_FD_NO;
END IF;
MESSAGE('RECORD HAS BEEN UPDATED AS PAID');
MESSAGE(' ',no_acknowledge);
It worked properly when i executed first time, but second time , in database duplicate values were stored.
Example: First I entered the following in the form & saved it.
ACCT_FD_NO
CUST_CODE
FD_AMT
FD_INT_BAL
PREV_YR_TDS
TDS
ADD_FD_AMT
P_SAP_CODE
P_TYPE
CHQ_NO
DESCRIPTION
250398
52
50000
6000
0
600
0
45415
P
5678
int1
320107
56
100000
22478
3456
2247
0
45215
R
456
320108
87
50000
6500
0
650
0
21545
W
0
In the database, in table KEC_FDACCT_DTL, the ACCT_FD_NO:250398 with P_TYPE='P' record was inserted.
ACCT_FD_NO
P_TYPE
250398
P
But second time, when i entered the following in the form & saved.
ACCT_FD_NO
CUST_CODE
FD_AMT
FD_INT_BAL
PREV_YR_TDS
TDS
ADD_FD_AMT
P_SAP_CODE
P_TYPE
CHQ_NO
DESCRIPTION
260189
82
50000
6000
0
600
0
45415
P
5678
interest567
120011
46
200000
44478
0
4447
0
45215
R
456
30191
86
50000
6500
0
650
0
21545
W
56
In the database, in the table KEC_FDACCT_DTL, the following rows were inserted.
ACCT_FD_NO
P_TYPE
250398
P
250398
P
260189
P
320107
R
320108
W
There was duplicate of 250398 which i dint enter in the form second time,
All the other P_TYPE was also inserted , but i want only the P_TYPE='P' to be inserted into the database.
I want only those records to be inserted into the form where P_TYPE='P' and duplicate rows must not be entered.
How do i do this??? -
Diffrence between backend insert and front end insert into a table.
I am developing a conversion program for tax exemption. For this program only ZX_EXEMPTIONS table is used to populate the data and we got confirmation from Oracle also regarding this.For inserting the data into this table we are taking the max of tax_exemption_id which is pk for this table and adding one to it and inserting into the table. But problem here is after inserting from back end we are not able to insert from front end.
It seems backend data is holding the tax_exemption_id which is suppose to reserve by front end data.Please explain the different behavior of populating of tax_exemption_id from front end and back end.Hi,
i think the problem is that you are using max-value + 1 for tax_exemption_id. But as ZX_EXEMPTIONS is using sequence ZX_EXEMPTIONS_S
for primary key generation, you encounter situation that you are increasing PK Id for this table without increasing sequence value.
When trying to insert rows from front end - which probably uses sequence value - it tries to use a sequence value already used by your backend
process (which generated it by Maxvalue + 1) and would then encounter a primary key violation.
I think you should use sequence mentioned above to generate your PK Ids in backend process as well. And before doing so, check current value
of ZX_EXEMPTIONS_S, as you might need to rebuild the sequence in order to select nextval sucessfully for both frontend and backend.
Regards -
Insert an HTML Table tag as a value in a Tree Table
Hi helper,
Can I insert an HTML Table tag inside a TreeTable (Hierarchical data) using AdvancedDataGrid as a value?
I need to create a Tree table in flex and I have beside normal int values some cells that need to show a certain images in an HTML Table I will create.
Is it possible?
Please advice
Thanks
Jo<div class=Section1><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>It depends on where you get the list of images<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Alex Harui<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Flex SDK Developer<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><a href="http://www.adobe.com/"><span style='color:blue'>Adobe<br />Systems Inc.</span></a><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Blog: <a href="http://blogs.adobe.com/aharui"><span<br />style='color:blue'>http://blogs.adobe.com/aharui</span></a><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><br /><br /><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Yossi Bar<br />[mailto:[email protected]] <br><br /><b>Sent:</b> Monday, February 09, 2009 1:14 AM<br><br /><b>To:</b> [email protected]<br><br /><b>Subject:</b> Re: Insert an HTML Table tag as a value in a Tree Table<o:p></o:p></span></p><br /><br /></div><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>A new message was posted by<br />Yossi Bar in <br><br /><br><br /><b>Developers</b> --<br><br /> Insert an HTML Table tag as a value in a Tree Table<br><br /><br><br />Thanks Alex, <br><br />What is the way to implement HorizontalLIst of images for<br />AdvancedDataGridColumn? <br><br /><br><br />In the code here I create a tree table and in Actual column I show an image: <br><br /><br><br /><mx:AdvancedDataGrid width="100%" height="100%"<br />folderClosedIcon="{null}" folderOpenIcon="{null}"<br />defaultLeafIcon="{null}"> <br><br /><br><br /><mx:dataProvider> <br><br /> <mx:HierarchicalData<br />source="{dpHierarchy}"/> <br><br /> </mx:dataProvider> <br><br /> <mx:groupedColumns> <br><br /> <mx:AdvancedDataGridColumn<br />headerText="" width="50"/> <br><br /> <mx:AdvancedDataGridColumn<br />dataField="Region" backgroundColor="haloSilver"<br />headerText="Region title"<br />headerRenderer="mx.controls.Label"/> <br><br /> <mx:AdvancedDataGridColumnGroup<br />headerText="Group Header"<br />headerRenderer="mx.controls.Label"> <br><br /><mx:AdvancedDataGridColumn dataField="Territory_Rep"<br />headerText="Territory Rep"<br />headerRenderer="mx.controls.Label"/> <br><br /><mx:AdvancedDataGridColumn dataField="Actual"<br />headerText="Actual title"<br />headerRenderer="mx.controls.Label"> <br><br /><mx:itemRenderer> <br><br /><mx:Component> <br><br /><mx:VBox horizontalAlign="center"> <br><br /><mx:Image width="50" source="{data.Actual}"/> <br><br /></mx:VBox> <br><br /></mx:Component> <br><br /></mx:itemRenderer> <br><br /></mx:AdvancedDataGridColumn> <br><br /><br><br /><mx:AdvancedDataGridColumn dataField="Estimate"<br />headerText="Estimate title" headerRenderer="mx.controls.Label"/><br /><br><br /> </mx:AdvancedDataGridColumnGroup><br /><br><br /> </mx:groupedColumns> <br><br /> </mx:AdvancedDataGrid> <br><br /><br><br />Please advise, <br><br /><br><br />Thanks <br><br /><br><br />Jo <o:p></o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b7d1ae/2">Insert an HTML Table tag<br />as a value in a Tree Table</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b7d1ae!folder=.3c060fa3">unsubscribe</a>< br />form to cancel your email subscription.<o:p></o:p></p><br /><br /></div>
-
How to insert row in table control and save the data in tables
Hi,
I have one table control i am displaying data into table control ,
my problem is : i want to display data into read mode in table control.
but when i click on insert button on the same screen i want one blank line should inserted into table control , then i want to insert some data into table control on that row , when i click the save button . the new data inserted into the table control is insert that data into ztable ,
please give me solution
main problen is how can know inserted line in table control and pass that data into ztable.Hi,
Follow the below logic,
PROCESS BEFORE OUTPUT.
MODULE STATUS_0001.
MODULE POPULATE_TABLE_CONTROL. --> Get the data from table store in
ITAB
LOOP AT GT_CTRL_LP_D516 INTO GS_WA_CTRL_LP_D516
WITH CONTROL CTRL_LP_D516
CURSOR CTRL_LP_D516-CURRENT_LINE.
The following module moves data to control
MODULE MOVE_TO_CONTROL.--> Move data from ITAB to table control
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT GT_CTRL_LP_D516.
ENDLOOP.
MODULE EXIT AT EXIT-COMMAND.
MODULE USER_COMMAND_0001. --> Here you have to take out the values from table control and update database table
Reward points if helpful.
Thanks and regards,
Mallareddy Rayapureddy,
Munich, Germany.
Maybe you are looking for
-
Exchange rate coefficient on the basis of latest posting date in invoice.
Hi, I have one query on posting date(picking of exchange rate coefficient from TCURR table) in invoice verification. Please help. Conditions are-- vender and company code are not in same currencies(ex-USD and INR). exchange currencies are maintained
-
Migrate from 10.4 Tiger to 10.10 Yosemite?
I am upgrading from a G5 running OS X 10.4.11 Tiger to a new machine running Yosemite. The old machine and OS are so old, the migration doesn't work. Is it true that I can migrate to an intermediate machine running 10.6 Snow Leopard, and from there
-
Time Machine Kills Web Sharing
Every time I do a full system restore from a TimeMachine backup the apache webserver from Web Sharing stops working and is sending error messages to the Console every 10 seconds. This looks like a permanent damage to Web Sharing. I've reinstalled Mac
-
Reinstalling Boot Camp Assistant
Please Help! I recently delete it my boot camp partition for windows 7 because I wanted to reinstall it again, I was following this video: http://www.youtube.com/watch?v=EtDYNCldC24 After doing what he did on the video... I can't no longer find my
-
No recuerdo la clave que puse cuando solicite mi buro de credito
soli citud Reporte de Crédito Especial Folio de Solicitud: 19257075