Event must be declared in Custom.pll

Hello

Calling a function using custom with these code my named (CUSTOM.pll) pll builder(10g) shapes

event (event_name varchar2) procedure is

form_name varchar2 (30): = name_in ('system.current_form');
block_name varchar2 (30): = name_in ('system.cursor_block');
nom_element varchar2 (30): = name_in ('system.cursor_item');

Start

BEGIN

IF (form_name = 'OEXOEORD' AND block_name = 'ORDER' AND event_name = 'WHEN-NEW-FORM-INSTANCE')
-Initialize values global popup is 'n'.
OR (form_name = 'OEXOEORD' AND block_name IN ('COMMAND', 'LINE') AND in('WHEN-VALIDATE-RECORD','OM_PRE_BOOK_EVENT','OM_PRE_ACTION_EVENT') AND (name_in('ORDER.) event_name) PAYMENT_TYPE ") = 'Credit card'))"


THEN

XXtest.EVENT (event_name);

END IF;
END;

end event.

I've done the necessary to the xxtest.pll on the server it side finish compiling and created a xxtest.plx file to the same location. the location of custom.pll.


If I do the compilation side server on custom.pll. The following error occurs

Compile the CUSTOM library...
Invalidate the package Spec CUSTOM...
Invalidate the body of Package CUSTOM...
Compile the package Spec CUSTOM...
Compilation of the bodies of Package CUSTOM...
ERROR 201 to 210, column 4 line
identifier ' APPS. XXtest' must be declared
ERROR on line 210, column 4 0
Declaration ignored
Custom library closing...
Build custom errors:
PL/SQL ERROR 201 to 210, column 4 line
identifier ' APPS. XXtest' must be declared
PL/SQL ERROR on line 210, column 4 0
Declaration ignored

Could not generate the library.

You must attach the XXPYX.pll to CUSTOM.pll before compiling CUSTOM.pll

See 9-11 in this presentation slides - http://repo.solutionbeacon.net/BehnCustomPllMethodologyatNIHSROAUG.pdf

HTH
Srini

Tags: Oracle Applications

Similar Questions

  • Issue of CUSTOM.pll

    Hello

    It's on r12.1.3

    I have a requirement where needs of Oracle to locate a PDF file that is stored on an operating system based on a variable from the organizer of the order (value of FDF), file system and pull up the PDF document on the screen using the ZOOM button.

    The question is, how can I do custom.pll pointing the path to this PDF file.

    Is there an example that anyone can share? Or an API info?  I know this isn't a very rare req.

    Please read this thread.

    Rubi

    Here's the event procedure Custom.pll that I use to catch the simultaneous request_id of form FNDRSRUN.  You should be able to do something similar in your case.

    event (event_name varchar2) procedure is

    vareBV_Form_Name varchar2 (30): = Name_In ('system.current_form');

    vareBV_Block_Name varchar2 (30): = Name_In ('system.cursor_block');

    vareBV_URL varchar2 (4000);

    number of vareBV_RequestID;

    vareBV_Common_TOP varchar2 (4000);

    Start

    if(event_name='ZOOM') then

    If (vareBV_Form_Name = 'FNDRSRUN' and vareBV_Block_Name = 'JOBS') then

    vareBV_RequestID: = name_in('JOBS.) REQUEST_ID');

    Tool_Env.GetVar ('APPLTMP', vareBV_Common_TOP);

    vareBV_URL: = eBizViewer.Build_URL (vareBV_RequestID, vareBV_Common_TOP);

    fnd_utilities.open_url (vareBV_URL);

    end if;

    on the other

    null;

    end if;

    end event.

  • PLS-00201: identifier 'TABLETYPE_VARCHAR2' must be declared.

    Hi all, when I copy a procedure from oracle, and then the paste into the TimesTen to re-create the procedure, I get the following exception:
    PLS-00201: identifier 'TABLETYPE_VARCHAR2' must be declared.
    If the 'TABLETYPE_VARCHAR2' type is available in oracle not in TimesTen.
    Y at - it approach to solving this problem or links to the list of incompatibilities between oracle and TimesTen on PL/SQL?


    Thank you

    Gena, it seems that the package in timesten is a substitute for custom in oracle, right types?

    TimesTen does not support object types, but we can use types in packages, it's sort of a "Workaround", I think.
    Basically, the packets do not replace custom types (there are two different objects PLSQL with different purpose), but in this case we can do.

    Best regards
    Gena

  • Could not open custom.pll error: BDP-PLI018 not found OEXOELIN library

    I have a custom.pll since a 11.5.10.2 instance. I try to open it with Forms6i

    In the regedit FORMS60_PATH is 'C:\orant\FORMS60; C:\orant\TOOLS\OPEN60\PLSQLLIB ".

    I get an error message
    BDP-PLI018 not found OEXOELIN library

    How this problem should be solved? Any help is appreciated.

    The file as oexoelin. PLL isn't here in one of the directories.

    So how do you forms to find the library if it is not in the FORMS_PATH? You need a local copy of all files in the \AU_TOP\RESOURCES directory on your local or network so forms will have access to these files. I'm not positive of the AU_TOP - it has been some time since I worked with EBS. Check with your DBA / SA confirm where these files are and how your development environment must be configured to resource these files.

    Craig...

  • Show a custom before validation on Form Message ~ ~ Custom.pll / Personalization

    Hi all

    We have a requirement where we need to display custom before form validation using form customization message is or Custom.pll. I've tried a few things on VALIDATE to the relaxation TIME, is showing the message several times.

    Any help will be greatly appreciated.

    Thank you
    gt1982

    Published by: gt990 on August 2, 2011 10:52

    Personalization you cannot access to the events of validation, then you won't be able to use it for your condition.
    A when-validate-record trigger fires for each new record was changed and so will be shown several times.

    If you are using forms of MFC, you can capture the event VALIDATION POST-FORMS using the HRMS custom.pll.

    Otherwise, it is not possible.

    Hope this helps,
    Sandeep Gandhi

  • PLS-00201: identifier ' VENDOR_EXTRACT. HAND ' must be declared

    Hi all

    I am new to the development and administration of the EBS (I'm analyst), then, probably, that this issue will be obvious to most people here.

    I have created a package and compiled successfully in SQL Developer. Then, I wanted to save it as a competitor program in EBS. Do I need to do anything about it is between? Copy a file with the package or the package is registered automatically when created in SQL Developer? I created under my user custom, then there conceded at APPS. I have the error message below the newspaper of conc programs:

    Error ORACLE 6550 in FDPSTP

    Cause: FDPSTP failed due to the ORA-06550: line 1, column 7:
    PLS-00201: identifier ' VENDOR_EXTRACT. HAND ' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    What is the right approach to the creation of a package/procedure to register in EBS?

    Any help would be appreciated.

    Concerning
    Piotr

    on EBS http://forums.oracle.com/forums/category.jspa?categoryID=3
    also search the Forum
    for example
    Re: FDPSTP failed due to the ORA-06550

    for simultaneous program, you must:
    -create the package with, for example, the main proceedings (also of subsidies to the apps)
    -Save the executable program (for example, package.main)
    -Registry program

    subject VENDOR_EXTRACT. HAND
    Check the program executable and program parameters simultaneously

  • Can create new LOV field with customizations or CUSTOM.pll?

    I must add a field that does not currently a LOV. Is this possible with customizations? If this isn't the case, it is possible with CUSTOM.pll?

    Thank you
    Kurz

    You cannot create a lov during execution. But you can assign a lov existing an element using SET_ITEM_PROPERTY('BLOCK.) ITEM', LOV_NAME, 'xx');

  • Dynamic LOV problem (in Custom.pll)

    Hi all


    I have a requirment to create my own lov for the 'LOCATION' field in the order form. Through Custom.pll, I want to create a dynamic disk group.
    I use the following code:

    declare
    l_chr_group_id recordgroup;
    Chr.location_record_group varchar2 (1000): = "CUSTOM_RG";
    Start
    l_chr_group_id: =.
    CREATE_GROUP_FROM_QUERY
    (l_chr_location_record_group,
    "select query);
    l_errcode: = POPULATE_GROUP (l_chr_group_id);

    IF (l_errcode <>0)
    THEN
    MESSAGE ('error');
    ON THE OTHER
    l_record_count: = GET_GROUP_ROW_COUNT (l_chr_group_id);

    IF l_record_count > = 1
    THEN
    SET_LOV_PROPERTY ("DELIVER_TO_LOCATION",
    GroupName,
    l_chr_group_id
    );
    END IF;
    end;

    But it gives the error message saying "Cannot create a"CUSTOM_RG"group" when I try to enter some information in the LOCATION field.

    could you please tell me where it is unable to create. Or is - that this dynamic LOV has any restrictions that I can be violated.

    Thank you inAdvance.
    Aush...

    Aush,

    Before you create the record group, check if its already exists or not. If it exists, then remove it and create it. To do this, add the following code before you create the built-in record group with CREATE_GROUP_FROM_QUERY .

         l_chr_group_id := FIND_GROUP(l_chr_location_record_group);
              IF NOT ID_NULL(l_chr_group_id) THEN
                   DELETE_GROUP(l_chr_group_id);
              END IF;
    

    Kind regards

    Manu.

    If my response or response from another person was helpful, please mark accordingly

  • After change of custom.pll - what to jump?

    Forgive me - I do not work with this technology for the last 8 years - what do I do bounce back after I cnange the custom.pll?
    Forms Server?
    It comes to R12.
    Thank you

    Anatoliy

    You talk about R12, is not e-Business?

    I know forms, if you change a whole .pll there is no need to Exchange services provided by the intermediate layer, depending on the change, you must recompile the .fmbs that reference this library at the most.

    Published by: Rodolfo Ferrari on June 23, 2009 21:54

  • Create dynamic Lov in custom.pll

    Hi all

    I need to create dynamic Custom.pll LOV I want to associate this LOV and Recordgroup with the Flexfield. How can I do this?
    I created a dynamic disk group of the statement "CREATE_GROUP_FROM_QUERY".

    The point is, that I have a field on a standard form which calls the article number, and I want to display in the flexfield one that lists the folders that I show depends on the value that I have type in the item number field. I do everything in custom.pll. I have no customization of forms being the version 11.5.8.

    Please, can you help me?

    Cordially Mariano. -.

    Hello

    That you have created a group, you can take any defined LOV and associate the group property to set_item_property.

    And you can again change LOV the runtime to use the other group for registration according to the use.

    But LOV must be defined at the time of the design only, only record group can be associated with dynamically.

    Kind regards
    Kiran.

  • Support for Microsofts and printer is not recognized and said that it must be declared

    Original title: Declare the printer in vb

    Hello

    Follow-up

    HOW to: Trigger and control Visual Basic print dialog boxes

    Support Microsofts and printer is not recognized and said that it must be declared. I tried their code for the example and it still says that this printer is not declared

    Thank you

    Dan

    Hi Daniel,.

    Thanks for posting your query in Microsoft Community.

    I appreciate the effort you have taken to solve this problem yourself.

    This problem is better suited in the MSDN forum. We have a dedicated team with advanced tools and permission to help with this issue. Then I suggest you to report the same query in MSDN forum.

    https://social.msdn.Microsoft.com/forums/vstudio/en-us/home?Forum=vbgeneral

    Thank you.

  • Component 'ACTION' must be declared

    Hi all

    Oracle version: 12 c.

    I am trying to create a trigger on a history table.

    Here is the description of the tables,

    Main table:

    create table CASES

    (

    case_id NUMBER (14) not null,

    case_number VARCHAR2 (50) not null,

    judgement_date DATE,

    account_ID NUMBER (14) not null,

    case_status_reason_id NUMBER (14) not null,

    case_status_id NUMBER (14) not null,

    evidence_pkg_file_name VARCHAR2 (200),

    evidence_pkg_generation_date DATE,

    hearing_date DATE not null,

    record_version NUMBER (9) default 0,

    created_by VARCHAR2 (50) by default of the USER.

    Date_Created DATE default SYSDATE,

    Modified_By VARCHAR2 (50) by default of the USER.

    Date_Modified DATE default SYSDATE,

    POSTED VARCHAR2 (200),

    vehicle_owner_id NUMBER (14).

    hearing_loc_id NUMBER (6).

    evidence_pkg_location_path VARCHAR2 (250)

    )

    History table:

    create the table CASES_H

    (

    case_id NUMBER (14) not null,

    case_number VARCHAR2 (50) not null,

    judgement_date DATE,

    account_ID NUMBER (14) not null,

    case_status_reason_id NUMBER (14) not null,

    case_status_id NUMBER (14) not null,

    evidence_pkg_file_name VARCHAR2 (200),

    evidence_pkg_generation_date DATE,

    hearing_date DATE not null,

    revision_number NUMBER (14) not null,

    record_version NUMBER (9) default 0,

    created_by VARCHAR2 (50) by default of the USER.

    Date_Created DATE default SYSDATE,

    Modified_By VARCHAR2 (50) by default of the USER.

    Date_Modified DATE default SYSDATE,

    POSTED VARCHAR2 (200),

    vehicle_owner_id NUMBER (14).

    hearing_loc_id NUMBER (6).

    evidence_pkg_location_path VARCHAR2 (250)

    )

    Trigger code:

    CREATE OR REPLACE TRIGGER CASE$ H

    AFTER INSERT, DELETE OR UPDATE ON TAG_OWNER. CASE

    REFERENCING OLD AS OLD AGAIN AS NEW

    FOR EACH LINE

    DECLARE

    L_OLD_REV CASES_H.REVISION_NUMBER%TYPE;

    L_CH CASES_H % ROWTYPE;

    L_NEW BOOLEAN;

    BEGIN

    IF DBMS_REPUTIL. FROM_REMOTE = TRUE THEN

    -TRIGGER'S ALREADY SHOT WITH A REMOTE DATABASE

    RETURN; -RELEASE OF THE TRIGGER

    END IF;

    BEGIN

    SELECT MAX (REVISION_NUMBER)

    IN L_OLD_REV

    OF CASES_H

    WHERE CASE_ID = COALESCE(:OLD.) CASE_ID,: NEW. CASE_ID);

    L_OLD_REV: = NVL (L_OLD_REV, 0);

    EXCEPTION

    WHEN NO_DATA_FOUND THEN

    L_OLD_REV: = 0;

    END;

    CASE

    WHEN INSERTING CAN

    L_CH. ACTION: = "INSERT."

    L_NEW: = TRUE;

    UPDATE THEN

    L_CH. ACTION: = "UPDATE";

    L_NEW: = TRUE;

    ON THE OTHER

    L_CH. ACTION: = "DELETE";

    L_NEW: = FALSE;

    END CASE;

    IF L_NEW THEN

    L_CH. CASE_ID: =: NEW. CASE_ID;

    L_CH. CASE_NUMBER: =: NEW. CASE_NUMBER;

    L_CH. JUDGEMENT_DATE: =: NEW. JUDGEMENT_DATE;

    L_CH. ACCOUNT_ID: =: NEW. ACCOUNT_ID;

    L_CH. CASE_STATUS_REASON_ID: =: NEW. CASE_STATUS_REASON_ID;

    L_CH. CASE_STATUS_ID: =: NEW. CASE_STATUS_ID;

    L_CH. EVIDENCE_PKG_FILE_NAME: =: NEW. EVIDENCE_PKG_FILE_NAME;

    L_CH. EVIDENCE_PKG_GENERATION_DATE: =: NEW. EVIDENCE_PKG_GENERATION_DATE;

    L_CH. HEARING_DATE: =: NEW. HEARING_DATE;

    L_CH. REVISION_NUMBER: = L_OLD_REV;

    L_CH. RECORD_VERSION: =: NEW. RECORD_VERSION;

    L_CH. CREATED_BY: = NVL(:NEW.) CREATED_BY, USER);

    L_CH. DATE_CREATED: = NVL(:NEW.) DATE_CREATED, SYSDATE);

    L_CH. MODIFIED_BY: = NVL(:NEW.) MODIFIED_BY, USER);

    L_CH. DATE_DE_MODIFICATION: = NVL(:NEW.) DATE_MODIFIED, SYSDATE);

    L_CH. POSTED: =: NEW. POSTED;

    L_CH. VEHICLE_OWNER_ID: =: NEW. VEHICLE_OWNER_ID;

    L_CH. HEARING_LOC_ID: =: NEW. HEARING_LOC_ID;

    L_CH. EVIDENCE_PKG_LOCATION_PATH: =: NEW. EVIDENCE_PKG_LOCATION_PATH;

    ON THE OTHER

    L_CH. CASE_ID: =: OLD. CASE_ID;

    L_CH. CASE_NUMBER: =: OLD. CASE_NUMBER;

    L_CH. JUDGEMENT_DATE: =: OLD. JUDGEMENT_DATE;

    L_CH. ACCOUNT_ID: =: OLD. ACCOUNT_ID;

    L_CH. CASE_STATUS_REASON_ID: =: OLD. CASE_STATUS_REASON_ID;

    L_CH. CASE_STATUS_ID: =: OLD. CASE_STATUS_ID;

    L_CH. EVIDENCE_PKG_FILE_NAME: =: OLD. EVIDENCE_PKG_FILE_NAME;

    L_CH. EVIDENCE_PKG_GENERATION_DATE: =: OLD. EVIDENCE_PKG_GENERATION_DATE;

    L_CH. HEARING_DATE: =: OLD. HEARING_DATE;

    L_CH. REVISION_NUMBER: = L_OLD_REV;

    L_CH. RECORD_VERSION: =: OLD. RECORD_VERSION;

    L_CH. CREATED_BY: = NVL(:OLD.) CREATED_BY, USER);

    L_CH. DATE_CREATED: = NVL(:OLD.) DATE_CREATED, SYSDATE);

    L_CH. MODIFIED_BY: = NVL(:OLD.) MODIFIED_BY, USER);

    L_CH. DATE_DE_MODIFICATION: = NVL(:OLD.) DATE_MODIFIED, SYSDATE);

    L_CH. POSTED: =: OLD. POSTED;

    L_CH. VEHICLE_OWNER_ID: =: OLD. VEHICLE_OWNER_ID;

    L_CH. HEARING_LOC_ID: =: OLD. HEARING_LOC_ID;

    L_CH. EVIDENCE_PKG_LOCATION_PATH: =: OLD. EVIDENCE_PKG_LOCATION_PATH;

    END IF;

    L_CH. REVISION_NUMBER: = L_OLD_REV + 1;

    -Insert in the history table

    INSERT INTO L_CH VALUES CASES_H;

    END CASE$ H;

    I get the error below

    Component 'ACTION' must be declared

    Component 'ACTION' must be declared

    Component 'ACTION' must be declared

    Try to find what exactly could be the problem but hard of luck so far.

    Ask for help.

    THX

    Shan!

    You define l_ch as cases_h % rowtype. The cases_h table doesn't have a column 'action', yet in three places, that you try to give a value to l_ch.action. l_ch.action is not defined, as the compiler points out.

    So either use a different flag (similar to what you are doing with l_new), or change your historical table and add a column of action.

  • Why I can not customize LOV use custom.pll or customize as a Receivables Transaction?

    Hi all..

    I have business to customize LOV form transaction purposes.

    I try to use custom.pll or customize but I can't do it.

    I want to Bill of LOV customized for.

    It is a real request for Bill LOV to.

    Select cust_acct.account_number account_number,

    Party_name party.party_name,

    arp_etax_util.get_taxpayer_masked_value (Party.jgzz_fiscal_code) jgzz_fiscal_code,

    arp_etax_util.get_taxpayer_masked_value (Party.tax_reference) tax_reference,

    cust_acct.cust_account_id customer_id,

    cust_acct.fob_point fob_point,

    fob_point_meaning null,

    cust_acct.ship_via ship_via,

    ship_via_meaning null,

    cust_acct.primary_salesrep_id primary_salesrep_id,

    primary_salesrep_name null,

    primary_salesrep_num null,

    cust_acct.account_name account_description

    of hz_cust_accounts cust_acct,.

    part hz_parties

    where cust_acct.party_id = party.party_id

    party_name order


    I just want to change the label account_description to another name.

    or I try to add condition where. But same result, I see no change in this LOV.

    Please help me.

    Thank you...

    Can you check this http://kiranyarraalwaysreadytohelp.blogspot.com/2014/03/how-to-restrict-lov-using-oracle-form.html

  • PLS-00201: identifier 'NVL2' must be declared.

    I came across a scenario where I saw that NVL2 is a PL/SQL function, but when I tried to use this function directly with plsql variable it gives me error. Although it is find a job within SQL.

    Here is the example I'm writing his strange behavior I see.

    I'm under banner PL/SQL Release 11.2.0.4.0 - Production

    SQL> --See when we use NVL2 within SQL it works fine
    SQL> select nvl2('IamNotNull', 'IamForNotNull', 'IamForNull') for_not_null
      2            ,nvl2(null, 'IamForNotNull', 'IamForNull') for_null
      3  from dual;
    
    
    FOR_NOT_NULL  FOR_NULL
    ------------- ----------
    IamForNotNull IamForNull
    
    
    SQL> --Problem occurs when we assign the resultant directly into variable in anonymous block
    SQL> declare
      2      for_not_null varchar2(200);
      3  begin
      4      for_not_null :=NVL2('IamNotNull', 'IamForNotNull', 'IamForNull');
      5  end;
      6  /
        for_not_null :=NVL2('IamNotNull', 'IamForNotNull', 'IamForNull');
                       *
    ERROR at line 4:
    ORA-06550: line 4, column 20:
    PLS-00201: identifier 'NVL2' must be declared
    ORA-06550: line 4, column 5:
    PL/SQL: Statement ignored
    
    
    
    
    SQL>
    

    Spear says:

    But I had look at Oracle self-documenting and it was not clear that NVL2 is SQL fucntion.

    Weird, because I just searched documentation, and the first that says NVL2 in the context of the PL/SQL language was all NVL2 hits were either programming language SQL or OLAP expression reference: http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/fundamentals.htm#LNPLS00212

    which clearly states that the NVL2 is not available in PL/SQL.

  • PLS-00201: identifier 'i' must be declared when using BULK COLLECT with FORALL to insert data in 2 tables?

    iHi.

    Declare
       cursor c_1
       is
        select col1,col2,col3,col4
        from table1
    
    
       type t_type is table of c_1%rowtype index by binary_integer;
       v_data t_type;
    BEGIN
       OPEN c_1;
       LOOP
          FETCH c_1 BULK COLLECT INTO v_data LIMIT 200;
          EXIT WHEN v_data.COUNT = 0;
          FORALL i IN v_data.FIRST .. v_data.LAST
             INSERT INTO xxc_table
               (col1,
                col3,
                col4
               )
                SELECT v_data (i).col1,
                       v_data (i).col3,
                       v_data (i).col4
                  FROM DUAL
                 WHERE NOT EXISTS
                              (SELECT 1
                                 FROM xxc_table a
                                WHERE col1=col1
                                      .....
                              );
                         --commit;
             INSERT INTO xxc_table1
               (col1,
               col2,
              col3,
              col4
               )
                SELECT v_data (i).col1,
                       v_data (i).col2,
                       v_data (i).col3,
                       'Y'
                  FROM DUAL
                 WHERE NOT EXISTS
                              (SELECT 1
                                 FROM xxc_table1 a
                                WHERE col1=col1
          .....
         );
    
    
           --exit when c_1%notfound;
       END LOOP;
       CLOSE c_1;
       commit;
    END;
    
    
    
    
    
    
    
    

    I get 40/28-PLS-00201: identifier 'I' must be declared what the problem in the above code please help me and I have lakhs of data

    Thank you

    Post edited by: Rajesh123 I changed IDX

    Post edited by: Rajesh123 changed t_type c_1 in Fetch

    But by using a SET of INSERT to insert into two tables at once in the same query would do the job without any collection of bulk of PL and avoid to query two times too.

    for example, as a single INSERT...

    SQL > create table table1 as
    2. Select 1 as col1, col2 of 1, 1 as col3, 1 as col4 Union double all the
    3 select 2,2,2,2 of all the double union
    4 Select 3,3,3,3 Union double all the
    5 Select 4,4,4,4 of all the double union
    6 select 5,5,5,5 of all the double union
    7 select 6,6,6,6 of all the double union
    8 select 7,7,7,7 of all the double union
    9 select 8,8,8,8 of all the double union
    10. Select 9,9,9,9 to the Union double all the
    11. Select double 10,10,10,10
    12.

    Table created.

    SQL > create table xxc_table like
    2. Select 1 as col1, col3 2, 3 as col4 Union double all the
    3. Select the 3, 4, 5 Union double all the
    4. Select the 5, 6, 7 double
    5.

    Table created.

    SQL > create table xxc_table1 like
    2. Select 3 as col1, col2, col3, 5 4 "n" as col4 Union double all the
    3. Select the 6, 7, 8, double "n"
    4.

    Table created.

    SQL > insert all
    2 when the xt_insert is null then
    3 in xxc_table (col1, col3, col4)
    4 values (col1, col3, col4)
    5 when the xt1_insert is null then
    6 in xxc_table1 (col1, col2, col3, col4)
    7 values (col1, col2, col3, 'Y')
    8. Select t1.col1 t1.col2, t1.col3, t1.col4
    9, xt.col1 as xt_insert
    10, xt1.col1 as xt1_insert
    11 from table1 t1
    12 left join external xxc_table xt (t1.col1 = xt.col1)
    13 left xt1 xxc_table1 outer join (t1.col1 = xt1.col1)
    14.

    15 rows created.

    SQL > select * from xxc_table by 1.
    COL1 COL3 COL4
    ---------- ---------- ----------
    1          2          3
    2          2          2
    3          4          5
    4          4          4
    5          6          7
    6          6          6
    7          7          7
    8          8          8
    9          9          9
    10-10-10

    10 selected lines.

    SQL > select * from xxc_table1 by 1.

    COL1 COL2 COL3 C
    ---------- ---------- ---------- -
    1          1          1 Y
    2          2          2 Y
    3          4          5 N
    4          4          4 Y
    5          5          5 Y
    6          7          8 N
    7          7          7 Y
    8          8          8 Y
    9          9          9 Y
    10-10-10

    10 selected lines.

    SQL >

Maybe you are looking for