- SQL PLSQL Code Review Check List ::
- The package/procedure/function names conform to Oracle standards(If the script is business unit specific then use the BU qualifier in the name of the script).
- Creation script file name is same as the Package/Procedure/Function name and the file extension conforms to Oracle standards.
- The Package Specification and Package Body are in separate files.
- There is only one package spec or body created with each script.
- Script contains the Oracle Copyright/Header for version control tool
- Internal Documentation exists and it is clear and complete. (Ex. Object details and version history sections).
- The documentation exists in the creation portion of the package/procedure/function.
- No passwords are hard-coded in the file.
- Show Errors exists at the end of the scripts.
- The package/procedure/function is formatted for readability and fit standards.
- Thereis sufficient in-line documentation. The documentation describes the business functionality and the action the queries perform.
- Who columns are updated correctly. (Who Columns include Last_Updated_By, Last_Update_Date...etc)
- All SQL statements are multi-org compliant (i.e. no _ALL tables). In case there is a need to use _all tables explain the business requirement in the Notes Column.
- No Drop statement should Exist in the Package.
- The code uses Oracle APIs or makes call to Standard Interfaces and no direct base table inserts/updates exist.(Exception for user hook in HRMS)
- Explain Plan for the top five queries and the trace file (with SORT option) is attached to the iSupport SR.
- No Standard Oracle views (except Multi Org Views) should be referred in the code.
- Usage of Dynamic SQL in the code is not recommended because it may cause High Literal issue. So It should use bind variable to avoid high parsing (in where clause of SQL).
- Parallel hint is not present in the code to avoid performance issues.
- Rule hint is not present in the code to avoid performance issues.
Jan 18, 2016
SQL PLSQL Code Review Check List ::
Oracle Form Installation Error :: forms60.vrf(78):OS_ERROR while getting value Path
Oracle Form Installation Error ::
forms60.vrf(78):OS_ERROR while getting value Path
When you try installing forms you may get the error:
forms60.vrf(78):OS_ERROR while getting value Path
This error has got to do with the character length of Path
Environment Variable Field. For Forms6i installation to happen; the character
length in the field should be less than 1000. You can definitely cant keep
counting to check this. So best is to temporarily cut a portion of the
Environment Variable until the installation is completed.
If you are an Oracle Professional; I need not tell you where
the environment variable is; for the rest please find below instructions
Right Click My Computer – Properties
Advanced System Settings
Under Advanced Tab; Click Environment Variables
Under System Variables; look for variable named Path
Select Path and click Edit
Copy the contents in the Variable Value to any text editor
like notepad
Copy and replace a small portion of the variable value back
into the field
Start your forms6i installation and once done revert back
the Variable Value from your notepad file
Thanks...............
Current market Requirement as Technical Consultant
Technical Skill Sets
Overview
·
Oracle Applications Techno functional
Consultant with 5+ years of relevant experience
Essential
·
Extensive working experience in R12 Oracle
Market to Cash cycle ( Quoting, Sales contracts, Service contracts, Installed
Base, Accounts receivable, Inventory, Advanced Pricing) in Maintenance and
support projects
·
At least one end to end implementation of
Oracle R12 CRM Modules
Technical knowledge
·
Candidate should be expert in RICE (Reports
Interface Conversions Extensions) components and Workflow
·
Should have very good customization
experience in OAF ( Oracle applications framework )
Functional exposure
·
Good knowledge of setups and process flows in
Quoting, Sales contracts, Service contracts, Installed Base, Accounts
receivable, Inventory, Advanced Pricing Modules
Others
·
Ability to Produce Technical documents MD070
and Testing scenarios
·
Excellent oral and written English
communication skills required
·
Ability to manage, track and progress their
own project tasks related work
·
work as an individual contributor with
minimum guidance required
Preferred
·
Oracle Developer certification
·
Good understanding and working experience of
Oracle AIM methodology.
·
Process Oriented and ability to produce
quality deliverables
Behavioral Skill Sets
Essential
·
Work history demonstrates: Good analytical
ability, Should work independently on assigned tasks with quick turnaround time
and Good team player
External Description Primary Responsibilities:
·
Atleast 4+ years of techno functional
experience in R12i Support and maintenance projects
·
Handling the technical and Functional issues
in Quoting, Sales contracts, Service contracts, Installed Base, Accounts receivable,
Inventory, Advanced Pricing Modules
·
Exposure to any incident management tool viz
CA service desk, clarify etc. will be an added advantage
Secondary Responsibilities:
·
Work on Business process/ functionality
changes and Enhancements in RICE components, Workflow, OAF and/ or BI publisher
Job Requirements:
·
4-8
years of relevant experience in support and maintenance of R12/ 11i Oracle apps
ERP as a technofunctional developer.
Work on Business
process/ functionality changes and Enhancements in RICE components and
Workflow. Working knowledge in OAF and/ or BI publisher is preferred.:) :) :)
ROS ERROR :: 200 in Oracle FORM
Hi team,
If you faced ROS ERROR :: 200 in Oracle FORM then you are using form 10 G form in Form 6i Form Builder.
it's inconsistency issue as you are using higher version form in Lower version and trying to complie it and open it.
Thanks,
Nilesh
log::;
Forms 6.0 (Form Compiler) Version 6.0.8.28.0 (Production)
Forms 6.0 (Form Compiler): Release - Production
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
PL/SQL Version 8.0.6.3.0 (Production)
Oracle Procedure Builder V6.0.8.21.0 Build #0 - Production
Oracle Virtual Graphics System Version 6.0.5.39.0 (Production)
Oracle Multimedia Version 6.0.8.25.0 (Production)
Oracle Tools Integration Version 6.0.8.17.0 (Production)
Oracle Tools Common Area Version 6.0.5.32.0
Oracle CORE Version 4.0.6.0.0 - Production
ROS ERROR: -200
If you faced ROS ERROR :: 200 in Oracle FORM then you are using form 10 G form in Form 6i Form Builder.
it's inconsistency issue as you are using higher version form in Lower version and trying to complie it and open it.
Thanks,
Nilesh
log::;
Forms 6.0 (Form Compiler) Version 6.0.8.28.0 (Production)
Forms 6.0 (Form Compiler): Release - Production
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
PL/SQL Version 8.0.6.3.0 (Production)
Oracle Procedure Builder V6.0.8.21.0 Build #0 - Production
Oracle Virtual Graphics System Version 6.0.5.39.0 (Production)
Oracle Multimedia Version 6.0.8.25.0 (Production)
Oracle Tools Integration Version 6.0.8.17.0 (Production)
Oracle Tools Common Area Version 6.0.5.32.0
Oracle CORE Version 4.0.6.0.0 - Production
ROS ERROR: -200
emsg:was terminated by signal 11
emsg:was terminated by signal 11
Refer Docs ->
Bitmap Reports Fail Due to Signal 11 and/or hanging after Patchset 19: Emsg:Was Terminated By Signal 11 (Doc ID 759456.1)
PDF Reports Fail With Program Was Terminated By Signal 11 (Doc ID 396336.1)
LOG :: --->
Current NLS_LANG and NLS_NUMERIC_CHARACTERS Environment Variables are :
American_America.UTF8
'.,'
stat_low = 8B
stat_high = 0
emsg:was terminated by signal 11
+---------------------------------------------------------------------------+
Start of log messages from FND_FILE
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
End of log messages from FND_FILE
+---------------------------------------------------------------------------+
Program was terminated by signal 11
Concurrent Manager encountered an error while running Oracle*Report for your concurrent request 290528124.
Review your concurrent request log and/or report output file for more detailed information.
+---------------------------------------------------------------------------+
Executing request completion options...
+------------- 1) PUBLISH -------------+
Beginning post-processing of request 290528124 on node USMTNPMDERPDB05 at 11-DEC-2014 16:29:05.
Post-processing of request 290528124 failed at 11-DEC-2014 16:29:05 with the error message:
One or more post-processing actions failed. Consult the OPP service log for details.
+--------------------------------------+
May 20, 2015
Sending Email using PL/SQL Procedure
CREATE OR REPLACE PROCEDURE XXX_send_mail (p_to IN VARCHAR2, p_from IN VARCHAR2, p_message IN VARCHAR2, p_smtp_host IN VARCHAR2, p_smtp_port IN NUMBER DEFAULT 25)AS l_mail_conn UTL_SMTP.connection;BEGIN l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port); UTL_SMTP.helo(l_mail_conn, p_smtp_host); UTL_SMTP.mail(l_mail_conn, p_from); UTL_SMTP.rcpt(l_mail_conn, p_to); UTL_SMTP.data(l_mail_conn, p_message || UTL_TCP.crlf || UTL_TCP.crlf); UTL_SMTP.quit(l_mail_conn);END;/BEGIN XXX_send_mail(p_to => 'nileshapps@gmail.com',--'roger.drolet@theoicllc.com', --receiver's email id p_from => 'nileshapps@gmail.com', p_message => 'Test Message for Form via OIC Database for Manual Cantrol Form', p_smtp_host => 'oicllc-01.oicllc.net');END;
Sending Email using PL/SQL Procedure
You can send mails using the following UTL_SMTP package
DECLARE v_From VARCHAR2(80) := 'oracle@mycompany.com'; v_Recipient VARCHAR2(80) := 'test@mycompany.com'; v_Subject VARCHAR2(80) := 'test subject'; v_Mail_Host VARCHAR2(30) := 'mail.mycompany.com'; v_Mail_Conn utl_smtp.Connection; crlf VARCHAR2(2) := chr(13)||chr(10);BEGIN v_Mail_Conn := utl_smtp.Open_Connection(v_Mail_Host, 25); utl_smtp.Helo(v_Mail_Conn, v_Mail_Host); utl_smtp.Mail(v_Mail_Conn, v_From); utl_smtp.Rcpt(v_Mail_Conn, v_Recipient); utl_smtp.Data(v_Mail_Conn, 'Date: ' || to_char(sysdate, 'Dy, DD Mon YYYY hh24:mi:ss') || crlf || 'From: ' || v_From || crlf || 'Subject: '|| v_Subject || crlf || 'To: ' || v_Recipient || crlf || crlf || 'some message text'|| crlf || -- Message body 'more message text'|| crlf ); utl_smtp.Quit(v_mail_conn);EXCEPTION WHEN utl_smtp.Transient_Error OR utl_smtp.Permanent_Error then raise_application_error(-20000, 'Unable to send mail: '||sqlerrm);
Sending Email using PL/SQL Procedure
You can send mails using the following UTL_SMTP package
DECLARE v_From VARCHAR2(80) := 'oracle@mycompany.com'; v_Recipient VARCHAR2(80) := 'test@mycompany.com'; v_Subject VARCHAR2(80) := 'test subject'; v_Mail_Host VARCHAR2(30) := 'mail.mycompany.com'; v_Mail_Conn utl_smtp.Connection; crlf VARCHAR2(2) := chr(13)||chr(10);BEGIN v_Mail_Conn := utl_smtp.Open_Connection(v_Mail_Host, 25); utl_smtp.Helo(v_Mail_Conn, v_Mail_Host); utl_smtp.Mail(v_Mail_Conn, v_From); utl_smtp.Rcpt(v_Mail_Conn, v_Recipient); utl_smtp.Data(v_Mail_Conn, 'Date: ' || to_char(sysdate, 'Dy, DD Mon YYYY hh24:mi:ss') || crlf || 'From: ' || v_From || crlf || 'Subject: '|| v_Subject || crlf || 'To: ' || v_Recipient || crlf || crlf || 'some message text'|| crlf || -- Message body 'more message text'|| crlf ); utl_smtp.Quit(v_mail_conn);EXCEPTION WHEN utl_smtp.Transient_Error OR utl_smtp.Permanent_Error then raise_application_error(-20000, 'Unable to send mail: '||sqlerrm);
HOW to load Items to organization, subinventory and locator using API [ID 286339.1]
Applies to:
Oracle Inventory
Management - Version: 11.5.2 to 11.5.9
Information in this document applies to any platform.
Information in this document applies to any platform.
Goal
Is there an open
interface/API(like MTL_SYSTEMS_ITEM_INTERFACE) in Oracle R11i that can be used
to load subinventory data.
Customer are using Dataload(a 3rd party Oracle Applications data loader software), the software can load data without any major problem but the processes are too slow and no error controls of the loading. Therefore, customer want to know if that is an interface for subinventory
Customer are using Dataload(a 3rd party Oracle Applications data loader software), the software can load data without any major problem but the processes are too slow and no error controls of the loading. Therefore, customer want to know if that is an interface for subinventory
Solution
If the Org for which you
want to transfer the info , WMS enabled, then the CREATE_LOC_ITEM_TIE
procedure, under Locator Maintenance APIs, may be useful for this issue;
Note that the list of public API's are all that are available thru the Oracle Inventory Apps;
The API quoted is the only API for this functionality ( locators ) Items that are not locator controlled, can be assigned to subinventories thru the normal Item Open Interface;
An enhancement request was filed for this issue previously;
Note that the Technical Reference Manual shows the table MTL_ITEM_SUB_INVS_INTERFACE and the explanation of the process; Please note, the TRM also states that this table is not used;
The following process was established;
spool msi_subinv.lst
PROMPT msi_subinv.sql
PROMPT Current counts in MTL_SYSTEM_ITEMS_INTERFACE
select process_flag, count(*) from MTL_ITEM_SUB_INVS_INTERFACE group by process_
flag;
prompt
prompt Assigning an item to a subinventory.
prompt
accept YourItemID DEFAULT '11175' prompt 'Please enter your inventory item id
(Default 11175): '
prompt
prompt
accept YourOrgID DEFAULT '207' prompt 'Please enter your Org Code (Default 207):
'
prompt
prompt
accept YourSubinv DEFAULT 'FGI' prompt 'Please enter a Subinventory Code
(Default FGI): '
prompt
insert into MTL_ITEM_SUB_INVS_INTERFACE
(
TRANSACTION_TYPE,
INVENTORY_ITEM_ID,
ORGANIZATION_ID,
SECONDARY_INVENTORY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
PRIMARY_SUBINVENTORY_FLAG,
PICKING_ORDER,
MIN_MINMAX_QUANTITY,
MAX_MINMAX_QUANTITY,
INVENTORY_PLANNING_CODE,
FIXED_LOT_MULTIPLE,
MINIMUM_ORDER_QUANTITY,
MAXIMUM_ORDER_QUANTITY,
SOURCE_TYPE,
SOURCE_ORGANIZATION_ID,
SOURCE_SUBINVENTORY,
PROCESS_FLAG,
ORGANIZATION_CODE,
ITEM_NUMBER
)
VALUES
(
'CREATE', --TRANSACTION_TYPE
&YourItemID, -- INVENTORY_ITEM_ID,
&YourOrgID, -- ORGANIZATION_ID,
'&YourSubinv', -- SECONDARY_INVENTORY,
sysdate,-- LAST_UPDATE_DATE,
-1, -- LAST_UPDATED_BY,
sysdate, -- CREATION_DATE,
-1, -- CREATED_BY,
-1, -- LAST_UPDATE_LOGIN,
NULL, -- PRIMARY_SUBINVENTORY_FLAG,
NULL, -- PICKING_ORDER,
NULL, -- MIN_MINMAX_QUANTITY,
NULL, -- MAX_MINMAX_QUANTITY,
NULL, -- INVENTORY_PLANNING_CODE,
NULL, -- FIXED_LOT_MULTIPLE,
NULL, -- MINIMUM_ORDER_QUANTITY,
NULL, -- MAXIMUM_ORDER_QUANTITY,
NULL, -- SOURCE_TYPE,
NULL, -- SOURCE_ORGANIZATION_ID,
NULL, -- SOURCE_SUBINVENTORY,
NULL, -- PROCESS_FLAG = PENDING
'&YourMasterOrgCode', -- ORGANIZATION_CODE,
NULL -- ITEM_NUMBER
);
spool off
Note that the list of public API's are all that are available thru the Oracle Inventory Apps;
The API quoted is the only API for this functionality ( locators ) Items that are not locator controlled, can be assigned to subinventories thru the normal Item Open Interface;
An enhancement request was filed for this issue previously;
Note that the Technical Reference Manual shows the table MTL_ITEM_SUB_INVS_INTERFACE and the explanation of the process; Please note, the TRM also states that this table is not used;
The following process was established;
spool msi_subinv.lst
PROMPT msi_subinv.sql
PROMPT Current counts in MTL_SYSTEM_ITEMS_INTERFACE
select process_flag, count(*) from MTL_ITEM_SUB_INVS_INTERFACE group by process_
flag;
prompt
prompt Assigning an item to a subinventory.
prompt
accept YourItemID DEFAULT '11175' prompt 'Please enter your inventory item id
(Default 11175): '
prompt
prompt
accept YourOrgID DEFAULT '207' prompt 'Please enter your Org Code (Default 207):
'
prompt
prompt
accept YourSubinv DEFAULT 'FGI' prompt 'Please enter a Subinventory Code
(Default FGI): '
prompt
insert into MTL_ITEM_SUB_INVS_INTERFACE
(
TRANSACTION_TYPE,
INVENTORY_ITEM_ID,
ORGANIZATION_ID,
SECONDARY_INVENTORY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
PRIMARY_SUBINVENTORY_FLAG,
PICKING_ORDER,
MIN_MINMAX_QUANTITY,
MAX_MINMAX_QUANTITY,
INVENTORY_PLANNING_CODE,
FIXED_LOT_MULTIPLE,
MINIMUM_ORDER_QUANTITY,
MAXIMUM_ORDER_QUANTITY,
SOURCE_TYPE,
SOURCE_ORGANIZATION_ID,
SOURCE_SUBINVENTORY,
PROCESS_FLAG,
ORGANIZATION_CODE,
ITEM_NUMBER
)
VALUES
(
'CREATE', --TRANSACTION_TYPE
&YourItemID, -- INVENTORY_ITEM_ID,
&YourOrgID, -- ORGANIZATION_ID,
'&YourSubinv', -- SECONDARY_INVENTORY,
sysdate,-- LAST_UPDATE_DATE,
-1, -- LAST_UPDATED_BY,
sysdate, -- CREATION_DATE,
-1, -- CREATED_BY,
-1, -- LAST_UPDATE_LOGIN,
NULL, -- PRIMARY_SUBINVENTORY_FLAG,
NULL, -- PICKING_ORDER,
NULL, -- MIN_MINMAX_QUANTITY,
NULL, -- MAX_MINMAX_QUANTITY,
NULL, -- INVENTORY_PLANNING_CODE,
NULL, -- FIXED_LOT_MULTIPLE,
NULL, -- MINIMUM_ORDER_QUANTITY,
NULL, -- MAXIMUM_ORDER_QUANTITY,
NULL, -- SOURCE_TYPE,
NULL, -- SOURCE_ORGANIZATION_ID,
NULL, -- SOURCE_SUBINVENTORY,
NULL, -- PROCESS_FLAG = PENDING
'&YourMasterOrgCode', -- ORGANIZATION_CODE,
NULL -- ITEM_NUMBER
);
spool off
API to Load/maintain the Item Subinventory Information [ID 1458355.1]
Applies to:
Oracle Inventory
Management - Version 11.5.10.CU2 to 12.1.3 [Release 11.5.10 to 12.1]
Information in this document applies to any platform.
Information in this document applies to any platform.
Need
an API to assign item only to subinventory. If the API not exist, it is
possible to expand the package inv_loc_wms_pub with API to assign items to
subinventory?
Currently
there is no supported interface or public API for connecting items to
subinventories in the mtl_item_sub_inventories table. ORACLE does not support
direct insert in mtl_item_sub_inventories table.
There is an opened Enhancement Request bug for this:
Bug 5380622: ITEM SUBINVENTORY LOCATOR RELATIONSHIP API
Within the ER the following workaround has been stated:
INV_LOC_WMS_PUB.CREATE_LOC_ITEM_TIE is useful only if the org is wms controlled because then the organization is mandatorily locator controlled. You can download the MFGAPI to get more information. Though MTL_ITEM_SUB_INVS_INTERFACE exists, currently we do not support this interface table.
As per the documentation for the API-INV_LOC_WMS_PUB.CREATE_LOC_ITEM_TIE, we can suggest two ways to accomplish the goal of assigning items to a subinventory.
1. Create a locator using - create_locator API, assign the items to subinventory using CREATE_LOC_ITEM_TIE and then delete the locators using delete_locator api - all part of the INV_LOC_WMS_PUB API package.
This is a roundabout route for accomplishing a simple job of assigning items to subinventory, that affects only the mtl_item_sub_inventories table.
2. Pertaining to the body of the API package -Create_LOC_ITEM_TIE code, the below part of the code can be the only one required assigning an item to the subinventory.
**************************************************************************
/* Check if an entry exists in MTL_ITEM_SUB_INVENTORIES table for the item
passed */
BEGIN
SELECT 1
INTO l_item_sub
FROM mtl_item_sub_inventories
WHERE inventory_item_id = l_inventory_item_id
AND secondary_inventory = p_subinventory_code
AND organization_id = l_organization_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO mtl_item_sub_inventories
(inventory_item_id
, organization_id
, secondary_inventory
, last_update_date
, last_updated_by
, creation_date
, created_by
, inventory_planning_code)
VALUES (l_inventory_item_id
, l_organization_id
, p_subinventory_code
, SYSDATE
, fnd_global.user_id
, SYSDATE
, fnd_global.user_id
, 6);
END;
******************************************************************************
There is an opened Enhancement Request bug for this:
Bug 5380622: ITEM SUBINVENTORY LOCATOR RELATIONSHIP API
Within the ER the following workaround has been stated:
INV_LOC_WMS_PUB.CREATE_LOC_ITEM_TIE is useful only if the org is wms controlled because then the organization is mandatorily locator controlled. You can download the MFGAPI to get more information. Though MTL_ITEM_SUB_INVS_INTERFACE exists, currently we do not support this interface table.
As per the documentation for the API-INV_LOC_WMS_PUB.CREATE_LOC_ITEM_TIE, we can suggest two ways to accomplish the goal of assigning items to a subinventory.
1. Create a locator using - create_locator API, assign the items to subinventory using CREATE_LOC_ITEM_TIE and then delete the locators using delete_locator api - all part of the INV_LOC_WMS_PUB API package.
This is a roundabout route for accomplishing a simple job of assigning items to subinventory, that affects only the mtl_item_sub_inventories table.
2. Pertaining to the body of the API package -Create_LOC_ITEM_TIE code, the below part of the code can be the only one required assigning an item to the subinventory.
**************************************************************************
/* Check if an entry exists in MTL_ITEM_SUB_INVENTORIES table for the item
passed */
BEGIN
SELECT 1
INTO l_item_sub
FROM mtl_item_sub_inventories
WHERE inventory_item_id = l_inventory_item_id
AND secondary_inventory = p_subinventory_code
AND organization_id = l_organization_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO mtl_item_sub_inventories
(inventory_item_id
, organization_id
, secondary_inventory
, last_update_date
, last_updated_by
, creation_date
, created_by
, inventory_planning_code)
VALUES (l_inventory_item_id
, l_organization_id
, p_subinventory_code
, SYSDATE
, fnd_global.user_id
, SYSDATE
, fnd_global.user_id
, 6);
END;
******************************************************************************
Note:
The workarounds mentioned in the above <> are also not
supported.
NOTE:286339.1 - HOW to load Items to organization, subinventory and locator
using API
BUG:5380622 - ITEM SUBINVENTORY LOCATOR RELATIONSHIP API
BUG:5380622 - ITEM SUBINVENTORY LOCATOR RELATIONSHIP API
Nov 27, 2014
ROWID & ROWNUM Pseudocolumn
What is ROWID Pseudocolumns ::
For
each row in the database, the ROWID pseudocolumn returns the address of the
row. Oracle Database rowid values contain information necessary to locate a
row:
- The
data object number of the object
- The
data block in the datafile in which the row resides
- The
position of the row in the data block (first row is 0)
- The
datafile in which the row resides (first file is 1). The file number is
relative to the tablespace.
Usually,
a rowid value uniquely identifies a row in the database. However, rows in
different tables that are stored together in the same cluster can have the same
rowid.
Values
of the ROWID pseudocolumn have the datatype ROWID or UROWID. Please refer to "ROWID
Datatype" and "UROWID
Datatype"for more information.
Rowid
values have several important uses:
- They
are the fastest way to access a single row.
- They
can show you how the rows in a table are stored.
- They
are unique identifiers for rows in a table.
You
should not use ROWID as the primary key of a table. If you
delete and reinsert a row with the Import and Export utilities, for example,
then its rowid may change. If you delete a row, then Oracle may reassign its
rowid to a new row inserted later.
Although
you can use the ROWID pseudocolumn in the SELECT and WHERE clause of a
query, these pseudocolumn values are not actually stored in the database. You
cannot insert, update, or delete a value of the ROWID pseudocolumn.
Don't use ROW_ID with MIN and MAX as MAX(ROWID) won't always return me last inserted row because
that row should not have the biggest
ROWID value.
The value of ROW_ID is
not in sequence but it's only unique value.
What is ROWNUM Pseudocolumns ::
For
each row returned by a query, the ROWNUM pseudocolumn returns a number indicating
the order in which Oracle selects the row from a table or set of joined rows.
The first row selected has a ROWNUM of 1, the second has 2, and so on.
You
can use ROWNUM to limit the number of rows returned by a query, as in
this example:
SELECT * FROM employees
WHERE ROWNUM < 10;
If
an ORDER BY clause follows ROWNUM in the same
query, then the rows will be reordered by the ORDER BY clause. The
results can vary depending on the way the rows are accessed. For example, if
the ORDER BY clause causes Oracle to use an index to
access the data, then Oracle may retrieve the rows in a different order than
without the index. Therefore, the following statement will not have the same
effect as the preceding example:
SELECT * FROM employees
WHERE ROWNUM < 11 ORDER BY last_name;
If
you embed the ORDER BY clause in a subquery and place the ROWNUM condition in the
top-level query, then you can force theROWNUM condition to be applied after the
ordering of the rows. For example, the following query returns the employees
with the 10 smallest employee numbers. This is sometimes referred to as top-N reporting:
SELECT * FROM
(SELECT * FROM employees ORDER BY
employee_id)
WHERE ROWNUM < 11;
In
the preceding example, the ROWNUM values are those of the top-level SELECT statement, so
they are generated after the rows have already been ordered by employee_id in
the subquery.
Conditions
testing for ROWNUM values greater than a positive integer are always false.
For example, this query returns no rows:
SELECT * FROM employees
WHERE ROWNUM > 1;
The
first row fetched is assigned a ROWNUM of 1 and makes the condition false. The second
row to be fetched is now the first row and is also assigned a ROWNUM of 1 and makes
the condition false. All rows subsequently fail to satisfy the condition, so no
rows are returned.
You
can also use ROWNUM to assign unique values to each row of a table, as in this
example:
UPDATE my_table
SET column1 = ROWNUM;
Please
refer to the function ROW_NUMBER for
an alternative method of assigning unique numbers to rows.
Nov 26, 2014
Oracle Business Intelligence Developers Guide (Oracle Press)
Overview
Main description
Master Oracle Business Intelligence 11g Reports and Dashboards
Deliver meaningful business information to users anytime, anywhere, on any device, using Oracle Business Intelligence 11g. Written by Oracle ACE Director Mark Rittman, Oracle Business Intelligence 11g Developers Guide fully covers the latest BI report design and distribution techniques. Find out how to execute effective queries, build accurate models, use scorecards and KPIs, create dynamic reports, set up dashboards, and publish to smartphones and wireless devices. This Oracle Press guide contains comprehensive details on Oracle Exalytics In-Memory Machine, the best-in-class, preintegrated BI platform.
- Install or upgrade to Oracle Business Intelligence 11g
- Develop and manage custom Oracle Business Intelligence repositories
- Access relational, file, and multidimensional data sources
- Design print-quality reports with Oracle Business Intelligence Publisher
- Create web-enabled analyses, dashboards, and visualizations
- Integrate with other applications using Oracle Business Intelligence 11g Action Framework
- Employ authentication, authorization, and row-level security
- Configure and deploy Oracle Exalytics In-Memory Machine
Table of contents
1. Overview and Product Architecture
2. Installations and Upgrades, for the Oracle BI Developers Handbook
3. Creating Repositories from Relational Sources
4. Creating Repositories from Oracle Essbase and Other OLAP Data Sources
5. Configuring and Maintaining the BI Server
6. Creating Reports Using Answers and Dashboards
7. Actionable Intelligence
8. KPIs and Scorecards
9. Creating Published Reports (BI Publisher)
10. Systems Management
11. High Availability, Clustering and Backup & Recovery
12. Managing Change, Versioning and Promotion Between Environments
13. Oracle Exalytics Business Intelligence Machine
2. Installations and Upgrades, for the Oracle BI Developers Handbook
3. Creating Repositories from Relational Sources
4. Creating Repositories from Oracle Essbase and Other OLAP Data Sources
5. Configuring and Maintaining the BI Server
6. Creating Reports Using Answers and Dashboards
7. Actionable Intelligence
8. KPIs and Scorecards
9. Creating Published Reports (BI Publisher)
10. Systems Management
11. High Availability, Clustering and Backup & Recovery
12. Managing Change, Versioning and Promotion Between Environments
13. Oracle Exalytics Business Intelligence Machine
Author comments
Mark Rittman, Oracle ACE Director, is Technical Director and co-founder of Rittman Mead, specializing in BI, DW and EPM solutions using Oracle Business Intelligence, Oracle Database, Oracle Data Integrator and Oracle Essbase. Mark is a strong supporter of Oracle user groups around the world, was previously an executive board member of ODTUG and speaks regularly at conferences in the UK, Europe, USA and around the world. Mark also writes for the Rittman Mead blog (http://www.rittmanmead.com/blog) and contributes a regular column on business intelligence for Oracle Magazine.
Original Source:: http://www.rittmanmead.com/obiee11gbook/
http://www.mhprofessional.com/product.php?isbn=0071798749
Feb 11, 2014
Oracle Apps Testing
1
Testing::
The ORACLE Apps testing strategy defines five levels of
testing. The ORACLE Testing Strategy
deliverable contains detailed information on each testing level. The Developer’s Handbook only provides brief
explanations for developers to use as a quick reference guide. The Developer’s Handbook does provide a minimal
level of additional detail for those levels of testing in which developers
themselves play a primary role. The
levels of testing include:
·
Construction Testing, which focuses on RICE
elements and application configuration.
·
Process Testing, which verifies delivered and
enhanced software functionality.
·
Integration Testing, which validates end-to-end
business processes
·
User Acceptance Testing, which validates the
solution to the end-user community
·
Technical Testing, which validate the hardware,
software, and ancillary components function properly
Although not a separate deliverable from the code itself,
developers will perform unit testing on each RICE component. The developer will be responsible for
defining and executing the unit test for the development item. Unit tests will validate required
functionality as detailed in the functional requirements document and that
adequate exception handling is included in the developed item. Unit testing focuses on detailed testing of
all paths through a piece of code.
Developers should place emphasis on error processing. For example, when testing a custom form,
developers should place special characters in all fields and have the form
attempt to process. Upon successful
completion of unit testing for a RICE component, the developers will conduct
string testing on the component.
Developers perform all testing.
1.1.2
String Testing
String testing involves both the source and target systems
for interfaces and conversions. In sting
testing, the source application produces output, whether a flat file or a
message. The target application receives
and processes the input file or message.
String testing proves that data elements transfer from the source to the
target application. Upon successful
completion of string testing, the technical team makes the components available
for processing testing.
Developers from both the source and target divisions perform
string testing.
Application configuration testing verifies the settings
within the Oracle Applications. The
tests ensure that the configured application meets documented
requirements. Application configuration
testing does not involve RICE components.
Developers have no responsibility for application configuration
testing, although they may need to assist functional team members.
Members of the process project team will define and execute
individual process tests on each function.
Process testing combines the configured application and the RICE
components into an integrated environment.
Process testing takes place within the ORACLE TEAM and does not focus on
division specific data. Upon successful
completion of process testing a RICE component, the process team will make the
development package available for Integration testing.
Developers do not create or execute process test. However, developers will investigate
potential errors uncovered during testing and will resolve coding or Oracle bug
issues as necessary.
1.3
Integration Testing
During integration testing, the process team performs
end-to-end testing on processes. During
this testing cycle, tests interfaces
with the legacy application and integration with third parties, such as a
bank. Upon successful completion of
integration testing a RICE component, the process team will make the
development package available for user acceptance testing.
1.4
User Acceptance Testing
’s user acceptance testing performs “a day in the life”
testing scenario. For example, users
execute daily, weekly, and monthly processes.
’s user community will perform user acceptance testing on each RICE
component. User acceptance tests will
validate required functionality as detailed in the functional requirements
document. Upon successful completion of
acceptance testing for a RICE component, the end-users will make the
development package available for production.
Production readiness testing executes one time, immediately
before the first production implementation.
Production readiness testing occurs on the production hardware using the
production software. Production
readiness testing enables to test the
exact hardware and software configurations that will exist after deployment to
the Oracle Application. Production
readiness testing focuses on validating that all the proper connections exist
between the Oracle Application environment and other systems, whether internal
or external to . (The UAT/FAT3 tests
will serve as Production Readiness testing for the ORACLE implementation.)
1.5.2
Stress Testing
The ORACLE TEAM will conduct stress testing before the
implementation of the pilot division, EPT.
Stress testing will send a high volume of transactions through the
system to test the performance of the application components. In the case of the ORACLE TEAM, stress
testing will focus primarily on the interfaces.
1.5.3
Patch Testing
From a technical perspective, patch testing allows the person
who applies the patch to ensure that repair software from the supplier will
install completely and successfully and that the system is still accessible
online. In addition, by having the
functional resources participate, patch testing validates the functionality of
an application after receiving a software update from the supplier. Patch testing identifies whether the patch
fixes the known problem or not. In
addition, patch testing also involves verifying that the patch does adversely
affect any other software functionality.
1.5.4
Infrastructure Verification
Infrastructure verification testing validates whether new
hardware platforms or network connections function as expected. Infrastructure verification testing only
occurs when new hardware platforms or major network upgrades exist.
Oracle Reserved Words
1
Appendix A – Oracle Reserved Words
1.1
Oracle 8.1.7 Reserved Words
This appendix lists Oracle reserved words. Oracle changes reserved words with each
version of its product. For a complete
listing of reserved words, developers must use https://metalink.oracle.com. Words followed by an asterisk (*) are also
ANSI reserved words. Developers must
only use these words in Oracle related context.
Note: In addition to the following reserved words, Oracle
uses system-generated names beginning with "SYS_" for implicitly
generated schema objects and sub-objects.
Oracle discourages developers from using this prefix in the names
explicitly given to custom schema objects and sub-objects to avoid possible
conflict in name resolution.
ACCESS
ADD*
ALL*
ALTER*
AND*
ANY*
AS*
ASC*
AUDIT
BETWEEN*
BY*
CHAR*
CHECK*
CLUSTER
COLUMN
COMMENT
COMPRESS
CONNECT*
CREATE*
CURRENT*
DATE*
DECIMAL*
DEFAULT*
DELETE*
DESC*
DISTINCT*
DROP*
ELSE*
EXCLUSIVE
EXISTS
FILE
FLOAT*
FOR*
FROM*
GRANT*
GROUP*
HAVING*
IDENTIFIED
IMMEDIATE*
IN*
INCREMENT
INDEX
INITIAL
INSERT*
INTEGER*
INTERSECT*
INTO*
IS*
LEVEL*
LIKE*
LOCK
LONG
MAXEXTENTS
MINUS
MLSLABEL
MODE
MODIFY
NOAUDIT
NOCOMPRESS
NOT*
NOWAIT
NULL*
NUMBER
OF*
OFFLINE
ON*
ONLINE
OPTION*
OR*
ORDER*
PCTFREE
PRIOR*
PRIVILEGES*
PUBLIC*
RAW
RENAME
RESOURCE
REVOKE*
ROW
ROWS*
ROWID
ROWNUM
SELECT*
SESSION*
SET
SHARE
SIZE
SMALLINT*
START
SUCCESSFUL
SYNONYM
SYSDATE
TABLE*
THEN*
TO*
TRIGGER
UID
UNION*
UNIQUE*
UPDATE*
USER*
VALIDATE
VALUES*
VARCHAR*
VARCHAR2
VIEW*
WHENEVER*
WHERE
WITH*
1.2
PL/SQL 8.1.7 Reserved Words
PL/SQL reserves the words listed in this appendix. That is, they have a special syntactic
meaning to PL/SQL. Therefore, developers
should not use them to name program objects such as constants, variables, or
cursors. SQL also reserves some of these
words (marked by an asterisk).
Therefore, developers should not use them to name schema objects such as
columns, tables, or indexes. Oracle
changes reserved words with each version of its product. For a complete listing of reserved words,
developers must use https://metalink.oracle.com.
ALL*
ALTER*
AND*
ANY*
ARRAY
AS*
ASC*
AT
AUTHID
AVG
BEGIN
BETWEEN*
BINARY_INTEGER
BODY
BOOLEAN
BULK
BY*
CHAR*
CHAR_BASE
CHECK*
CLOSE
CLUSTER*
COLLECT
COMMENT*
COMMIT
COMPRESS*
CONNECT*
CONSTANT
CREATE*
CURRENT*
CURRVAL
CURSOR
DATE*
DAY
DECIMAL*
DECLARE
DEFAULT*
DELETE*
DESC*
DISTINCT*
DO
DROP*
ELSE*
ELSIF
END
EXCEPTION
EXCLUSIVE*
EXECUTE
EXISTS*
EXIT
EXTENDS
FALSE
FETCH
FLOAT*
FOR*
FORALL
FROM*
FUNCTION
GOTO
GROUP*
HAVING*
HEAP
HOUR
IF
IMMEDIATE*
IN*
INDEX*
INDICATOR
INSERT*
INTEGER*
INTERFACE
INTERSECT*
INTERVAL
INTO*
IS*
ISOLATION
JAVA
LEVEL*
LIKE*
LIMITED
LOCK*
LONG*
MAX
MIN
MINUS*
MINUTE
MLSLABEL*
MOD
MODE*
MONTH
NATURAL
NATURALN
NEW
NEXTVAL
NOCOPY
NOT*
NOWAIT*
NULL*
NUMBER*
NUMBER_BASE
OCIROWID
OF*
ON*
OPAQUE
OPEN
OPERATOR
OPTION*
OR*
ORDER*
ORGANIZATION
OTHERS
OUT
PACKAGE
PARTITION
PCTFREE*
PLS_INTEGER
POSITIVE
POSITIVEN
PRAGMA
PRIOR*
PRIVATE
PROCEDURE
PUBLIC*
RAISE
RANGE
RAW*
REAL
RECORD
REF
RELEASE
RETURN
REVERSE
ROLLBACK
ROW*
ROWID*
ROWNUM*
ROWTYPE
SAVEPOINT
SECOND
SELECT*
SEPARATE
SET*
SHARE*
SMALLINT*
SPACE
SQL
SQLCODE
SQLERRM
START*
STDDEV
SUBTYPE
SUCCESSFUL*
SUM
SYNONYM*
SYSDATE*
TABLE*
THEN*
TIME
TIMESTAMP
TO*
TRIGGER*
TRUE
TYPE
UID*
UNION*
UNIQUE*
UPDATE*
USE
USER*
VALIDATE*
VALUES*
VARCHAR*
VARCHAR2*
VARIANCE
VIEW*
WHEN
WHENEVER*
WHERE*
WHILE
WITH*
Subscribe to:
Posts (Atom)
OraApps Search
Custom Search