OOPS Aspects in Oracle

Dear All,
Can you one explain me the aspects of Object Oriented Programming in Oracle. How to use oops concepts in Oracle Procedures, functions, packages, etc.
Thanks,
Moorthy.GS

[url http://forums.oracle.com/forums/thread.jspa?threadID=492685&tstart=0]duplicate thread

Similar Messages

  • Object oriented programming aspects in Oracle

    Dear All,
    Can you one explain me the aspects of Object Oriented Programming in Oracle. How to use oops concepts in Oracle Procedures, functions, packages, etc.
    Thanks,
    Moorthy.GS

    Oracle 9i introduces support for inheritance, method overriding and dynamic method dispatch (or "dynamic binding", or "virtual").
    A method call is dispatched to the nearest implementation, working back up the inheritance hierarchy from the current or specified type.
    See, for example, how we can implement the Template Design Pattern in PL/SQL, using inheritance, method overriding and dynamic method dispatch:
    http://www.quest-pipelines.com/pipelines/plsql/tips06.htm#OCTOBER
    Oracle 11g introduces support for "super" object-oriented keyword. One attempt to do this in PLSQL 9i/10g:
    Calling the Parent Object's Version of an Overridden Method
    http://www.quest-pipelines.com/pipelines/plsql/tips03.htm#JUNE
    I expect some OO improvements in the future (in Oracle 12oo ...):
    1. References between transient objects (instances of objects types) and (then) garbage collector
    2. Generic classes (templates, generics) like in Eiffel, C++, Java 5 (PL/SQL was modeled after ADA 83, and ADA 83 has generic packages)
    3. Multiple inheritance like in Eiffel (inner classes like in Java - no, please)
    4. Design By Contract like in Eiffel (C++ / Java 1.4 assert is not enough)
    Design by contract (DBC) is a method whose author is Bertrand Mayer, also maker of OOPL language Eiffel
    (Eiffel was designed in 1985, commercialy released in 1986, ISO-standardized in 2006).
    Simplified, DBC is based on principle that in each routine (procedure or function) with standard code,
    two additional parts – PRECONDITION and POSTCONDITION - need to be asserted.
    An additional assertion in class is called INVARIANT.
    Contract is based on routine's putting up an obligation to caller (to some other routine)
    to satisfy conditions of precondition and conditions of invariant, and hers (called routine's) obligation
    to satisfy conditions of postcondition and conditions of invariant.
    The object oriented Eiffel programming language was created to implement DBC.
    For now, other OO (object-oriented) languages don’t support directly the ideas behind DBC.
    However, precondition and postcondition are applicable to many programming languages, both OO and not OO.
    Invariants are applicable only in OOPL.
    This is my attempt to use DBC methodology (including invariants) in Oracle PL/SQL.
    Eiffel class interface (not like Java interface, but more like PL/SQL package specification)
    from Bertrand Meyer's book "Object oriented software construction", second edition (OOSC2), 1997, page 390-391:
    class interface STACK [G]
    creation make
    feature -- Initialization
      make (n: INTEGER) is -- Alocate stack for a maximum of n elements
        require
          non_negative_capacity: n >= 0
        ensure
          capacity_set: capacity = n
        end
    feature -- Access
      capacity: INTEGER -- Maximum number of stack elements
      count: INTEGER -- Number of stack elements
      item: G is -– Top element
        require
          not_empty: not empty
        end
    feature -- Status report
      empty: BOOLEAN is –- Is stack empty?
        ensure
          empty_definition: Result = (count = 0)
        end
      full: BOOLEAN is –- Is stack full?
        ensure
          full_definition: Result = (count = capacity)
        end
    feature -- Element change
      put (x: G) is –- Add x on top
        require
          not_full: not full
        ensure
          not_empty: not empty
          added_to_top: item = x
          one_more_item: count = old count + 1
        end
      remove is -– Remove top element
        require
          not_empty: not empty
        ensure
          not_full: not full
          one_fewer: count = old count - 1
        end
    invariant
      count_non_negative: 0 <= count
      count_bounded: count <= capacity
      empty_if_no_elements: empty = (count = 0)
    end -– class interface STACK
    -- PL/SQL "equivalent":
    -- Stack implementation - TABLE of INTEGER.
    -- Eiffel has generic classes (like C++ templates and better than Java generics).
    -- PL/SQL (now) has not generic classes or generic packages.
    CREATE OR REPLACE TYPE array_t AS TABLE OF INTEGER
    -- utility package:
    CREATE OR REPLACE PACKAGE dbc AS
      -- 0 = no check
      -- 1 = check preconditions
      -- 2 = check preconditions + postconditions
      -- 3 = check preconditions + postconditions + invariants
      c_no_check                  CONSTANT INTEGER := 0;
      c_check_preconditions       CONSTANT INTEGER := 1;
      c_check_pre_postconditions  CONSTANT INTEGER := 2;
      c_check_pre_post_invariants CONSTANT INTEGER := 3;
      FUNCTION check_preconditions       RETURN BOOLEAN;
      FUNCTION check_pre_postconditions  RETURN BOOLEAN;
      FUNCTION check_pre_post_invariants RETURN BOOLEAN;
      PROCEDURE set_level (p_level INTEGER);
      PROCEDURE display_error (p_error VARCHAR2);
    END;
    CREATE OR REPLACE PACKAGE BODY dbc AS
      m_level INTEGER := c_no_check;
      FUNCTION check_preconditions RETURN BOOLEAN IS
      BEGIN
        IF m_level >= c_check_preconditions THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;  
      END;
      FUNCTION check_pre_postconditions RETURN BOOLEAN IS
      BEGIN
        IF m_level >= c_check_pre_postconditions THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;  
      END;
      FUNCTION check_pre_post_invariants RETURN BOOLEAN IS
      BEGIN
        IF m_level >= c_check_pre_post_invariants THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;  
      END;
      PROCEDURE set_level (p_level INTEGER) IS
      BEGIN
        IF p_level NOT IN
          (c_no_check, c_check_preconditions, c_check_pre_postconditions, c_check_pre_post_invariants)
        THEN
          RAISE_APPLICATION_ERROR (-20000, 'Wrong checking level');
        END IF;
        m_level := p_level;
      END;
      PROCEDURE display_error (p_error VARCHAR2) IS
      BEGIN
        RAISE_APPLICATION_ERROR (-20000, 'ERROR in method ' || p_error);
      END;
    END;
    CREATE OR REPLACE TYPE stack AS OBJECT (
      -- Maximum number of stack elements
      capacity INTEGER,
      -- Number of stack elements
      el_count INTEGER,
      -- Stack implementation
      stack_implementation array_t,
      -- Alocate stack for a maximum of n elements
      CONSTRUCTOR FUNCTION stack (n INTEGER) RETURN SELF AS RESULT,
      -- Top element
      MEMBER FUNCTION item (SELF IN OUT stack) RETURN INTEGER,
      -- Is stack empty?
      MEMBER FUNCTION empty RETURN BOOLEAN,
      -- Is stack full?
      MEMBER FUNCTION full RETURN BOOLEAN,
      -- Add x on top
      MEMBER PROCEDURE put (x INTEGER),
      -- Remove top element
      MEMBER PROCEDURE remove,
      -- INVARIANTS
      -- Note:
      -- If subprogram is declared in an object type body (in PL/SQL 8i/9i/10g)
      -- it must be defined in the object type specification too.
      MEMBER FUNCTION count_non_negative RETURN BOOLEAN,
      MEMBER FUNCTION count_bounded RETURN BOOLEAN,
      MEMBER FUNCTION empty_if_no_elements RETURN BOOLEAN,
      MEMBER PROCEDURE check_invariants
    ) NOT FINAL;
    CREATE OR REPLACE TYPE BODY stack AS
      CONSTRUCTOR FUNCTION stack (n INTEGER) RETURN SELF AS RESULT IS
      BEGIN
        IF dbc.check_preconditions AND n < 0 THEN
          dbc.display_error ('stack - PRE');
        END IF;
        check_invariants;
        capacity := n;
        stack_implementation := array_t();
        stack_implementation.EXTEND (n);
        IF dbc.check_pre_postconditions AND capacity <> n THEN
          dbc.display_error ('stack - POST');
        END IF;
        check_invariants;
      END;
      MEMBER FUNCTION item (SELF IN OUT stack) RETURN INTEGER IS
      BEGIN
        IF dbc.check_preconditions AND empty THEN
          dbc.display_error ('item - PRE');
        END IF;
        check_invariants;
        RETURN stack_implementation(el_count);
      END;
      MEMBER FUNCTION empty RETURN BOOLEAN IS
      BEGIN
        IF el_count = 0 THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;
      END;
      MEMBER FUNCTION full RETURN BOOLEAN IS
      BEGIN
        IF el_count = capacity THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;
      END;
      MEMBER PROCEDURE put (x INTEGER) IS
      BEGIN
        IF dbc.check_preconditions AND full THEN
          dbc.display_error ('put - PRE');
        END IF;
        check_invariants;
        el_count := el_count + 1;
        stack_implementation(el_count) := x;
        -- PL/SQL has not Eiffel's OLD
        -- one_more_item: count = old count + 1
        IF dbc.check_pre_postconditions AND (empty OR item <> x) THEN
          dbc.display_error ('put - POST');
        END IF;
        check_invariants;
      END;
      MEMBER PROCEDURE remove IS BEGIN
        IF dbc.check_preconditions AND empty THEN
          dbc.display_error ('remove - PRE');
        END IF;
        check_invariants;
        el_count := el_count - 1;
        -- PL/SQL has not Eiffel's OLD
        -- one_fewer: count = old count - 1
        IF dbc.check_pre_postconditions AND full THEN
          dbc.display_error ('remove - POST');
        END IF;
        check_invariants;
      END;
      -- INVARIANTS
      MEMBER FUNCTION count_non_negative RETURN BOOLEAN IS
      BEGIN
        IF el_count >= 0 THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;
      END;
      MEMBER FUNCTION count_bounded RETURN BOOLEAN IS
      BEGIN
        IF el_count <= capacity THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;
      END;
      MEMBER FUNCTION empty_if_no_elements RETURN BOOLEAN IS
      BEGIN
        IF empty AND (el_count = 0)
           OR
           NOT empty AND (el_count <> 0)
        THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;
      END;
      MEMBER PROCEDURE check_invariants IS
      BEGIN
        IF NOT dbc.check_pre_post_invariants THEN
          RETURN; -- without checking invariants
        END IF;
        IF NOT count_non_negative THEN
          dbc.display_error ('INVARIANT count_non_negative');
        END IF;
        IF NOT count_bounded THEN
          dbc.display_error ('INVARIANT count_bounded');
        END IF;
        IF NOT empty_if_no_elements THEN
          dbc.display_error ('INVARIANT empty_if_no_elements');
        END IF;
      END;
    END; -- class body STACK
    /Regards,
    Zlatko Sirotic

  • OOPS concepts in Oracle Objects

    Dear All,
    Can you one explain me the aspects of Object Oriented Programming in Oracle. How to use oops concepts in Oracle Procedures, functions, packages, etc.
    Thanks,
    Moorthy.GS

    Packages are not objects. They are relational, not least because they only contain behaviour (the data is in tables). Packages do not support inheritance or polymorphism. However they do support encapsulation, arguably rather better than Oracle's SQL Types do; if you're interested in finding out more about Types you may be interested in reading a two-part article I wrote on my blog: part one and part two.
    Cheers, APC

  • Installing ORACLE 8.1.7. on HP_UX  11.00

    A have installed Oracle 8.1.5 on HP_UX 11.00 - 32 bit environment
    I want to install/upgrade to Oracle 8.1.7 (64-bit)
    1. Is there any problem with this aspect ? (Oracle 8.1.7. 64-bit on HP_UX 32 bit)
    2. I need an advice regarding <new install> vs. <upgrading> ! I'm not sure if all operating system requirements are met (patch releases)
    3. What are the risk of upgrading ?

    A have installed Oracle 8.1.5 on HP_UX 11.00 - 32 bit environment
    I want to install/upgrade to Oracle 8.1.7 (64-bit)
    1. Is there any problem with this aspect ? (Oracle 8.1.7. 64-bit on HP_UX 32 bit)
    2. I need an advice regarding <new install> vs. <upgrading> ! I'm not sure if all operating system requirements are met (patch releases)
    3. What are the risk of upgrading ?

  • Installing Oracle 8.0.5 on HP-UX 11.00

    Hello,
    When I installing Oracle 8.05 on HP-UX 11.00 'Unix Installer' return ERROR:
    Error during action 'Creating ntcontab.o'.
    Command: make -f /oracle/SH1/network/lib/ins_network.mk ntcontab.o
    (if [ "compile" = "compile" ] ;then
    /oracle/SH1/bin/gennttab > ntcontab.c ;
    /opt/ansic/bin/cc DA2.0W DS2.0 +ESlit -c ntcontab.c ;
    rm -f /oracle/SH1/lib/ntcontab.o ;
    mv ntcontab.o /oracle/SH1/lib ;fi)
    sh[3]: /opt/ansic/bin/cc: Execute permission denied.
    mv: ntcontab.o: cannot access: No such file or directory
    *** Error exit code 1.
    All need patches are installed.
    In 'Installation Requirements Oracle', do not mention about /opt/ansic/bin/cc.
    Help to solve the problem,
    A priori, Thanks

    A have installed Oracle 8.1.5 on HP_UX 11.00 - 32 bit environment
    I want to install/upgrade to Oracle 8.1.7 (64-bit)
    1. Is there any problem with this aspect ? (Oracle 8.1.7. 64-bit on HP_UX 32 bit)
    2. I need an advice regarding <new install> vs. <upgrading> ! I'm not sure if all operating system requirements are met (patch releases)
    3. What are the risk of upgrading ?

  • Installing Oracle 8.1.7 on RHEL 3 (SIGSEGV   11*  segmentation violation)

    Hi
    I have instaled a Oracle 8.1.7 on a Red Hat 3. and apply the 8.1.7 Mandatory OUI/JRE/GLIC Patch. All is fine until this point.
    But when i must re-run the install and run the netasst& i get an segmentation violation.
    I have checked all again, i have have uninstall all, and made a clean install, but i stil get the same error.
    This is the full error. Can any one help please?
    ./netasst&
    [1] 1726
    [oracle@lisoms1 bin]$ SIGSEGV 11* segmentation violation
    stackbase=0x41836000, stackpointer=0x41835a6c
    Full thread dump:
    "Image Fetcher 0" (TID:0x405ca908, sys_thread_t:0x3ffbde0c, state:R) prio=5
    "TaskScheduler timer" (TID:0x405ca668, sys_thread_t:0x3ffdee0c, state:R) prio=5
    "Thread-4" (TID:0x405c9200, sys_thread_t:0x3ffffe0c, state:R) prio=1
    "AWT-Motif" (TID:0x405b2860, sys_thread_t:0x41890e0c, state:R) prio=5
    java.lang.Thread.run(Thread.java)
    "AWT-Input" (TID:0x405b2880, sys_thread_t:0x4186fe0c, state:CW) prio=5
    "AWT-EventQueue-0" (TID:0x405b25e0, sys_thread_t:0x41835e0c, state:R) prio=5 current thread
    java.lang.Object.wait(Object.java)
    java.awt.EventQueue.getNextEvent(EventQueue.java:126)
    java.awt.EventDispatchThread.run(EventDispatchThread.java:70)
    "Finalizer thread" (TID:0x405ab210, sys_thread_t:0x412fde0c, state:CW) prio=1
    "Async Garbage Collector" (TID:0x405ab258, sys_thread_t:0x412dce0c, state:CW) prio=1
    "Idle thread" (TID:0x405ab2a0, sys_thread_t:0x412bbe0c, state:R) prio=0
    "Clock" (TID:0x405ab088, sys_thread_t:0x4129ae0c, state:CW) prio=12
    "main" (TID:0x405ab0b0, sys_thread_t:0x80eb190, state:CW) prio=5
    java.lang.Object.wait(Object.java)
    oracle.ewt.graphics.ImageLoader.waitFor(Unknown Source)
    oracle.ewt.graphics.ImageUtils.loadImage(Unknown Source)
    oracle.ewt.graphics.ImageUtils._getImageResource(Unknown Source)
    oracle.ewt.graphics.ImageUtils.getImageResource(Unknown Source)
    oracle.ewt.laf.oracle.OracleUIUtils.getImage(Unknown Source)
    oracle.ewt.laf.oracle.OracleUIUtils.getColorizedImage(Unknown Source)
    oracle.ewt.laf.oracle.OracleUIUtils.cImageInst(Unknown Source)
    oracle.ewt.laf.basic.StringInstantiator.createValue(Unknown Source)
    oracle.ewt.HashTableDefaults.getValue(Unknown Source)
    oracle.ewt.MultiUIDefaults.getValue(Unknown Source)
    oracle.ewt.UIDefaults.get(Unknown Source)
    oracle.ewt.UIDefaults.get(Unknown Source)
    oracle.ewt.UIDefaults.getImage(Unknown Source)
    oracle.ewt.laf.oracle.OracleChoiceUI._createButtonPainter(Unknown Source)
    oracle.ewt.laf.oracle.OracleChoiceUI.getButtonPainter(Unknown Source) oracle.ewt.lwAWT.LWDataSourceChoice$ChoiceButton.getPainter(Unknown Source)
    oracle.ewt.lwAWT.AbstractPainterComponent.getInvalidateFlags(Unknown Source)
    oracle.ewt.lwAWT.LWComponent.invalidateAndRepaintIfNecessary(Unknown Source)
    oracle.ewt.lwAWT.LWComponent.enable(Unknown Source)
    Monitor Cache Dump:
    oracle.ewt.graphics.ImageLoader@1079814480/1080606192: <unowned>
    Waiting to be notified:
    "main" (0x80eb190)
    <unknown key> (0x0x412dce0c): <unowned>
    Waiting to be notified:
    "Async Garbage Collector" (0x412dce0c)
    oracle.ewt.lwAWT.LWChoice@1079812040/1080591384: owner "main" (0x80eb190, 2 entries)
    sun.awt.motif.MToolkit@1079715432/1080130112: owner "AWT-Motif" (0x41890e0c, 0 entries)
    Waiting to be notified:
    "AWT-Input" (0x4186fe0c)
    java.awt.EventQueue@1079715376/1080130376: owner "AWT-EventQueue-0" (0x41835e0c, 1 entry)
    oracle.ewt.MultiUIDefaults@1079748416/1080283560: owner "main" (0x80eb190, 1 entry)
    oracle.ewt.HashTableDefaults@1079745008/1080268568: owner "main" (0x80eb190, 1 entry)
    Registered Monitor Dump:
    Thread queue lock: <unowned>
    Name and type hash table lock: <unowned>
    String intern lock: <unowned>
    JNI pinning lock: <unowned>
    JNI global reference lock: <unowned>
    BinClass lock: <unowned>
    Class loading lock: <unowned>
    Java stack lock: <unowned>
    Code rewrite lock: <unowned>
    Heap lock: <unowned>
    Has finalization queue lock: <unowned>
    Finalize me queue lock: <unowned>
    Waiting to be notified:
    "Finalizer thread" (0x412fde0c)
    Dynamic loading lock: <unowned>
    Monitor IO lock: <unowned>
    Child death monitor: <unowned>
    Event monitor: <unowned>
    I/O monitor: <unowned>
    Alarm monitor: <unowned>
    Waiting to be notified:
    "Clock" (0x4129ae0c)
    Monitor registry: owner "AWT-EventQueue-0" (0x41835e0c, 1 entry)
    Thread Alarm Q:
    sys_thread_t 0x412dce0c [Timeout in 831 ms]
    ./netasst: line 110: 1728 Killed $JRE -classpath $CLASSPATH oracle.net.asst.container.NetApplication oracle.net.asst.container.NetApplication
    [1]+ Exit 137 ./netasst
    Thank You
    JailBreak

    A have installed Oracle 8.1.5 on HP_UX 11.00 - 32 bit environment
    I want to install/upgrade to Oracle 8.1.7 (64-bit)
    1. Is there any problem with this aspect ? (Oracle 8.1.7. 64-bit on HP_UX 32 bit)
    2. I need an advice regarding <new install> vs. <upgrading> ! I'm not sure if all operating system requirements are met (patch releases)
    3. What are the risk of upgrading ?

  • Oracle 9i certification v/s 11g certification

    i am planning for OCP. but i have a dillemma about the certification in the different versions of the oracle database. i want to knowif there is a difference in 9i certification and 11g certification. If i do certification in 9i would it have the same value as the 11g one. As the 11g is an upgraded version of oracle so would it affect if i do certification in 9i. Thanks in advance for your help..

    user8647286 wrote:
    i am planning for OCP. but i have a dillemma about the certification in the different versions of the oracle database. i want to knowif there is a difference in 9i certification and 11g certification. If i do certification in 9i would it have the same value as the 11g one. As the 11g is an upgraded version of oracle so would it affect if i do certification in 9i. Thanks in advance for your help..Hi and welcome to the forum
    It depends on you. You should know that 9i is not supported any more. However, to have more certifications and learn get more information about some aspects of Oracle (For example Performance Tuning and etc.) you can start from 9i. It is 4 exams. I did the same. First of all I wasn't thinking about passing 9i exams, so passed 10g exams. Then I realized that 9i exams has a big value, thus prepared for 9i exams and passed them one by one. No, I can just give one exam to have 11g OCP certification
    You can directly start from 11g and become 11g OCP
    You can be 10g OCP and upgrade to 11gOCP by passing only one exam
    You can pass all 9i exams and then pass only two exams to have 10g and 11g OCP
    The choice depends on you
    Good Luck
    P.S. For the next questions related to certification, you can post your question directly unde specific [Certification forum|http://forums.oracle.com/forums/forum.jspa?forumID=459]

  • Oracle VM Server for SPARC Management Platforms

    Upon doing some nominal research, I see that the Oracle VM for x86 platform is significantly more robust (at least at first glance) with regards to migrations/interface/etc. Where is the equivalent of Oracle VM Manager for SPARC? Is the Oracle Enterprise Manager with Virtualization Managment pack the tool that most people are using? Our virtualization offering, centers around the market share leader with regards to x86, at least at current. We would like to boost our product line with a similar service built on SPARC but it seems as if the product is too young to do that? I'm hoping that I'm wrong and just haven't found the right documentation. I'm also trying to get an appointment set up with the sales team to discuss.

    It's true there does seem to be a wide gap in the UI aspect of Oracle VM for SPARC vs. Oracle VM x86. Personally I like the UI for the x86 platform better than the OEM 11g with Ops Center plugin for LDoms. However, I believe both UIs lack some robustness. In our case, we currently do not use a UI (for many reasons, mainly bugs and lack of certain CLI functionality). In the SPARC arena, it is extremely simple to script everything for the Oracle VM SPARC product (including HA scenarios). Once we build out the infrastructure, almost everything we do (provisioning, reporting, decommissioning) is done via simple perl scripting which is the power of not having a UI. However, a better UI for Oracle VM for SPARC is desirable for managing multiple environments/groupings, etc..

  • Any JDeveloper tutorial suggestions for Java/OOP newbie

    I know SQL and basics of OOP. Have Oracle 10g and JDev installed. Got up to Chapter 4 of the on-line JJavaEE tutorial ( http://download-west.oracle.com/otndocs/products/jdev/10131/JavaEE_tutorial.pdf ), but then got lost after that. Too complex of an example app and not enough explainations of WHY the steps were to be taken in the tutorial. Anyone know of a SIMPLE tutorial that would be good to use with JDeveloper?
    Paul Peterson

    There is a bunch of tutorials linked from the JDeveloper home page on OTN: http://oracle.com/technology/jdev
    I would suggest to start with the following 3:
    Get to know the IDE:
    http://www.oracle.com/technology/obe/obe1013jdev/10131/introide/introjdevide.htm
    Get to know ADF:
    http://www.oracle.com/technology/obe/obe1013jdev/10131/masterdetail_adf_bc/master-detail_pagewith_adf_bc.htm
    Get deeper into ADF:
    http://www.oracle.com/technology/obe/ADFBC_tutorial_1013/10131/index.htm
    But you should also check all the rest there.

  • What is the required educational background to have a career an oracle financial functional consultant ?

    which university degree is better to start as an oracle financials functional consultant ? Accounting or computer scince

    Hi
    You need to gain knowledge on Oracle Financial Application functional aspects, which Oracle provides. Link is
    http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=3
    Shanks

  • Oracle + SSDs

    Hi Friends
    I'm running oracle 11.2.0.3.0 on windows environment.
    We need to change our server that has began too old to attend our needs
    We're planning to run a SSD raid 5 for improve performance. Even though raid 5 is not the best solution for HDDs, it would be faster enough to even perform better than 8 HDDs on raid 10.
    Do you guys already run Oracle over SSDs RAID ?
    What about the performance on writting?
    What about the lifecycle of SSDs that are quite less than HDDs? I've heard from the vender that its about 6 years....
    Can we share experiences on that?
    Tks a lot

    In my opinion, it is still a bleeding-edge technology. For my purposes, I avoid bleeding edge. Your purposes may be different. But you see, asking who's using it in production doesn't get much actual response. You have some amount of control over how interesting are the times you live in. The danger lies in making decisions based on what the vendors are selling, rather than your database needs. I can't see that much changes over a year, certainly in not how Oracle writes redo (although it has changed for exadata, the question becomes how long until the ability to [url http://structureddata.org/2011/10/12/exadata-smart-flash-logging-explained/]parallel write and only care about the fastest device is allowed to the rest of the world). I think it is hard to predict whether the self-tuning aspects of Oracle will handle these oddly fast devices appropriately, and if there are issues there, there could be some lag time before enough people complain that Oracle deals with it. Of course, they may be way ahead of me there, they aren't going to be completely reactive with a new version coming out, perhaps the developers got to play with new toys.
    The EMC device someone mentioned sounds pretty cool, although I still have bitter memories of HP Autoraid moving stuff around inappropriately.
    Of course the space shuttle was cool too. Note that the US is now dependent on big dumb Russian rockets.

  • Comparison between Oracle Forms and HTML DB

    Something that has always puzzled me...
    What is the difference between Oracle Forms 10g and HTML DB from a functionality perspective?
    http://www.oracle.com/technology/products/forms/index.html
    The underlying architecture, technology used, etc might be different, but from the user's point of view, dont they both do pretty much the same thing?
    Why did Oracle take the time & effort to invest in building HTML DB from the ground up (with its mod_plsql, webdb, etc earlier pedigree) instead of just investing in Oracle Forms which has a well-established history, customer base?
    Thanks

    This is purely a layman's perspective, but after using Developer Forms 10g intensively for about 9 months, and now just recently getting into HTML DB, my opinion is this:
    HTML DB is really really great for 'quick and dirty' forms and reports deployment when there's not a lot of validation to be done. Not to say you can't do any kind of validation, I just personally don't find it intuitively easy to implement after using Developer forms so much. So far doing the layout has been hard for me, as I'm used to the 'drag and drop' aspect of Oracle Forms, but once you have your layout set, it pretty much takes care of resizing itself when your application is viewed on various screen sizes and resolutions.
    Developer forms has been, for me, way easier to use to accomplish all the validations I need using PL/SQL (you can use java, too, but I haven't learned enough java yet to do that). However, it's more demanding to deploy. You have your application server to maintain, you have to copy over your forms modules, your menu modules, your library modules, make sure everything is compiled properly so your form doesn't crash when someone navigates from one field to another, etc. Also, from a dynamic layout perspective, it's a little harder to design for various screen sizes, resolutions, etc. The html in HTML DB takes care of that for you.
    So basically I'm finding that each technology fills a certain niche better than the other. The fun is in trying which technology fits with which niche.

  • Creating Objects

    Hello-
    I have created an NOT INSTANTIABLE NOT FINAL object "segment_t" (as what would be called an abstract base type in C++). I have created an object UNDER the segment_t type named phone_t which will create a phone segment. Everything works and life is good!
    But, alas, when I modify the segment_t package specification (segment.pks) file and attempt to run/compile it, I get a message telling me that Oracle will not update/replace a TYPE which have TYPE or TABLE dependencies. Life is not as good. I have tried to DROP phone_t, and DROP TYPE phone_t to no avail.
    So, (1) how do I get rid of the dependencies so I can remake the base class specification and (2) is there anything akin to "make" from the UNIX world to do this for me? If not, I suspect a will need to write a script file to drop all dependencies and make all of the segments in order (there are over 40 segment types in all).
    Thanks for your help.
    --greg
    Running Oracle 9.2 on an HP-9000 UNIX system.

    Congratuations: you have run into possibly the most annoying aspect of Oracle's object implementation (although not supporting private attributes or functions becomes more annoying when we try to actually build a working app out of objects).
    You will have to drop all the dependent objects in order to create or replace the base objects. The reason for this is that object DDL is the same as table DDL (we cannot drop the parent table in a foreign key relationship whilst the constraint's still in force) rather than the procedural ddl that might seem more appropriate.
    So building a script (or script of scripts) to do this is a darn good idea. There is no official Oracle equivalent of make but many people like Ant (which is an open source java variant of make with added XML configuration files, which presses so many fashionable buttons it makes geeks drool).
    I don't know why DROP TYPE phone_t; doesn't work. It ought to (see below). What error message do you get?
    Cheers, APC
    SQL> CREATE TYPE segment_t AS OBJECT (col1 number) NOT INSTANTIABLE NOT FINAL;
      2  /
    Type created.
    SQL> CREATE TYPE phone_t UNDER segment_t ();
      2  /
    Type created.
    SQL> DROP TYPE phone_t
      2  /
    Type dropped.
    SQL> CREATE OR REPLACE TYPE segment_t AS OBJECT (col1 number
      2  , MEMBER FUNCTION get RETURN number) NOT INSTANTIABLE NOT FINAL;
      3  /
    Type created.
    SQL> CREATE OR REPLACE TYPE BODY segment_t AS
      2      MEMBER FUNCTION get RETURN number IS
      3      BEGIN
      4          RETURN 0;
      5      END get;
      6  END;
      7  /
    Type body created.
    SQL> CREATE OR REPLACE TYPE phone_t UNDER segment_t (
      2  OVERRIDING MEMBER FUNCTION get RETURN number);
      3  /
    Type created.
    SQL> CREATE OR REPLACE TYPE BODY phone_t AS
      2      OVERRIDING MEMBER FUNCTION get RETURN number IS
      3      BEGIN
      4          RETURN self.col1;
      5      END get;
      6  END;
      7  /
    Type body created.
    SQL> DECLARE
      2      o phone_t;
      3  BEGIN
      4    o := phone_t(8989);
      5    dbms_output.put_line(o.get);
      6  END;
      7  /
    8989                                                                           
    PL/SQL procedure successfully completed.
    SQL> spool off

  • Substance LAF displaying problem

    I&acute;m having problems using Substance LookAndFeel. At the start of my app everything goes well, I can switch to other JFrames and everything fine. When I access one JFrame that contains a tabbedpane with two panels I can see the first panel correctly, but when I change (make click) in the second panel it doesn't show it, only if I move the mouse pointer across the panels' space, the objects (JComboBoxes, JTextFields, JTables, etc...) start appearing very very slowly, and sometimes they don't appear at all.
    I hope somebody understand this and could help me... Thanks in advance!
    Here is the exception given:
    Exception in thread "AWT-EventQueue-1" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
    at org.jvnet.substance.SubstanceDefaultTableCellRenderer$BooleanRenderer.getTableCellRendererComponent(SubstanceDefaultTableCellRenderer.java:107)
    at javax.swing.JTable.prepareRenderer(JTable.java:5670)
    at org.jvnet.substance.SubstanceTableUI.paintCell(SubstanceTableUI.java:1015)
    at org.jvnet.substance.SubstanceTableUI.paintCells(SubstanceTableUI.java:694)
    at org.jvnet.substance.SubstanceTableUI.paint(SubstanceTableUI.java:561)
    at org.jvnet.substance.SubstanceTableUI.__org__jvnet__substance__SubstanceTableUI__update(SubstanceTableUI.java:2595)
    at org.jvnet.substance.SubstanceTableUI.update(SubstanceTableUI.java)
    at javax.swing.JComponent.paintComponent(JComponent.java:763)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JViewport.paint(JViewport.java:747)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
    at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:723)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at controldel.PopUpEventQueue.dispatchEvent(PopUpEventQueue.java:53)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

    If this is Substance-specific, please file a bug or post a forum message on the project site.Considering the fact that the OP has marked the thread as 'Answered', it appears that there was no problem in Substance LAF. I guess, there was some simple problem in table model which he corrected and marked this thread as answered. @OP: Can you confirm this. It would help us.
    Kirill (Substance dev)So, you are on Sun (oops.. Oracle ;-) forums too. I just wanted to tell you that I love Substance LAF and I am your fan. Keep up the good work, keep improving Substance LAF. I also liked your 'Flamingo project', though I don't know what is its status now... :-)
    Thanks!

  • PROBLEMS WITH APPLICATION - APEX 3.2

    Hi Experts, we have an application that have the next features:
    - Mounted on Apex 3.2 Embedded PL/SQL Gateway
    - Oracle 10.2 on a SunOS 5.10
    - The users access the application with Microsoft Internet Explorer
    Over the past few weeks we are having the following problems:
    - Several attempts to login
    - Lost of connection when working with the app
    - On some ocassions the app get's lazy
    To try to encapsulate the main cause of the problem I have to monitor several aspects like:
    - Network
    - User Web Browser
    - Data Base Server
    - Data Base Instance
    I need your help in order to determine the best way to monitor the Data Base, for example: Make sure that the Apex is working properly, that http Embedded is ok ...etc. What aspects regarding Oracle Application Express I need to ensure so the application is OK and the issues could be for networking, all kind of scripts or commands will be very usefull.

    About the Apex Activity the logs shows normal behavior, the database server has enough resources to support the processes.
    When Apex was installed on the server, looking the documentation ... About Choosing an HTTP Server ... two options available, Oracle HTTP Server and Mod_plsql and Embedded PL/SQL Gateway, the choice was Embedded PL/SQL Gateway because is all in the database server and nothing additional has to be installed.
    According to this information how can I check the status of the 8080 port ??? and how can I check the process related to it ????
    Regards,
    Jesus.

Maybe you are looking for

  • Lost the 2nd install disk for my imac....

    ....but will the the Common Media disk of my Mac Book Pro serve the same purpose? I'm hoping that this would be the case: can anyone shed any light on this please, because I need to reinstall the OS on my imac ASAP. Looked everywhere and simply canno

  • Statement x Commit

    Hi all, I have the following situation and I don't know what JDBC actually does: - conn.setAutoCommit( false ); - A Statement is created and an update is executed on that Statement object - That statement is closed and destroyed ( = null ) - conn.com

  • Query of queries case sensitive

    Hi, I've a question regarding this issue.  I am pulling data from an xml file and dump that data into query of queries then output them.  The problem is when I try to order the query ASC, the upper will be top and the lower will be on the bottom.  Is

  • How do you send movies back to iCloud

    How do you send movies back to iCloud after watching them

  • Magnificat​ion icon in taskbar

    I am not great with computers!  in the lower right side of my screen in Taskbar (?) there was an icon to change magnification...it has dissapeared and I do not know how to put in back...HELP!!!  Thanks This question was solved. View Solution.