Use of goto exception in forms

Hi,
I wonder if anybody can tell me how to GOto exception where the exception is a user-defined one, in forms 6i.
Dipin

Hi Dipin:
EXCEPTION_INIT pragma: This is an instruction to the compile that instructs it to associate a name with an internal error code.
Following example from "ORACLE PL/SQL" book:
The following example, I declare and associate an exception for this error:
ORA-2292 violated integrity constraint (OWNER.CONSTRAINT)
child record found
DECLARE
MY_EXCEPTION EXCEPTION;
PRAGMA EXCEPTION_INIT(MY_EXCEPTION, -2292);
BEGIN
DELETE FROM COMPANY WHERE COMPANY_ID = 'SOME_ID';
EXCEPTION
WHEN MY_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('Please delete employees for'
|| ' company first.');
END;
Note that in the example, eventhough I declared the exception, I did not explicitly raised it, this happened because of the EXCEPTION_INIT.
Usage of GOTO:
Syntax: GOTO label_name
EXAMPLE
FUNCTION GET_SOME_DESC(P_CODE IN CHAR) RETURN VARCHAR2 IS
BEGIN
IF P_CODE IS NULL THEN
GOTO no_code_label;
ELSIF P_CODE = 'S' THEN
RETURN 'Simple';
ELSIF P_CODE = 'C' THEN
RETURN 'Complicated';
END IF;
<<no_code_label>>
RETURN NULL;
END;
That should give you an answer for GOTO usage, however, it is my opinion based on experience that GOTO usage makes for more problems than it solves. You should always be able to design your code in a way that makes GOTO unneccessary.
Hope this helps,
Thomas

Similar Messages

  • How to use a custom.dll in forms 6i

    Hi,
    i have made a small dll using a icon-making software, that software has made a .dll of the icon I made in that software
    Now i want to use that .dll in my forms 6i. (client/server)
    the dll contains only one icon named 'Icon1'
    would any one please tell me how can I call that icon in that .dll to view in my forms button at run time..
    is this possible..??
    just for clarification, for security reasons I am not using the .ico of that icon diect from hardisk in my button thats why i made a .dll of that so that the user may not be able copy my icon
    thanks in advance,

    Here is the doc
    Doc ID:      Note:99824.1
    Subject:      How to Display User-Defined Cursors and Icons in Forms
    Type:      BULLETIN
    Status:      PUBLISHED
         Content Type:      TEXT/X-HTML
    Creation Date:      23-FEB-2000
    Last Revision Date:      30-OCT-2002
    PURPOSE
    The purpose of this note is to explain how to display customized
    cursors and icons in Forms 6.0 on Windows platform (32 bits).
    Assumption is made that resources are stored in a DLL, which is
    available in the path at runtime.
    It is mandatory to store the cursor in a DLL to make it available
    with Forms: .cur cursor files cannot be directly loaded from the
    file system.
    On the other hand, icons .cio files can directly be read from the
    filesystem by Forms Runtime. However we will focus on icons which are
    stored in a DLL.
    The article is divided into two main parts:
    - how to build a resource-only DLL with Visual C++ 5.0
    - how to display the cursor and the icon in Forms 6.0
    SCOPE & APPLICATION
    The intended audience needs to have basic knowledge in Forms Builder
    and also in Visual C++ (or any other Win32 compiler).
    A typical environment is Forms 6.0, Visual C++ 5.0 and Windows NT.
    WHAT IS A RESOURCE ?
    A resource can be considered as some extra binary information that can
    be added to an executable file. Windows resources are for example icons,
    cursors, menus, dialog boxes, keyboard-accelerator tables and much more.
    Resources are usually stored in a .rc file, which is compiled by the
    resource compiler in order to provide a .res file. These compiled resources
    can then be appended to a binary executable file or a DLL.
    For instance, Visual C++ 5.0 includes a resource editor which allows you to
    draw your icons and your cursors, and store them in a resource file.
    Part I - BUILDING A RESOURCE-ONLY DLL
    Consider the following setup:
    - myicon.ico: icon file
    - mycur.cur: cursor file
    The objective of this section is to build a DLL called proj.dll which
    contains both the icon and the cursor. This operation requires several steps.
    Step 1: Create a project
    In Visual C++, select menu File->New... In the dialog box, choose the Projects
    tab and pick "Win32 Dynamic Link-Library". Fill the project name (e.g. Proj)
    and the location (e.g. c:\MyProjects). Check 'Create new workspace', check
    Win32 as target platform and click on OK.
    This creates a directory c:\MyProjects\Proj, where necessary .rc and .cpp
    files can be stored. Place the .ico and .cur files in this directory too.
    Step 2: Add a resource file to the project
    Create a proj.rc file, edit it and make sure it contains the following lines:
    testcur CURSOR DISCARDABLE "mycur.cur"
    testico ICON DISCARDABLE "myicon.ico"
    This is the resource file. Using the Project->Add to Project->Files... menu,
    select the proj.rc file and add it to the current project.
    Step 3: Add a dummy C++ file to the project
    Create a proj.cpp file, edit it and make sure it contains the following lines:
    #include <windows.h>
    extern "C"
    BOOL WINAPI DllMain (HINSTANCE hInstance, DWORD dwReason, LPVOID)
         return 1;
    This creates an entry-point in the DLL. This function does nothing but is mandatory
    to have a DLL after the build of the project.
    Add the proj.cpp file to the project as described in Step 2.
    Step 4: Choose the target type
    At this moment, you can choose if you need a 'DEBUG' or a 'RELEASE' flavour of
    the DLL. As there is not much to debug in this DLL, the 'RELEASE' flavour is
    recommended. Furthermore, it is much more compact.
    Using the Build->Set Active Configuration... menu, choose the Proj - Win32 Release
    as the active configuration.
    Step 5: Build the DLL
    Now, it is time to compile the resource file, compile the C++ file, link both
    together and build the proj.dll DLL. This operation is performed by using the
    Build->Rebuild All menu.
    After a short time, you should see "Proj.dll - 0 error(s), 0 warning(s)" in
    the Visual C++ message window. This means that the DLL was built successfully.
    Step 6: Place the DLL in the appropriate directory
    The proj.dll file is currently located under the c:\MyProjects\Proj\Release
    directory. Copy it in an appropriate directory which is reachable in the
    runtime environment path.
    Part II - USING THE ICON AND CURSOR IN THE FORM
    At this stage the DLL is created and can be used in the Form application.
    Again, this is a multi-step procedure.
    Step 1: Load the DLL in the Forms Runtime environment
    Assuming the proj.dll DLL is placed in a directory pointed by the
    PATH environment variable, below is the piece of PL/SQL code which loads
    the DLL into the Forms Runtime environment. This code can be placed in the
    WHEN-NEW-FORM-INSTANCE trigger for example:
    declare
         hDLL     ORA_FFI.LIBHANDLETYPE;
    begin break;
         --Preload the DLL so the cursor and Icons can be found.
         -- I'm assuming the DLL is in the path here
         hDLL := ORA_FFI.LOAD_LIBRARY(NULL,'proj.dll');
    exception
         when ORA_FFI.FFI_ERROR then
              for i in 1..TOOL_ERR.NERRORS LOOP
                   message(TOOL_ERR.MESSAGE(i));
              end LOOP;
    end;
    Step 2: Display the cursor stored in the DLL
    Now, you may want to change the cursor when the user clicks on
    a specific button. This is an example of code that could be set
    in the WHEN-BUTTON-PRESSED trigger:
    set_application_property(CURSOR_STYLE,'<proj>TESTCUR');
    <proj> refers to the proj.dll. Please note the < and > signs
    which are mandatory there. TESTCUR is the name of the cursor resource
    as defined in the proj.rc file.
    Step 3: Display the icon stored in the DLL
    You may also want to change the icon of an iconic button after
    some specific end-user action. The appropriate code for that is:
    set_item_property('IBUTTON',ICON_NAME,'<proj>TESTICO');
    IBUTTON is a PushButton, with the Iconic property set to Yes.
    TESTICO is the name of the icon resource as defined in the proj.rc file.
    Asim.

  • How to use java programe in oracle form

    Hello Expert,
    My Config is : -
    Forms [32 Bit] Version 11.1.1.3.0 (Production)
    Jdeveloper - 10.1.3
    I want to use the java programe in form builder. I create the one java class in Jdeveloper -
    package demo;
    import java.net.InetAddress;
    import java.net.NetworkInterface;
    import java.net.SocketException;
    import java.net.UnknownHostException;
    public class get_info{
       public static void main(String[] args){
       ch_add();
       public static void ch_add()
      InetAddress ip;
      try { 
      ip = InetAddress.getLocalHost();
      /*System.out.println("Current IP address : " + ip.getHostAddress());  */
      NetworkInterface network = NetworkInterface.getByInetAddress(ip);
      byte[] mac = network.getHardwareAddress();
      /*System.out.print("Current MAC address : ");   */
      StringBuilder sb = new StringBuilder();            
      for (int i = 0; i < mac.length; i++)
      sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
      System.out.println(sb.toString()); 
      } catch (UnknownHostException e) {
      e.printStackTrace();
      } catch (SocketException e){
      e.printStackTrace();
    and this into Formweb.cfg and default.env and also add into Form_class_path. After that i import this java into forms.
    Code genertated -
    PACKAGE BODY get_info IS
      -- DO NOT EDIT THIS FILE - it is machine generated!
      args   JNI.ARGLIST;
      -- Constructor for signature ()V
      FUNCTION new RETURN ORA_JAVA.JOBJECT IS
      BEGIN
        args := NULL;
        RETURN (JNI.NEW_OBJECT('demo/get_info', '()V', args));
      END;
      -- Method: main ([Ljava/lang/String;)V
      PROCEDURE main(
        a0    ORA_JAVA.JARRAY) IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(1);
        JNI.ADD_OBJECT_ARG(args, a0, '[Ljava/lang/String;');
        JNI.CALL_VOID_METHOD(TRUE, NULL, 'demo/get_info', 'main', '([Ljava/lang/String;)V', args);
      END;
      -- Method: ch_add ()V
      PROCEDURE ch_add IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(TRUE, NULL, 'demo/get_info', 'ch_add', '()V', args);
      END;
      -- Method: wait (J)V
      PROCEDURE wait(
        obj   ORA_JAVA.JOBJECT,
        a0    NUMBER) IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(1);
        JNI.ADD_LONG_ARG(args, a0);
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'wait', '(J)V', args);
      END;
      -- Method: wait ()V
      PROCEDURE wait(
        obj   ORA_JAVA.JOBJECT) IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'wait', '()V', args);
      END;
      -- Method: wait (JI)V
      PROCEDURE wait(
        obj   ORA_JAVA.JOBJECT,
        a0    NUMBER,
        a1    NUMBER) IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(2);
        JNI.ADD_LONG_ARG(args, a0);
        JNI.ADD_INT_ARG(args, a1);
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'wait', '(JI)V', args);
      END;
      -- Method: equals (Ljava/lang/Object;)Z
      FUNCTION equals(
        obj   ORA_JAVA.JOBJECT,
        a0    ORA_JAVA.JOBJECT) RETURN BOOLEAN IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(1);
        JNI.ADD_OBJECT_ARG(args, a0, 'java/lang/Object');
        RETURN JNI.CALL_BOOLEAN_METHOD(FALSE, obj, 'demo/get_info', 'equals', '(Ljava/lang/Object;)Z', args);
      END;
      -- Method: toString ()Ljava/lang/String;
      FUNCTION toString(
        obj   ORA_JAVA.JOBJECT) RETURN VARCHAR2 IS
      BEGIN
        args := NULL;
        RETURN JNI.CALL_STRING_METHOD(FALSE, obj, 'demo/get_info', 'toString', '()Ljava/lang/String;', args);
      END;
      -- Method: hashCode ()I
      FUNCTION hashCode(
        obj   ORA_JAVA.JOBJECT) RETURN NUMBER IS
      BEGIN
        args := NULL;
        RETURN JNI.CALL_INT_METHOD(FALSE, obj, 'demo/get_info', 'hashCode', '()I', args);
      END;
      -- Method: getClass ()Ljava/lang/Class;
      FUNCTION getClass(
        obj   ORA_JAVA.JOBJECT) RETURN ORA_JAVA.JOBJECT IS
      BEGIN
        args := NULL;
        RETURN JNI.CALL_OBJECT_METHOD(FALSE, obj, 'demo/get_info', 'getClass', '()Ljava/lang/Class;', args);
      END;
      -- Method: notify ()V
      PROCEDURE notify(
        obj   ORA_JAVA.JOBJECT) IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'notify', '()V', args);
      END;
      -- Method: notifyAll ()V
      PROCEDURE notifyAll(
        obj   ORA_JAVA.JOBJECT) IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'notifyAll', '()V', args);
      END;
    BEGIN
      NULL;
    END;
    Now i want to call the o/p of Java programe in oracle text item. Please help me. It's very urgent. I am not good in Java.

    Sir i use java importer.
    PACKAGE BODY get_info IS
      -- DO NOT EDIT THIS FILE - it is machine generated!
      args   JNI.ARGLIST;
      -- Constructor for signature ()V
      FUNCTION new RETURN ORA_JAVA.JOBJECT IS
      BEGIN
        args := NULL;
        RETURN (JNI.NEW_OBJECT('demo/get_info', '()V', args));
      END;
      -- Method: main ([Ljava/lang/String;)V
      PROCEDURE main(
        a0    ORA_JAVA.JARRAY) IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(1);
        JNI.ADD_OBJECT_ARG(args, a0, '[Ljava/lang/String;');
        JNI.CALL_VOID_METHOD(TRUE, NULL, 'demo/get_info', 'main', '([Ljava/lang/String;)V', args);
      END;
      -- Method: ch_add ()V
      PROCEDURE ch_add IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(TRUE, NULL, 'demo/get_info', 'ch_add', '()V', args);
      END;
      -- Method: wait (J)V
      PROCEDURE wait(
        obj   ORA_JAVA.JOBJECT,
        a0    NUMBER) IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(1);
        JNI.ADD_LONG_ARG(args, a0);
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'wait', '(J)V', args);
      END;
      -- Method: wait ()V
      PROCEDURE wait(
        obj   ORA_JAVA.JOBJECT) IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'wait', '()V', args);
      END;
      -- Method: wait (JI)V
      PROCEDURE wait(
        obj   ORA_JAVA.JOBJECT,
        a0    NUMBER,
        a1    NUMBER) IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(2);
        JNI.ADD_LONG_ARG(args, a0);
        JNI.ADD_INT_ARG(args, a1);
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'wait', '(JI)V', args);
      END;
      -- Method: equals (Ljava/lang/Object;)Z
      FUNCTION equals(
        obj   ORA_JAVA.JOBJECT,
        a0    ORA_JAVA.JOBJECT) RETURN BOOLEAN IS
      BEGIN
        args := JNI.CREATE_ARG_LIST(1);
        JNI.ADD_OBJECT_ARG(args, a0, 'java/lang/Object');
        RETURN JNI.CALL_BOOLEAN_METHOD(FALSE, obj, 'demo/get_info', 'equals', '(Ljava/lang/Object;)Z', args);
      END;
      -- Method: toString ()Ljava/lang/String;
      FUNCTION toString(
        obj   ORA_JAVA.JOBJECT) RETURN VARCHAR2 IS
      BEGIN
        args := NULL;
        RETURN JNI.CALL_STRING_METHOD(FALSE, obj, 'demo/get_info', 'toString', '()Ljava/lang/String;', args);
      END;
      -- Method: hashCode ()I
      FUNCTION hashCode(
        obj   ORA_JAVA.JOBJECT) RETURN NUMBER IS
      BEGIN
        args := NULL;
        RETURN JNI.CALL_INT_METHOD(FALSE, obj, 'demo/get_info', 'hashCode', '()I', args);
      END;
      -- Method: getClass ()Ljava/lang/Class;
      FUNCTION getClass(
        obj   ORA_JAVA.JOBJECT) RETURN ORA_JAVA.JOBJECT IS
      BEGIN
        args := NULL;
        RETURN JNI.CALL_OBJECT_METHOD(FALSE, obj, 'demo/get_info', 'getClass', '()Ljava/lang/Class;', args);
      END;
      -- Method: notify ()V
      PROCEDURE notify(
        obj   ORA_JAVA.JOBJECT) IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'notify', '()V', args);
      END;
      -- Method: notifyAll ()V
      PROCEDURE notifyAll(
        obj   ORA_JAVA.JOBJECT) IS
      BEGIN
        args := NULL;
        JNI.CALL_VOID_METHOD(FALSE, obj, 'demo/get_info', 'notifyAll', '()V', args);
      END;
    BEGIN
      NULL;
    END;
    I read both document which is given by you.
    Basicaly i don't know how to call java program in form builder.
    I wrote this code on When-button-pressed
    DECLARE
    jo ora_java.jobject;
    rv varchar2(1500);
    ex ora_java.jobject;
    BEGIN
    jo := get_info.new;
    rv:=get_info.ch_add(jo );
    EXCEPTION
    WHEN ORA_JAVA.JAVA_ERROR then
      message (' Unable to call out to Java, ' ||ORA_JAVA.LAST_ERROR );
      message('');
    WHEN ORA_JAVA.EXCEPTION_THROWN then
      ex := ORA_JAVA.LAST_EXCEPTION;
      message(' Unable to call out to Java ' ||Exception_.toString (ex ) );
      message(' Unable to call out to Java ' ||Exception_.toString (ex ) );
    END;
    No error comes and no output comes. I want the client MAC ID. please guide me where i need to change the code.

  • Using PL/SQL Table in Forms

    Hi,
    I am populating a PL/SQL table by fetching data through a explicit cursor. But when i am accessing the PL/SQL table after population, i am getting a "NO DATA FOUND" error.
    I am attaching the Forms local progam units which have the logic.
    PACKAGE f_get_bike_makers IS
    TYPE prectype_maker_dtls_pll IS RECORD (
    country_code ad_bike_maker_details.abmd_country_code%TYPE,
    country_name table_values.tvs_description%TYPE,
    manu_code ad_bike_maker_details.abmd_manufacturer_code%TYPE,
    maker_name ad_bike_maker_details.abmd_maker_name%TYPE,
    maker_name_kana ad_bike_maker_details.abmd_maker_name_kana%TYPE,
    const_by ad_bike_maker_details.abmd_constructed_by%TYPE,
    const_time ad_bike_maker_details.abmd_construction_time%TYPE,
    update_by ad_bike_maker_details.abmd_updated_by%TYPE,
    update_time ad_bike_maker_details.abmd_updated_time%TYPE
    TYPE ptabtype_maker_dtls_pll IS TABLE OF prectype_maker_dtls_pll
    INDEX BY BINARY_INTEGER;
    FUNCTION f_get_bike_makers_pll RETURN ptabtype_maker_dtls_pll;
    END;
    PACKAGE BODY f_get_bike_makers IS
    FUNCTION f_get_bike_makers_pll
    RETURN ptabtype_maker_dtls_pll
    IS
    CURSOR cur_maker_dtls
    IS
    SELECT abmd.abmd_country_code,
    tvs.tvs_description,
    abmd.abmd_manufacturer_code,
    abmd.abmd_maker_name,
    abmd.abmd_maker_name_kana,
    abmd.abmd_constructed_by,
    abmd.abmd_construction_time,
    abmd.abmd_updated_by,
    abmd.abmd_updated_time
    FROM ad_bike_maker_details abmd,
    table_values tvs
    WHERE abmd.abmd_country_code = tvs.tvs_code
    AND tvs.tvs_tad_code = 'COUNTRIES'
    ORDER BY abmd.abmd_country_code;
    ln_tab_index BINARY_INTEGER := 0;
    ltab_maker_dtls ptabtype_maker_dtls_pll;
    BEGIN
    FOR lcur_maker_dtls IN cur_maker_dtls
    LOOP
    ln_tab_index := ln_tab_index + 1;
    ltab_maker_dtls (ln_tab_index) := lcur_maker_dtls;
    END LOOP;
    RETURN ltab_maker_dtls;
    END f_get_bike_makers_pll;
    END;
    PROCEDURE f_populate_maker_names
    IS
    ltab_maker_dtls f_get_bike_makers.ptabtype_maker_dtls_pll;
    lb_record_group BOOLEAN;
    ln_ltab_maker_dtls_index BINARY_INTEGER;
    BEGIN
    -- read all the vehicle types from table_values
    -- get makers and countries
    ltab_maker_dtls := f_get_bike_makers.f_get_bike_makers_pll ;
    DELETE_GROUP_ROW ('REC_MAKER_NAME', all_rows);
    ln_ltab_maker_dtls_index := ltab_maker_dtls.FIRST;
    begin
    WHILE ln_ltab_maker_dtls_index IS NOT NULL
    LOOP
    lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
    'ABMD_MANUFACTURER_CODE',
    ltab_maker_dtls (ln_ltab_maker_dtls_index).manu_code,
    ln_ltab_maker_dtls_index
    lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
    'ABMD_MAKER_NAME',
    ltab_maker_dtls (ln_ltab_maker_dtls_index).maker_name,
    ln_ltab_maker_dtls_index
    lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
    'COUNTRY_NAME',
    ltab_maker_dtls (ln_ltab_maker_dtls_index).country_name,
    ln_ltab_maker_dtls_index
    lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
    'ABMD_COUNTRY_CODE',
    ltab_maker_dtls (ln_ltab_maker_dtls_index).country_code,
    ln_ltab_maker_dtls_index
    ln_ltab_maker_dtls_index := ltab_maker_dtls.NEXT (ln_ltab_maker_dtls_index);
    end;
    END LOOP;
    exception when no_data_found then
    message('ln_ltab_maker_dtls_index :'||ln_ltab_maker_dtls_index);
    message(' ');
    end;
    ltab_maker_dtls.DELETE;
    END;
    SQL> desc ad_bike_maker_details
    Name Null? Type
    ABMD_COUNTRY_CODE NOT NULL VARCHAR2(2)
    ABMD_MANUFACTURER_CODE NOT NULL VARCHAR2(2)
    ABMD_MAKER_NAME VARCHAR2(60)
    ABMD_MAKER_NAME_KANA VARCHAR2(60)
    ABMD_CONSTRUCTED_BY NOT NULL VARCHAR2(20)
    ABMD_CONSTRUCTION_TIME NOT NULL DATE
    ABMD_UPDATED_BY VARCHAR2(20)
    ABMD_UPDATED_TIME DATE
    SQL> desc table_values
    Name Null? Type
    TVS_TAD_CODE NOT NULL VARCHAR2(15)
    TVS_CODE NOT NULL VARCHAR2(15)
    TVS_DESCRIPTION NOT NULL VARCHAR2(70)
    Oracle Database Version
    =======================
    Oracle8 Enterprise Edition Release 8.0.6.1.0 - Production
    PL/SQL Release 8.0.6.1.0 - Production
    Forms Version
    ==============
    Forms [32 Bit] Version 5.0.6.8.0 (Production)
    PL/SQL Version 2.3.4.0.0 (Production)
    Please do let know what could be the possible source of error.
    Thanks in advance.
    Nitin

    But we have to use the PL/SQL table as per our design standards.
    We are implementing the population logic of the PL/SQL table in the database as a
    package function. We are then accessing the PL/SQL table in Forms to populate the record group.It is curious that you would have such a unique requirement -- something that might make forms run a tiny bit faster -- yet you are using an ancient version of Forms.
    Also the "NO DATA FOUND" error is not raised everytime the PL/SQL table is accessed.
    What could be the reason for this erratic behaviour?I wonder if there may be a bug in SQL Net in the Oracle-to-Forms communication where PL/SQL tables are passed as out parameters. I know there is one in Web Forms 6 (6.0.8.19.1) when passing a pl/sql table from the form to Oracle -- I had to write the pl/sql table to a database table to get my process to work.

  • Using an unchecked exception to alter flow control inside a class

    Best-practice question:
    Is it wrong to use an unchecked exception in an if-like manner?
    For example, instead of using:
    if (condition) {
    -----------a lot of code-----------------
    } else {
    ----------some more code--------------
    Is it wrong to do it like this?
    try {
    if (!condition) throw new IllegalArgumentException();
    -------------a lot of code---------------
    } catch (IllegalArgumentException e) {
    --------------some more code-----------
    I'm asking because I used this kind of practice recently in a piece of code i wrote (actually i used it to validate an argument I received from a html-form and post an error message in the catch block) and a colleague told me it was bad practice.
    If it IS bad practice, when should you actually use unchecked exceptions like IllegalArgumentException?
    I already posted this question in the newbie forum, but didn't get any answers. Anybody here can explain this to me please?

    It is fine to use IllegalArgumentException, but typically it is used when the code generating the exception and the client who is using the code that generates the exception are two different pieces of code.
    If you were writing some kind of library for others to use. It would make sense to throw this exception out of your library if the user gave you wrong data.
    But you shouldn't use exceptions as normal program logic.

  • Catching authentication exception in form-based authentication

    Hi.
    I have a custom UserManager that implements a simple authentication of username/password.
    The web-application is secured using a form-based login-config in web.xml with a form-login-page and a form-error-page. Both these resources points to the same page (login.jsp).
    I want to present a relevant error message when the user fails to log-in (providing wrong username or password, or there is an exception in the UserManager). As far as I can tell there is no way to handle this in a straight-forward manner: When I throw an exception in the UserManager this exception is swallowed by OC4J and never propagates to the form-error-page specified in web.xml. All I can do is to provide a "default" message on the error-page saying "Failed to login". There is no way to tell if the login failed due to invalid username/password or if the login failed due to an unexpected exception in the UserManager implementation (i.e. SQLException).
    I can go around this by storing the relevant error message in a ThreadLocal variable from the UserManager and retrieve this message from the error jsp page. But this is ugly :)
    Shouldn't the form-error-page receive a Throwable in the exception-object? Or is the behavior in OC4J the "standard" way to handle these issues?
    Best Regards //Anders

    Since no one is replying I'm refreshing the thread with some more info..
    Cut from the Servlet 2.3 Specification (in SRV.12.5.3, Form Based Authentication):
    When a user attempts to access a protected web resource, the container checks the user s authentication.
    If the user is authenticated and possesses authority to access the resource, the requested web resource is activated and a reference to it is returned.
    If the user is not authenticated, all of the following steps occur:
    1. The login form associated with the security constraint is sent to the client and the URL path triggering the authentication is stored by the container.
    2. The user is asked to fill out the form, including the username and password fields.
    3. The client posts the form back to the server.
    4. The container attempts to authenticate the user using the information from the form.
    5. If authentication fails, the error page is returned using either a forward or a redirect, and the status code of the response is set to 401.
    6. If authentication succeeds, the authenticated user s principal is checked to see if it is in an authorized role for accessing the resource.
    7. If the user is authorized, the client is redirected to the resource using the stored URL path.
    The error page sent to a user that is not authenticated contains information about the failure.
    The last sentence could be interpreted as "The container should provide the error page with a valid exception object".
    How is this implemented in other servlet containers - JBoss, Websphere, Weblogic, Orion?
    //Anders

  • I have all of my music on my dad's apple ID (on my Macbook pro and iphone). I want to start using my own apple ID (the one that my iPhone uses for everything except iTunes store) as my iTunes apple ID - how do I do this without losing my old music?

    I have all of my music on my dad's apple ID (on my Macbook pro and iphone). I want to start using my own apple ID (the one that my iPhone uses for everything except iTunes store) as my iTunes apple ID - how do I do this without losing my old music?

    Authorize your computer with your Dad's AppleID.

  • How to use nested tables in adobe form

    Hi All,
    I have to use nested tables in adobe form for table display. I have used Subforms for displaying table data. I have changed accessibility of the subforms. Currently i am able to print print the table correctly if there is single material record in table 1 and single corresponding record in table 2. But the requirement is that i will have multiple lines in table 1 for single material and only one record in table 2.
    EX: form is for Sales order. in line items if the order is for 100 units then we if we have delivered material as 80, 10, 10, then table 1 will have 3 lines for this. Table 2 will always have only 1 corresponding record.
    item--materialdescription-ordered qty--delivered qty--delivery date-price  
    xxx--xxxxxxx-xxxxxxxxx-10080xxxxxxxxxx-xxxx
    10----
    xxxxxxxxxx
    10----
    xxxxxxxxxx
    yyyyyyyyyyyyyyyyyyy------yyyyyyyyyyyyyyyyyyyyy 
    xxxxxx is table 1 and will have multiple lines
    yyyyyy is table 2 and will have only 1 entry for item xxx
    and this group will be repeate as per no of items. table 1 can have any no of lines per item.
    I am currently able to display 1 line for table 1 and 1 line for table 2.
    But how to show multiple lines for table 1 and 1 line for table 2.

    HI,
          Set the body page as flowed and set the tables also flowed.
    go to bodypage>object->subform-->select flowed option.
    I thihnk this will work..if u are getting all the records properly into the tables 1 and 2.
    Thanks,
    Mahdukar

  • I used migration to send photos form my Mac Book to my I Mac now i get an error message "iPhoto can not be opened because of a problem"  Check with the developer to make sure iPhoto works with this version of Max OSX.  You may need to install any availabl

    I used migration to send photos form my Mac Book to my I Mac now i get an error message "iPhoto can not be opened because of a problem"  Check with the developer to make sure iPhoto works with this version of Max OSX.  You may need to install any available updates or reinstall IPhoto.
    I tried installing Iphoto it said it was downloaded successfully. I still get the error messafe, and can not open any photos of program,  any suggestions?

    What version of iPhoto do you have on the Macbook and on the iMac? What systems are you running on the Macbook and on the iMac?
    Does the message only refer to "a problem" or does it specify what it is?
    Happy Holidays

  • How to use a function PIPELINED in Forms 10g?

    Hi guys,
    When I tried to use a function PIPELINED in Forms, I received the message:
    - PL/SQL function called from SQL must return value of legal SQL Type
    FOR rec_dev IN (SELECT *
    FROM TABLE(p1196.f_executa('01-aug-2010', -- pdDataInicial
    '30-aug-2010', -- pdDataFinal
    5, -- pnCodAdm
    NULL, -- pnCdsCod
    NULL, -- pnAdmsSrvCod
    NULL, -- pnAcao
    NULL)))
    LOOP
    vnQtdeEstornos := vnQtdeEstornos + rec_dev.qtde_estornos;
    vnVlrTotalCredito := vnVlrTotalCredito + rec_dev.valor_credito;
    END LOOP;
    Can anyone help me?
    Cris

    You can't. One option would be to wrap your pipelined function in a view, or you could write a stored procedure which returns a strong ref cursor instead.
    cheers

  • Using READ_IMAGE_FILE BUILT-IN IN Forms causes a loss in the  resolution

    Hi All
    Oracle Developer suite 10g, database 11 gr2, windows Platform
    I'm using READ_IMAGE_FILE BUILT-IN in forms builder to read an image and get a good background for the form, but the image displays in the form with a resolution that is less than the actual image resolution.
    Please help

    Francois,
    Sorry, because I don't have any background about java,
    This is the java console output after saving a new record :
    Oracle JInitiator: Version 1.3.1.22
    Using JRE version 1.3.1.22-internal Java HotSpot(TM) Client VM
    User home directory = C:\Documents and Settings\it maniger
    Proxy Configuration: Browser Proxy Configuration
    JAR cache enabled
    Location: C:\Documents and Settings\it maniger\Oracle Jar Cache
    Maximum size: 50 MB
    Compression level: 0
    Loading http://itmanage:8889/forms/java/frmall_jinit.jar from JAR cache
    Loading http://itmanage:8889/forms/java/myappicons.jar from JAR cache
    Loading http://itmanage:8889/forms/java/frmwebutil.jar from JAR cache
    Loading http://itmanage:8889/forms/java/jacob.jar from JAR cache
    Loading http://itmanage:8889/forms/java/handleimage.jar from JAR cache
    Loading http://itmanage:8889/forms/java/classes12.jar from JAR cache
    proxyHost=null
    proxyPort=0
    connectMode=HTTP, native.
    إصدار بريمج Forms هو : 10.1.2.0
    Lecture.bLog=true
    Lecture.bLog=true
    InitConn=jdbc:oracle:thin:@zogotoun-jnq4h6:1521:XE
    InitUser=tutoforms
    InitPwd=tuto
    Clear imge
    Searching JAR for file:///f:\femtosoft\fmst\mainmenu.jpg
    Unable to find file:///f:\femtosoft\fmst\mainmenu.jpg in JAR
    Searching docbase for file:///f:\femtosoft\fmst\mainmenu.jpg
    Constructed URL: file:/f:/femtosoft/fmst/mainmenu.jpg
    Image found in DOCBASE: file:/f:/femtosoft/fmst/mainmenu.jpg
    Start Ecriture()
    Ecriture() : Connect to database
    Ecriture() : error connecting to the database java.security.AccessControlException: access denied (java.net.SocketPermission zogotoun-jnq4h6 resolve)
    Ecriture() : execute query=UPDATE PHOTOS set PHOTO_JAVA = ? where IDENTIFIANT=5
    java.lang.NullPointerException
    Mostafa

  • How to get the context data using java script in interactive forms

    Hi All,
    How to get the context data using java script in interactive forms by adobe,  am using web dynpro java
    thanks.

    Hi venkat,
    Please Refer this link.
      Populating one Drop-Down list from the selection of another Drop-down list
    Thanks,
    Raju.

  • How to use Java Script in Oracle Forms 10g

    Hello,
    Appreciate if anyone could help me using Java Script in Oracle Forms 10g?
    Thanks
    GM

    Thank you for your reply. I was reading on the metalink that we could use the to call the java script from oracle Forms 10g (Doc ID 265863.1)
    Example:
    WEB.SHOW_DOCUMENT ('javascript:void(window.open("http://www.oracle.com","","location=no,toolbar=no,menubar=no,status=no,"));self.close()','_blank');
    I tried it but it did not open the any window as it claims. Am I missing anything? Is there any IE related setting which I need to modify for the above to work?
    Regards
    GM

  • How to use unicode fonts in Oracle forms 10g?

    Hi I am working in forms 10g for quite a long time, the software that I have developed so far are all in English language. Now I have requirements to use Bengali Fonts in Forms 10g. I am facing difficulties doing that. Please reply with help. Thanks
    Hasan Al Mamun

    Check this forum post (though that is for 6i, it would be of helpful for you)
    How to use unicode fonts in Oracle forms 10g?
    -Arun

  • How to use BULK COLLECT in oracle forms

    hi gurus,
    I am using oracle forms
    Forms [32 Bit] Version 10.1.2.0.2 (Production)
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionI wanna use bulk collect from database table lets say <employees>
    while working on database level with collections and records it's working very well for me, but when I try to use that technique on oracle forms it hits me error
    error 591 this feature is not supported in client side programmingI know I can use cursors to loop through the records of oracle tables ,
    but I'm convenient while using collections and arrays
    for example
    Set Serveroutput On
    Declare
          Type Rec_T Is Record (     
           Empid Number ,
           Empname Varchar2(100)
          Type V_R Is Table Of Rec_T Index By Binary_Integer;     
          V_Array V_R;
    Begin
       Select Employee_Id , First_Name
       Bulk Collect
       Into V_Array
          From Employees; 
       For Indx In V_Array.First..V_Array.Last Loop
       Dbms_Output.Put_Line('employees id '||V_Array(Indx).Empid ||'and the name is '||V_Array(Indx).Empname);
       End Loop;      
         End;I wanna use this same way on oracle forms , for certain purposes , please guide me how can I use ...
    thanks...

    For information, you can use and populate a collection within the Forms application without using the BULK COLLECT
    Francoisactually I want to work with arrays , index tables ,
    like
             record_type (variable , variable2);
             type type_name <record_type>  index by binary_integer
            type_variable type_name;
            and in main body of program
            select something
            bulk collect into type_variable
            from any_table;
           loop
                type_variable(indx).variable , type_variable(indx).variable2;
           end loop;
           this is very useful for my logic on which I am working
              like
              type_variable(indx).variable || type_variable(indx-1);
             if it's possible with cursors then how can I use cursor that can fullfill my this logic@Francois
    if it's possible then how can i populate without using bulk collect?
    thanks
    and for others replies: if I can use stored procedures please give me any example..
    thanks

Maybe you are looking for