Order of precedence for validation of a column in a table ?
Can anybody tell me order of precedence for validation of a column in a table
Which one will get executed first ?
Integrity constraint or Database trigger.
Why cant you test it..?
SQL> create table test_1
2 (c1 number references emp);
Table created.
SQL> create or replace trigger trig_1
2 before insert on test_1
3 for each row
4 begin
5 if :new.c1 < 1 then
6 raise_application_error(-20000,'Invalid value');
7 end if;
8 end;
9 /
Trigger created.
SQL> insert into test_1
2 values(0);
insert into test_1
ERROR at line 1:
ORA-20000: Invalid value
ORA-06512: at "SCOTT.TRIG_1", line 3
ORA-04088: error during execution of trigger 'SCOTT.TRIG_1'
SQL> create or replace trigger trig_1
2 after insert on test_1
3 for each row
4 begin
5 if :new.c1 < 1 then
6 raise_application_error(-20000,'Invalid value');
7 end if;
8 end;
9 /
Trigger created.
SQL> insert into test_1
2 values(0);
insert into test_1
ERROR at line 1:
ORA-20000: Invalid value
ORA-06512: at "SCOTT.TRIG_1", line 3
ORA-04088: error during execution of trigger 'SCOTT.TRIG_1'
SQL> drop trigger trig_1;
Trigger dropped.
SQL> insert into test_1
2 values(0);
insert into test_1
ERROR at line 1:
ORA-02291: integrity constraint (SCOTT.SYS_C005925) violated - parent key not
found
Similar Messages
-
Trigger for validation of salary updated in emp table is within range
Hi,
I need some help in correcting my fault in the below trigger as it is not working as expected.
. trigger should be invoked if while modifying the sal in EMP table, it is not in the valid range as specified in the SALGRADE table (between lowest losal and highest hisal)
salgrade table
Column Name
Data Type
Nullable
Default
Primary Key
GRADE
NUMBER(2,0)
Yes
LOSAL
NUMBER
Yes
HISAL
NUMBER
Yes
I have created a trigger
create or replace trigger tr_validate_sal
before
insert or update on emp
for each row
declare
cursor c is select losal,hisal from salgrade;
begin
for i in c
loop
if :new.sal < i.losal and :new.sal > i.hisal
then
raise_application_error(-20400,'sal out of range');
end if;
end loop;
end;
after creating this trigger also i am able to insert or update salary not in range of salgrade (losal and hisal). please help./* Formatted on 2013/12/24 09:31 (Formatter Plus v4.8.8) */
CREATE OR REPLACE TRIGGER tr_validate_sal
BEFORE INSERT OR UPDATE
ON emp1
FOR EACH ROW
DECLARE
v_lowsal number;
v_hisal number;
BEGIN
SELECT min(losal) losal, max(hisal)
INTO v_lowsal, v_hisal
FROM salgrade;
IF :NEW.sal not between v_lowsal and v_hisal
THEN
raise_application_error (-20400, 'sal out of range');
END IF;
END; -
No data for Parent-child hierarchy column in Pivot table view
Hi all,
I used OBIEE 11.1.1.6.2 Version.
I drag one Parent-child hierarchy column and one measure and show result with a pivot table view.
But when I click "+" icon to show detail level data,
It messaged that: "*the layout of this view combined with the data,selections,drills,or prompt values chosen resulted in no data*."
But it can show every-level data when I used table view.
It was so strange..
Did anybody meet this before?
Thanks in advance.
regards,
AnneHi,
Yes, I have the same problem with pivot table for hierarchy dimension.
If you use a normal table (not pivot) it seem to work. Unfortunatley with restrictions as normal table view have.
Same problem still exist in 11.1.1.6.5
I have logged a SR to Oracle about this. -
Hello Expert,
I would like to know if is there any possibility to display invoice print (PDF) in sales order (Credit/Debit note) as attachment.
Issue: Customer raise the credit note with the reference of invoice, sometimes user don't explain the reason for credit and don't attach any reference document in sales order(credit request).
Customer requirement: Customer want to display reference invoice print (PDF)in sales order(Credit request) for validator so validator can cross check with invoice and validate the credit note.
Could you suggest the best solution?
I am thinking to give mandatory text box (Text determination)at sales order(Credit request)
VipinHi,
You can enable Document Management System (DMS)
Please refer below links for details:
http://scn.sap.com/thread/459101
http://scn.sap.com/thread/2096563 -
Access for update only one column in table?
Hi all,
My need is to grant access for update only one column c1 in table t1.
I guess I should use view, could you please give me some example? Maybe other ideas?Hi,
You can grant privileges on individual columns.
GRANT UPDATE (c1)
ON t1
TO grantee_name;Look up GRANT in the SQL language manual. Annoyingly, in recent editions of the manual, GRANT is not indexed, but it's in alphabetic order with all the other statements:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_9013.htm#i2155015 -
Setting a Primary Key for a newly added Column
Is it possible for setting a primary key for a newly added column in a table having records?
Hi,
km**** wrote:
oh if the table has records then it is not possible ah...No, the table can have rows at the time you add the Primary Key constraint. Solomon was just saying that the column(s) that you are making into the Primary Key must already have unique values. A Primary Key can not be NULL, so you must do the steps in this order:
(1) ALTER TABLE to add the column(s) (if this hasn't been done already)
(2) UPDATE the table, to put unique values in all rows for the Primary Key column(s)
(3) Add the PRIMARY KEY constraint
You need to do step (2) before you do step (3) -
Tabular Form Validation: Comparing Two Columns vs Check Constraint
What is the best approach for validating that one column needs to be greater than another column in a tabular form when attempting to save. (E.g. An effective date and expirey date column. The expirey date column >= effective date column)
At the moment I have a check constraint on the two columns at the database level which is fine but it returns and passes up a pretty cryptic (from a business user perspective) unfriendly message to the user as follows:
Error in mru internal routine: ORA-20001: Error in MRU: row= 1, ORA-02290: check constraint (IDMTC.ADDRESS_TYPE_CON) violated, update "IDMTC"."ADDRESS_TYPE" set "ID" = :b1, "CODE" = :b2, "NAME" = :b3, "LOV_SORT_ORDER" = :b4, "DESCRIPTION" = :b5, "EFFECTIVE_DATE" = :b6, "EXPIRY_DATE" = :b7 where "ID" = :p_pk_col
Unable to process update.
Is there a way to inject, detect and/or replace this with a friendlier business user message? I have confirmed that the "Unable to process update." text at the bottom below the MRU Internal routine error raised from my check constraint is the process error message for my Apply MRU process.
I was hesitating going down a larger page level validation where I loop through the tabular form array and/or inject some client side Javascript.
Any advice? Have I simply overlooked some tabular form options for validating using cross column values?
Thanks,
JeffJeff..Thanks for the response.
However because I am working in a tabular form at design time I don't know which controls I can reference in a dynamic action, or custom Javascript routine other than selecting all elements in a column using JQuery, etc.
I have decided to go with for the time being an approach I found here: doing validation on tabular form
My code ended up looking something like and was entered into a page level validation as a PL/SQL function body returning error text.:
DECLARE
l_error VARCHAR2 (4000);
BEGIN
FOR i IN 1 .. apex_application.g_f02.COUNT
LOOP
--If Expiry date is older then effective date
IF nvl(apex_application.g_f08 (i), to_date('31-DEC-9999', 'dd-mon-yyyy')) < apex_application.g_f07 (i) THEN
l_error :=
l_error
|| '</br>'
|| 'Row '
|| i
|| ': Expiry date must be greater than effective date '
|| ' for maintenance item name: '
|| apex_application.g_f03 (i);
END IF;
END LOOP;
RETURN LTRIM (l_error, '</br>');
END;
I had been hoping with Apex 4+ that there was additional native functionality to do this type of validation or somehow be able to reference a column or control name instead of a generic array column so that my code was better self documenting.
It works for now...but would love to revisit with maybe a cleaner client side solution that does the validation and highlights the invalid element since I still maintain data integrity at the db with the check constraint.
Thanks,
Jeff -
Limitation for number of columns in a table
What is the maximum number for the number of columns in a table or a view?
jHi,
The maximum number of columns that can be created in a relational table is 1000. Look at the documentation for more details.
Excerpt from the Oracle9i SQL Reference Release 2 (9.2) documentation:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_73a.htm#2061431
"The absolute maximum number of columns in a table is 1000. However, when you create an object table (or a relational table with columns of object, nested table, varray, or REF type), Oracle maps the columns of the user-defined types to relational columns, creating in effect "hidden columns" that count toward the 1000-column limit."
Please post database related questions in Database-general forum for quick response.
General Database Discussions
Hope that helps.
Savitha. -
Code for validating the sales order
Hi,
can any body can send the code for validating sales order and shipment,when we enter the sales order or shipment as input in the selection screen.
It is very urgent....................
Thanks in advance.HI,
SEE TO THIS CODE.
--TABLE DECLARATION--
TABLES : VBAK,VBAP.
TYPE-POOLS : SLIS.
--STRUCTURE DECLARATION--
TYPES : BEGIN OF TY_VBAK,
VBELN TYPE VBELN_VA,
ERDAT TYPE ERDAT,
ERZET TYPE ERZET,
ERNAM TYPE ERNAM,
END OF TY_VBAK.
--SELECT OPTIONS--
SELECT-OPTIONS : S_VBAK FOR VBAK-VBELN.
--START OF SELECTION--
START-OF-SELECTION.
SELECT VBELN
ERDAT
ERZET
ERNAM
FROM VBAK
INTO TABLE IT_VBAK
WHERE VBELN IN S_VBAK. -
Order of Precedence in Field Selection settings for Vendor Master
Hi,
There are three transactions which help define the list of mandatory, optional, suppressed and finally display only fields during vendor maintenance.
These are,
OMSG -> Define Account Groups and Field Selection( Vendor)
OMFK -> Define Screen Layout Specific to Purchasing Organizations
OMSX -> Define Transaction-Dependent Screen Layout.
All these settings are independently maintained.
In case of conflicting settings, say for example, Field Name 1 is made mandatory with tcode OMSG, but suppressed with tcode OMFK, how does the Vendor transaction(XK01, FK01, MK01) behave.
How are these conflicts resolved ?. Is there any order of precedence.
Regards,
JeronHi,
If both purchasing organizations have separate account group then you can very well achieve in customizing otherwise you need to control it in exit SAPMF02K
Regards
Melih -
CASE Statement order of precedence
The question i have is in regards to the CASE statement.
If i have the following CASE statement in a calculation, and use the calculation to populate the column header, it returns 2 columns, one for 'Mexico' and one for 'Exclude' - That is good
Statement 1:
CASE WHEN ( "Customers (Sales History)".Country = 'MX' )
THEN 'Mexico'
ELSE 'Exclude'
END
So i have sucessfully extracted out sales from Mexico, now i want break those sales into 2 categories, 'Primary' and 'Secondary'. If i use the below case statement, I was expecting to get 3 column headers, one for 'Primary' one for 'Secondary' and one for 'Exclude', but instead I only get 1 column header for exclude. Im sure it has something to do with order of precedence, but could someone explain the logic of why discover handles it this way, and how to get around it?
Statement 2:
CASE WHEN ( "Customers (Sales History)".Country = 'MX' )
THEN
CASE WHEN ( Item Groups.Sales Type Id <> 3)
THEN 'Primary'
ELSE 'Secondary'
END
ELSE 'Exclude'
END
As a side note, if i use statement 2 and set a condition "Statement 2 <> 'Exclude'" , the result will be the columns 'Primary' & 'Secondary'
Thanks
ChrisHi,
Can anyone tell me how to use a fast formula in discoverer-desktop [for reporting]. Currently, we have a disco-report that calcuates the 'monthly salary', but we don't want to use that. Instead, we have a custom fast-formula [xx_oab_monthly_salary] which has the conditions and calculations that we need.
I want to use that formula in discoverer-desktop directly and get the monthly-salary.. i.e., someone needs to create a folder under the business area and add it i believe.. the formula internally calls a function.
when i checked about this with my dba - he said, he can add the 'function', but not the formula. and i need to write the calculation part...
does anyone know how to add it...there shud a way right...
i do not have access to the technical-stuff here..
someone said ["you can wrap the FF_EXEC.run_formula call into your own pl/sql function and map this function into the EUL so that the formula can be called from a workbook.", but this talks about pl/sql-do we need pl/sql
for this].
also, someone else said [ some fast formulas need specific contexts to be set. Depending on whether the fast formula below the only fast formula that you want to recreate in Discoverer.
For a single formula, in general my recommendation is to recreate the fast formula instead of using the ff_exec call].
any quick answers greatly appreciate..
thx, -
Regarding Error message in ME_PROCESS_PO_CUST badi for validation.
hi Friends,
I am Using ME_PROCESS_PO_CUST badi for validation in Purchase order (ME21N),
For that I implemented PROCESS_ITEM method which fires during each row now i add another validation in same implementation for plant should be same through out the all line item. Now following code is woking fine but when for second line item user changese plant then it shows error message as per logic which is fine but even after changing plant to correct one the error message is still coming why is it so?
following is my current validation code
method IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM.
DATA:ls_poitem TYPE mepoitem,
ls_poitem_set TYPE mepoitem.
DATA:ls_poheader TYPE MEPOHEADER.
DATA:lm_poheader TYPE ref to IF_PURCHASE_ORDER_MM.
DATA:w_mara TYPE mara.
DATA:IT_ZMMTBL039 TYPE STANDARD TABLE OF ZMMTBL039 ,
WA_ZMMTBL039 TYPE ZMMTBL039 .
DATA:ls_poitem1 TYPE mepoitem.
DATA:V_KUNNR1 TYPE KNA1-KUNNR.
DATA:V_KUNNR2 TYPE KNA1-KUNNR.
DATA:W_WERKS(4),
w_werks_tmp(4),
w_flag(1).
ls_poitem = im_item->get_data( ).
lm_poheader = im_item->GET_HEADER( ).
ls_poheader = lm_poheader->GET_DATA( ).
IF ls_poitem-werks IS NOT INITIAL.
w_werks = ls_poitem-werks.
import w_flag to w_flag from MEMORY ID 'FLAG'.
if w_flag is initial.
w_flag = 'X'.
EXPORT w_werks_tmp FROM w_werks TO MEMORY ID 'MEMO1'.
export w_flag from w_flag to MEMORY ID 'FLAG'.
clear: w_flag.
endif.
ENDIF.
IMPORT w_werks_tmp TO w_werks FROM MEMORY ID 'MEMO1'.
break swaroopb.
IF ls_poitem-werks NE w_werks.
MESSAGE E010(zparts) with 'Different plants are not allowed in single PO.'.
ENDIF.
CLEAR: WA_ZMMTBL039,w_mara.
REFRESH:IT_ZMMTBL039[] .
SELECT *
INTO TABLE IT_ZMMTBL039
FROM ZMMTBL039
WHERE bsart EQ ls_poheader-bsart.
IF sy-subrc EQ 0.
CLEAR: WA_ZMMTBL039,w_mara.
SELECT SINGLE *
INTO w_mara
FROM mara
WHERE matnr EQ ls_poitem-MATNR.
IF SY-SUBRC EQ 0.
READ TABLE IT_ZMMTBL039 INTO WA_ZMMTBL039 WITH KEY bsart = ls_poheader-bsart
mtart = w_mara-mtart
spart = w_mara-spart.
IF SY-SUBRC NE 0.
MESSAGE E009(zparts) WITH ls_poitem-MATNR w_mara-spart ls_poheader-bsart .
ENDIF.
ENDIF.
ENDIF.
end methodHello Swarup
Since you want to compare all items together (having the same plant) I would suggest to implement this logic either in method CHECK or POST of the interface.
However, if you want to make your checks within the PROCESS_ITEM method then you should change your logic.
It does not make sense to work with the ABAP memory within a BAdI implementing class because the class itself is your "memory".
I would use the following logic to implement your validation:
lo_poheader = im_item->get_header( ). " retrieve header instance
lt_items = lo_poheader->get_items( ). " retrieve all items
ls_detail_x = im_item->get_detail( ). " details of currently processed item
LOOP AT lt_items INTO ls_item.
ls_detail = ls_item-item->get_detail( ).
IF ( ls_detail-werks NE ls_detail_x-werks ). " validation failed
" do something...
ENDIF.
ENDLOOP.
However, I would prefer to do this kind of validation in CHECK or POST method.
Regards,
Uwe -
Planned order creation with PDS valid on only order start date and not finish date
Hi All,
We have requirement to allow creation of planned order manually if production version is valid on order start date and not finish date. This is because lead time of order is longer. I refered OSS notes 385602. I could find out solution for this is implementation of OSS note 694140 to change validity mode at activity level to consider start date of first produce activity in validity interval. Problem is even If I create order in APO by implementiong this note planned order is not transfered to ECC and it gets stuck with error production version not valid.
Is there any way in ECC to control this? Any config or customization?
Regards,
SantoshNilesh,
I think there is a simple procedural skip happening in your business process. You are right when a planned order is created after MRP it would default assign it to the first available production version. 2options available for us,
1. First use transaction MF50 and do the line loading and assign the quantites to the production versions/Production lines, so that the actual capacity planning is getting completed. This way you can have planned orders with both the production versions and matching to your actual line capacity.
2. Use Quota arrangement concept, to automatically split the Planned orders during MRP for a percentage based on individual production versions.
Now when backflush is performed S225 table is updated and Planned order qty also gets reduced.
Hope this helps....
Regards,
Prasobh -
Copa document for free of charge orders not relevant for billing
Hi all,
when we create the shipment costs of the samples goods the systems give us this error: ME083 "Entre Profit. segment".
The mistake is related to the missing profitability segment in the sales order of samples goods there are not valid for the billing.
How can we generate a profitability segment for free of charge sales orders not relevant for the billings?
The Item Category is not relevant for the billing and we can't modify it.
Thanks in advance.
Best regards.
MatteoHi Sanil,
unfortunatly we can't create the billing. Due to fiscal requirements only sales orders and delivery exist.
We can't generate an invoice even with zero value.
The SD item category is not relevant for billing, so in the sales order no profitability segment is generated.
This is the standard functionalty of SAP, but we need to generate a profitability segment in the sales order because the shipment cost need it (transportation module of SAP).
All the other SD flow (sales orders with invoices) run already well.
Thanks
Matteo -
How do you put websites in alphabetical order on pages for iPad?
Trying to find a way to put websites into alphabetical order on pages for iPad. Any ideas?
You will find some instructions for using Pages here: http://www.apple.com/support/ios/pages/
But essentiall, you will need to create a table, place each URL in its own row, Tap the header to select the column, and select Sort (ascending).
Maybe you are looking for
-
The list of extensions for InDesign now have a yellow triangle warning symbol in front of a good many of the extensions and when moused over i get one of two messages: "Extensions may not function properly because it does not meet the dependency cond
-
Select Options in multiple views
I am running into a problem. I have an application with 2 views. I use select-options in both views, but with different fields. When I move from view 1 to view 2, it works correctly, displaying the select-options for view 2. When I return to view
-
Does anyone have an idea about wireless mirroring availability(without any hack) for iPad 1?
-
Simple Event being Displayed Multiple Times
I have a simple event from the past that is being displayed multiple times. There are no other UIDs that are the same in iCal and no other event has the same SUMMARY name. This particular event shows up 9 times. I can also reproduce the result from A
-
P&L A/C and Balance sheet for segment reporting
Hi I am using the ECC 6.00, segmental reporting functions I have one requirement is that Customer wants prepare the profit and loss account and balance sheet for each segments wise, Please help me, How to prepare the segment wise profit and loss acc