Click here to Skip to main content
15,891,777 members
Articles / Programming Languages / C#

Microsoft Enterprise Library Data Access Block [DAAB] on Oracle Provider [ODP.NET]

Rate me:
Please Sign up or sign in to vote.
4.88/5 (32 votes)
4 Feb 2010CPOL11 min read 361.8K   4.3K   105  
Microsoft Enterprise Library Data Access Block [DAAB] on Oracle Provider [ODP.NET]
CREATE TABLE DAABCUSTOMER
(
  DAABCUSTOMERID   INTEGER,
  DAABCONTACTNAME  VARCHAR2(100),
  DAABADDRESS      VARCHAR2(100),
  DAABCITY         VARCHAR2(100),
  DAABCOUNTRY      VARCHAR2(100),
  DAABPOSTCODE     VARCHAR2(10),
  CONSTRAINT DAABCUSTOMER_PK
 PRIMARY KEY
 (DAABCUSTOMERID)
)
LOGGING 
NOCACHE
NOPARALLEL;


CREATE OR REPLACE PACKAGE SSM_CS.PKG_DAABCUSTOMER
-- Package Definition Begin
AS

--/ Application                    :DEMO DAAB OF MICROSOFT ENT LIBRARY                  :
--/ Author                          :MARTIN ADAIKALAM

TYPE CURSOR_RESULTS IS REF CURSOR;

PROCEDURE P_DAABCustomerByPostcode  (
                                        I_Reference IN  VARCHAR2, 
                                        O_Results   OUT CURSOR_RESULTS
                                    );
PROCEDURE P_DAABCustomerDetails  (
                                        I_Reference         IN      INT, 
                                        O_CustomerID        OUT     INT,
                                        O_CustomerName      OUT     VARCHAR2                                        
                                    );
                                    
PROCEDURE P_DAABCustomerName     (
                                        I_Reference         IN      INT,
                                        O_CustomerName      OUT     VARCHAR2                                        
                                    );

PROCEDURE P_DAABMultipleCursor     (
                                        I_Reference             IN      VARCHAR2,
                                        O_PostcodePresent       OUT     CURSOR_RESULTS,
                                        O_PostcodeNotPresent    OUT     CURSOR_RESULTS                                                                                
                                    );

END PKG_DAABCUSTOMER;
/





CREATE OR REPLACE PACKAGE BODY SSM_CS.PKG_DAABCUSTOMER
AS

-- Procedure  P_DAABCustomerByPostcode
    PROCEDURE P_DAABCustomerByPostcode (
                                    I_Reference IN VARCHAR2, 
                                    O_Results OUT CURSOR_RESULTS
                                    )  IS
    BEGIN

        OPEN O_Results 
                FOR      
                Select      DAABCUSTOMERID CustomerID, 
                            DAABCONTACTNAME Name, 
                            DAABADDRESS Address, 
                            DAABCITY City, 
                            DAABCOUNTRY Country, 
                            DAABPOSTCODE PostalCode 
                From        DAABCUSTOMER
                WHERE 
                            DAABCUSTOMER.DAABPOSTCODE = I_Reference;
      
        EXCEPTION
         WHEN OTHERS THEN
          raise_application_error(-20000,  'Unexpected error:' || sqlerrm);
      
    END P_DAABCustomerByPostcode;


    -- Procedure  P_DAABCustomerDetails
    PROCEDURE P_DAABCustomerDetails (
                                        I_Reference         IN      INT, 
                                        O_CustomerID        OUT     INT,
                                        O_CustomerName      OUT     VARCHAR2)   IS   

       V_CUSTOMER DAABCUSTOMER%ROWTYPE;
    BEGIN      
       
       Select       *  
                    INTO
                    V_CUSTOMER                                                 
        From        
                    DAABCUSTOMER
        WHERE 
                    DAABCUSTOMER.DAABCUSTOMERID = I_Reference;      
    
        O_CustomerID    := V_CUSTOMER.DAABCUSTOMERID;
        O_CustomerName  := V_CUSTOMER.DAABCONTACTNAME;        
        
        EXCEPTION
         WHEN OTHERS THEN
          raise_application_error(-20000,  'Unexpected error:' || sqlerrm);
      
    END P_DAABCustomerDetails;
    
    
    
    PROCEDURE P_DAABCustomerName     (
                                        I_Reference         IN      INT,
                                        O_CustomerName      OUT     VARCHAR2                                        
                                    ) IS
    V_CUSTOMER DAABCUSTOMER%ROWTYPE;
    BEGIN      
       
       Select       *  
                    INTO
                    V_CUSTOMER                                                  
        From        
                    DAABCUSTOMER
        WHERE 
                    DAABCUSTOMER.DAABCUSTOMERID = I_Reference;
                    
        O_CustomerName  := V_CUSTOMER.DAABCONTACTNAME;            
        
        EXCEPTION
         WHEN OTHERS THEN
          raise_application_error(-20000,  'Unexpected error:' || sqlerrm);
      
    END P_DAABCustomerName;
    
    
    -- Procedure  P_DAABMultipleCursor
    PROCEDURE P_DAABMultipleCursor (
                                    I_Reference IN VARCHAR2, 
                                    O_PostcodePresent       OUT     CURSOR_RESULTS,
                                    O_PostcodeNotPresent    OUT     CURSOR_RESULTS                                                                                
                                    )  IS
    BEGIN

        OPEN O_PostcodePresent 
                FOR      
                Select      DAABCUSTOMERID CustomerID, 
                            DAABCONTACTNAME Name, 
                            DAABADDRESS Address, 
                            DAABCITY City, 
                            DAABCOUNTRY Country, 
                            DAABPOSTCODE PostalCode 
                From        DAABCUSTOMER
                WHERE 
                            DAABCUSTOMER.DAABPOSTCODE = I_Reference;
                            
         OPEN O_PostcodeNotPresent 
                FOR      
                Select      DAABCUSTOMERID CustomerID, 
                            DAABCONTACTNAME Name, 
                            DAABADDRESS Address, 
                            DAABCITY City, 
                            DAABCOUNTRY Country, 
                            DAABPOSTCODE PostalCode 
                From        DAABCUSTOMER
                WHERE 
                            DAABCUSTOMER.DAABPOSTCODE != I_Reference;
      
        EXCEPTION
         WHEN OTHERS THEN
          raise_application_error(-20000,  'Unexpected error:' || sqlerrm);
      
    END P_DAABMultipleCursor;
                                    
                                    

END PKG_DAABCUSTOMER;
/

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United Kingdom United Kingdom
Software Developer

Comments and Discussions