Skip to main content

How to Manage Serial# through database Sequence

How to Manage Serial# through database Sequence

Create sequence invoice_serial
MINVALUE 1
maxvalue 99999999
increment by 1;
If you need to modify the sequence to start with particular number
Create sequence invoice_serial
start with 8
increment by 1
maxvalue 99999999;
Now write a PRE_INSERT trigger to access the sequence through form.
select invoice_serial.nextval 
into :invoice_details.serial#
from dual;
Note: In the above case database sequence updated and serial is displayed when you save the record.

How to Control the sequence through database Table:
Create a form as well as database table and sequence from where from where you want to handle the sequence.
CREATE TABLE INVOICE_SEQUENCE
(
SEQ_COMP NUMBER(1),
SEQ_YEAR NUMBER(4),
SEQ_TYPE NUMBER(2),
SEQ_SEQ NUMBER(10));
PRIMARY KEY: SEQ_COMP, SEQ_YEAR, SEQ_TYPE
CREATE SEQUENCE INVOICE_SEQ
   MINVALUE 1
   MAXVALUE 99999999
   START WITH 1
   INCREMENT BY 1
   CACHE 20;
Then create the required form to handle the sequence. Here in below example we have created the ‘INVOICE’ form in which we will handle the invoice# number automatically incremented with each transaction.
Then write a PRE-INSERT TRIGGER on block to update/insert the sequence.
---- update the sequence ----
BEGIN
      UPDATE INVOICE_SEQUENCE SET  SEQ_SEQ=SEQ_SEQ+1
      WHERE SEQ_YEAR=TO_NUMBER(TO_CHAR(:INVOICE_HEADER.INV_DATE,'YYYY'))
      AND SEQ_COMP = 1 AND SEQ_TYPE = 0;
exception
      when   others then
      show_message(2,2);
END;
BEGIN
  SELECT MAX(TO_NUMBER(TO_CHAR(:INVOICE_HEADER.INV_DATE, 'YY')))
  into   :INVOICE_HEADER.YY
  FROM   INVOICE_HEADER;
exception
      when   others then
      show_message(2,2);
END;
--Get the new sequence----
BEGIN
      select SEQ_SEQ
      into   :INVOICE_HEADER.INVOICE#
      from   INVOICE_SEQUENCE
WHERE SEQ_YEAR=TO_NUMBER(TO_CHAR(:INVOICE_HEADER.INV_DATE,'YYYY'))
      AND SEQ_COMP = 1 AND SEQ_TYPE = 0;
 exception
      when   no_data_found then
            show_message(1,'Could not retrieve the Serial Number!');
            raise form_trigger_failure;
      when   others then
             show_message(2,2);
END;

How Manage Form details auto Serial Number:
To display Master/Details Form serial number automatically in the form.
Just open the property of the item and change
item_name: serial#
item_type: display item
database item: yes
Calculation Mode: Formula
Formula: :system.trigger_record; or system.cursor_record;
-or- you can write the same things into POST_INSERT or WHEN_NEW_RECORD_INSTANCE trigger
:invoice_details.serial# = :system.trigger_record;
Note: It will display your serial automatically when inserting new record before save.


Comments

Popular posts from this blog

Changing National Character Set AL16UTF16 to UTF8

Changing National Character Set AL16UTF16 to UTF8 The national character set is used for data that is stored in table columns of the types NCHAR, NVARCHAR2, and NCLOB.  In contrast, the database character set is used for data stored in table columns of the types CHAR, VARCHAR2 and CLOB. Like the database character set, the national character set is defined when the database is initially created and can usually no longer be changed, at least not easily or without involving quite a lot of work (export, recreate database, import). Except when creating the database, where the national character set is defined explicitly, it can change implicitly even when upgrading the database from Oracle8i to Oracle9i (or Oracle10g). You require SYSDBA authorization to change the national character set. Changing the national character set means changing an Oracle Dictionary entry, but no data is changed.  $sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> Select property_...

How to Monitor RMAN Backup through SQL Query

To Monitor RMAN you can use OEM or any other tools such as "Quest Backup Report for Oracle". You can also used following Views in oracle 9i to check the RMAN backup status: v$rman_configuration v$backup_set v$backup_piece v$backup_spfile v$session_longops Script to check RMAN Configuration: SELECT  name "PARAMETERS", value "RMAN CONFIGURATION" FROM  v$rman_configuration ORDER BY name; PARAMETERS RMAN CONFIGURATION BACKUP OPTIMIZATION ON CHANNEL DEVICE TYPE DISK FORMAT   'H:\ORABACK\%U' CONTROLFILE AUTOBACKUP ON CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'H:\ORABACK\%F' DEFAULT DEVICE TYPE TO DISK RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS Script to List RMAN Backup Piece: SELECT bs.recid, DECODE(   bp.status, 'A', 'Available', 'D', 'De...

How to Remove Oracle services from Windows

How to Remove Oracle services from Windows If you have uninstall the Oracle software from your system, but, the services are not removed. This resulted, when you are trying to install oracle back and trying to configure your Instance as old name is not allowed. Method1: To remove OracleService , go to the command prompt and type: oradim -delete -sid <SID> where SID is the sid of your database, as it appears when you type net start | more (you should get an "OracleServiceSID") Method2: If you have the resource kit, you can use delsrv.exe to remove the listener service. If you don't have the resource kit, you can download delsrv.exe from Microsoft Support: http://www.microsoft.com/windows2000/tec… Method3: Go to Registry (Type regedit on RUN) Take a backup of Registry. (For the backup Click on file menu on Registry and export your registry backup any location so whenever required you can import your old registry.) Now go to registry HKEY_L...