exceptions when using dynamic instructions

Friends

In my monthly script, I need to drop 24 months old partitions and create the new partition for the coming months. I wrote the following procedure for the same thing:
DECLARE
   v_msg_type    VARCHAR2 (100);
   v_msg_desc    VARCHAR2 (100);
   v_sql1        VARCHAR2 (1000);
   v_sql2        VARCHAR2 (1000);
   except_acct   EXCEPTION;
   except_vntg   EXCEPTION;
BEGIN

/* Remove 24 months old partition */ 
   SELECT    'alter table table1 drop partition p_acct_'
          || TO_CHAR (ADD_MONTHS (SYSDATE, -24), 'mmyyyy')
          || ' update global indexes'
     INTO v_sql1
     FROM DUAL;

   EXECUTE IMMEDIATE v_sql1;

   v_msg_desc := 'SUCCESS: Old partitions removed from table1';

    package.procedure('information',v_msg_desc);

   /* Add new partition */
   SELECT    'alter table table1 add partition p_acct_'
          || TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'mmyyyy')
          || CHR (10)
          || ' values less than (to_date('''
          || TO_CHAR (LAST_DAY (ADD_MONTHS (SYSDATE, 1)) + 1, 'yyyy-mm-dd')
          || ''' ,'''
          || 'YYYY-MM-DD'
          || ''')) '
     INTO v_sql2
     FROM DUAL;

   EXECUTE IMMEDIATE v_sql2;

   v_msg_desc := 'SUCCESS: New parition added in table1';
    package.procedure('information',v_msg_desc);
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (SQLERRM);
END;
In this script, how can I add exception given for each EXECUTE IMMEDIATE statement?

You wrap them with begin / end

BEGIN
   EXECUTE IMMEDIATE --stuff and or things
EXCEPTION WHEN --something
THEN
   --more stuff
END;

Tags: Database

Similar Questions

  • make exception when using BUlk collect

    Hi all

    version of DB 10 g

    I've written a procedure as below
    create or replace procedure test_proc2 is
    
    type v_emp_rec is record 
    (empno number,
    ename varchar2 (200));
    
    type v_emp_tab is table of v_emp_rec index by binary_integer;
    
    v_tab v_emp_tab;
    
    begin
    
    select empno,ename
    into v_tab(0)
    from emp
    where empno = 7369;
    
    dbms_output.put_line (v_tab(0).ename);
    
    exception 
    when no_data_found then
    dbms_output.put_line ('I am in no data found exception');
    end;
    now, I tried to perform the procedure below
    begin
    test_proc2;
    end;
    the foregoing is works well, but I want to use the functionality of collection in bulk so I use as below
    create or replace procedure test_proc2 is
    
    type v_emp_rec is record 
    (empno number,
    ename varchar2 (200));
    
    type v_emp_tab is table of v_emp_rec index by binary_integer;
    
    v_tab v_emp_tab;
    
    begin
    
    select empno,ename bulk collect
    into v_tab
    from emp
    where empno = 7369;
    
    dbms_output.put_line (v_tab(0).ename);
    
    exception 
    when no_data_found then
    dbms_output.put_line ('I am in no data found exception');
    end;
    the foregoing gives me exception, please someone can explain why it is not in the exception block.

    Thanks in advance.

    The obvious answer is because an exception no_data_found is raised.
    The question is there.

    It's either select it because there is no data where empno = 7369.

    Or is the .ename of v_tab (0), because there is no element 0. Automatic collection of indexing starts at 1.

    for example

    SQL>  declare
      2    type t1 is table of pls_integer index by pls_integer;
      3    v1 t1;
      4   begin
      5    v1(1) := 1;
      6    dbms_output.put_line(v1(0));
      7   end;
      8  /
     declare
    *
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at line 6
    
    SQL> 
    

    If you catch the exceptions and do not spread them properly, then hide you all information kind of useful as a line number, etc..

  • Exception when using setWhereClause()

    Hello

    I use JDeveloper 11.1.2.3

    I need to get a row in the Dattabse table.

    To do this, I put the WHERE clause in the VO using the setWhereClause (String) method.

    Where clause looks almost like

    setWhereClause("Companyid = '"+getCompanyId()+"' and CustomerGroupName like 'Elite' ");
    

    while I try to run the application, his throw and error as:

    oracle.jbo.SQLStmtException: Houston-29114 ADFContext is not configured to process this exception messages. Use the code of exception stack trace and error to investigate the root cause of this exception. Root cause error code is Houston-27122. Are parameters of error message {0 = SELECT * FROM (SELECT * FROM OFFERRULE) QRSLT WHERE (Companyid = "01616C8F-4430-4F11-9257-B23626C50E99") and CustomerGroupName as 'élite'}

    Why is this happening?

    Kind regards

    Nigel.

    Nigel,

    the error you got is only the analytical error. There is an error detailed in the journal a place that tells you exactly what the problem is (for example table or view does not exist). The summary shows you the statement sql has a problem, so an action you should do is copy the statement and run it from a sql inside jdev worksheet. See is the instruction

    SELECT * FROM (SELECT * FROM OFFERRULE) QRSLT WHERE (Companyid = "01616C8F-4430-4F11-9257-B23626C50E99") and CustomerGroupName as 'élite'

    runs without problem.

    Next step is that you must not build your own where clause. To do this, you must use a ViewCriteria and apply the criteria of the vo, when you need to get the data.

    Timo

  • Application crashes with the Exception when using javax.microedition.media.Player

    Hello

    I have an application that processes data from bluetooth and send it to the web service. Recently, there was a request to add sounds to the request. Now when the application processes lots of data and the player plays constantly after a few seconds I get exception "Application is not responding. And then the treatment is finished. In the newspapers, I see many connected after this exception ForcedStackTrace exception.

    The sounds are played in the separate thread. If the app is not play sounds or short sounds - everything works fine. Is it possible to avoid what happens an exception? Why this is happening?

    Thanks in advance,

    Viktor.

    Solved by implementing my own PlayerManager, which running in a separate thread would point the way to the queue rather then the number of threads by using the internal player application.

  • Exception when using tnsnames AND ezconnect resolution methods with managed Oracle ODP 12 c rel.3

    We are looking at upgrading to a web service to connect to Oracle using the unmanaged to the ODP ODP managed (12 c module 3).

    We use tnsnames and have the following configuration in the sqlnet.ora file: NAMES. DIRECTORY_PATH = (TNSNAMES, EZConnect).

    The resolver EZConnect is necessary because we use an OracleDependency object for database update notifications.

    When moving to the managed driver, a SocketException exception is thrown when you try to open a new connection. Looking at the call stack, I can see that the managed Oracle driver, actually a 'OracleInternal.Network.EZConnect' object, calls System.Net.Dns.GetAddrInfo to get an IP address, but with the alias tns as a parameter. Of course, it fails with this exception "unknown host".

    So it seems to me that there is a problem combining tnsnames, ezconnect manned ODP managed!

    Someone else who has experienced this and found a solution, or it could be an error in the driver?

    This problem seems to have been fixed in the version of 12 c 4.

  • getting exception when using JavaFX SDK/JRE bundled in Netbeans

    When I try to put my JavaFX SDK/JRE to use Java SE and run my application I get an exception ClassLoader (java.lang.NoClassDefFoundError: javafx/application/application).

    I still have to get my Netbeans to use properly the bundled JavaFX SDK/JRE that come with JRE/SDK to the Java SE. I am referring to Java for JavaFX platform properties (in a project-> properties-> library-> manage-> tab JavaFX platforms).

    Here's what I have my JavaFX platform settings the value:
    JavaFX SDK--> C:\Program Files (x86)\Java\jdk1.7.0_10
    JRE JavaFX--> C:\Program Files (x86)\Java\jdk1.7.0_10\jre

    I am currently using 7u10 7.2 Netbeans and Java (the problem also occurs with 7u7 and 7u6).

    For those who using Java7u6 and later, can you tell me what your platform setting manage is the JavaFX tab?

    Thank you
    Jose

    OK its fixed. I noticed that the word hellow JavaFX netbeans 7.2 contains the following pots as part of its compilation libraries, jfxrt, deploy, plugin and javaws. In my project of problem I just add them to my library of compilation and it worked.

    Thanks for the help Igor.
    Jose

  • Exception when using weblogic datasource in app ADF - BC

    Hello
    I want to use the data source for weblogic [JNDI name] as the source of data for my ADF BC application.
    I'm following the "your Application Module connection database configuration" in the link
    http://download.Oracle.com/docs/CD/E14571_01/Web.1111/b31974/bcservices.htm#CHDJDBJB.

    I did the following steps.

    1 started weblogic server and configured a data source [ex: testbcDS]
    2. in JDeveloper, sailed to the 'Configuration' Panel, under the direction of the ' * ModuleLocal' and changed the connection type "JDBC Data Source.
    and the name of the data source to the java: comp/env/jdbc/testbcDS '.
    3. in JDeveloper, wrote a client Java stand alone with the following code snippet.
    Public Shared Sub main (String [] args) {}
    try {}
    String amDef = "oracle.communications.platform.bcapp.poc.app.AppModule";
    Config = "AppModuleLocal";
    ApplicationModule m = Configuration.createRootApplicationModule (amDef, config);
    ViewObject rscGroupVo = am.findViewObject("IfwRscGroupView1");
    rscGroupVo.executeQuery ();
    }
    }

    4. on the implementation of the present the following exception is displayed in the console

    oracle.jbo.DMLException: Houston-27200: failure JNDI. Unable to search data in the context of jdbc/testbcDS Source
    at oracle.jbo.server.DBTransactionImpl.lookupDataSource(DBTransactionImpl.java:1418)
    at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:309)


    Please let me know if I followed the correct steps and let me know the missing steps / wrongs I've done.

    The same works very well when the connection type is "JDBC URL".

    Please suggest.

    Thank you
    Praveen

    The stand-alone client runs as a J2SE application, so there is no container for application server and therefore no data sources. If you want to use a stand-alone client for testing purposes, then use a JDBC URL in the local configuration of the AOS and set another configuration of AM who will use data sources and which will be used when deploying to an application server.

    Dimitar

  • Exception when using JAX - RPC

    Hi all!
    I'm developing a web service client for society (pearls running 4.3) BB devices. Got the file from the server (generated gSOAP) WSDL, generated high heels using Sun WTK s 2.5.1' wscompile, started the MDS Simulator, wrote a main program, an input screen (for input parameters) and an output screen (for results), began the JDE 4.3 debugger and obtained
    javax.xml.rpc.JAXRPCException - java.lang.StringIndexOutOfBoundsException: Index 0 > = 0
    from the line of calling the operation.

    Using NetBeans, I created then a midlet to Web Services client using the WSDL file which worked immediately. Taking the source (essentially generated) files and pushing them into the JDE gave the same exception as shown above.

    Someone at - he seen this before?

    TIA,
    Martin

    OK, so never mind...

    I've implemented my Web Service client using kSOAP.

  • A problem when using dynamic objects related

    1. open an image in Lr using the command "open as smart object in Photoshop.

    2 convert the dynamic object opened in dynamic object associated with the Ps (save it in the same place where the original DNG file is by agreeing to replace)

    3. Save and close the TIFF file created in PS.

    4 make a few adjustments to the original DNG and save them in Lr in the DNG file.

    5. open the TIFF file and double-click the icon of yellow warning on the dynamic object bound to this day in the TIFF file.

    6. in ACR, simply click ok to update my linked smart object.

    7 and now without no cropping applied, my smart object related to the Ps is cropped automatically.

    How can I stop this automatic cropping?

    I solved my problem... Thank you.

  • insufficient privileges when using dynamic sql statements in the procedure

    Hello
    I use following script on oracle 10g. and get the error not enough privs. Please advice.

    SQL > show user
    The user is 'GRSADM '.
    SQL > create or replace procedure grsadm.test_proc as
    a varchar2 (2000);
    Start
    a: =' VIEW to CREATE or REPLACE
    TEST_VIEW
    IN SELECT
    "FLAS" one
    THE DOUBLE ';
    immediately run one;
    end;
    Created procedure.
    SQL > start
    grsadm.test_proc;
    end;
    Start
    grsadm.test_proc;
    end;
    Error on line 16
    ORA-01031: insufficient privileges
    ORA-06512: at "GRSADM. TEST_PROC', line 9
    ORA-06512: at line 2

    SQL > select * from session_privs
    where the privilege as "VIEW %.

    PRIVILEGE
    ----------------------------------------
    CREATE A VIEW
    REMOVE ANY VIEW
    CREATE A MATERIALIZED VIEW
    MODIFY A MATERIALIZED VIEW
    REMOVE ANY MATERIALIZED VIEW


    5 selected lines.

    Published by: Rous Sharma on November 24, 2011 12:00

    GRSADM has a privilege ' CREATE (all) VIEW ' live?
    And not via a role...

    SSM
    Samir,
    GRSADM is the owner of this procedure, it seems that the EXECUTE priv, that you suggested is already involved.

  • When to use dynamic account Types

    I inherited an application with just a little or the accounts which are calculated through rules.  These calculations may very be in dynamic sub.  There are 1 = account 2 + 3 account... for example.  Can someone give me it experience or knowledge of best practices to follow to use dynamic account or not?  Thank you.

    Hello

    I agree with Erich Ranz , it seems that dynamic accounts were built for simple calculations that apply to all levels of the hierarchy of entities.

    Dynamic accounts are calculated when you load the rules and, of course, when you load new data. However, you are not able to create complex dynamic accounts.

    Kind regards

    Thanos

  • Get exceptions when a blackberry file downloading

    I updated my jboss server in place Upload(basically a photo upload) file to blackberry.

    I wanted to use the phonegap API to download the file, but it is limited. (even if phonegap has a lot)

    It must be the full path of the file that we cannot get a file of the form field. (Name of file is accessible)

    Also, his example is also very poor, because it downloads only the files whose paths are known.

    So I used a simple, this form with request for multipart/form-data and here is the code on the client side:

    function uploadProfilePicToServer() {}
    parent.pop.popOut ("Loading...");
    var xhrObj = false;
    var self = this;
      
    var file = document.getElementById ("CIPP");
    file = file.files [0];
    xhrObj = new XMLHttpRequest();
    try {}
           
         
    xhrObj.open ("POST", URL + "service", true);
    xhrObj.setRequestHeader ("Content-type", "multipart/form-data");
    xhrObj.onreadystatechange = function() {}
    If (xhrObj.readyState == 4 & xhrObj.status == 200) {}
    Alert (xhrObj.ResponseText);
    }
    }
    formData var = new FormData();
           
    formData.append ("cfs", "imgup");
    formData.append ("cfa", "pi");
    formData.append ("ppic", file);
           
    xhrObj.send (formData);
    } catch (e) {}
    Alert (e.message);
    }
    }

    I used the common Apache of the FileUpload library on the server side. (the one shown in their doc)

    In addition, have set the maxsize and timeout parameters correctly.

    Problems that are coming on intranet

    When used in intranet, small sizes like 50-100 KB it works fine, but for larger files i.e. > 500Ko, I get following exception on the server:

    2011-09-23 10:49:10, ERROR 640 [http - 127.0.0.1 - 8080-2] [com.spidoss.cityfan.controller.CityFanController:89] org.apache.commons.fileupload.FileUploadBase$ IOFileUploadException: multipart/form-data request processing failed. Stream ended unexpectedly

    Problems that are coming on internal

    When I use an external server to download the files, I keep getting the above exception

    I thought about building an extension for downloading files, but Java also requires the full path of the file, and we can get the javascriptcolon; NO.

    Someone at - he got the download of a file to an external server with BrowserField

    Help, please

    We just had a post the other day about this... My guess is that you have the same problem they have...

    Make sure your paths are exactly as they are specified in step (6) of the instructions... the other developer forgot the directory 'src '.

  • WCF error when using the API of VSM

    VSM 9.1.4

    Oracle 10g R2

    I am attemtping to use the "MessageSendMessage" command in the VSM API to send back the client permissions and I get the following error message when running it from the VSM server.

    ERROR: The operation 'ContractUnlinkCIAsync' cannot be loaded because it has a parameter or type System.ServiceModel.Channels.Message or a type that has the MessageContractAttribute and other parameters of different types of return. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method should not use other types of settings.

    It's an odd error because I do not use the "ContractUnlinkCI" command which tells me that there is a problem with the generation of the class file.

    I ran the following command to generate my config file and the class in the directory "C:\Program Files (x 86) \Microsoft 4.0 Tools":

    Svcutil t:code /MessageContract. [URL ServiceManager.svc] / out: ISMAPI.cs /config:ISMAPI.config

    The class files and generated config ok. Then I copied the game config to the Web site's web.config file:

    < system.serviceModel >

    < links >

    < basicHttpBinding >

    < connection name = "BasicHttpBinding_IServiceManager" / >

    < / basicHttpBinding >

    < / links >

    < customer >

    < endpoint address = "[ServiceManager.svc URL]" binding = "basicHttpBinding" bindingConfiguration = contract "BasicHttpBinding_IServiceManager" = "IServiceManager" name = "BasicHttpBinding_IServiceManager" / >

    < / customer >

    < system.serviceModel >

    I put the ISMAPI.cs file in the App_Code to my site folder:

    DirectoryStructure.JPG

    My code works fine when I run locally and include the correct querystring values, but it returns the error above, when I run the code from the VSM server. The query string I used: default.aspx? ajaxfunction = 2 & tasknumber = 425134 & agent = 2370 & recvofficer = 2370

    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using Oracle.DataAccess.Client;
    using Oracle.DataAccess.Types;
    using System.Runtime.Serialization;
    using System.ServiceModel;

    partial class _Default: System.Web.UI.Page
    {
    Protected Sub Page_Load (object sender, EventArgs e)
    {
    Response.Expires = - 1;
    Response.ContentType = "text/plain";
    If (Request.QueryString ["ajaxfunction"]! = null)
    {
    Try
    {
    Int16 intFunction = Int16.Parse (Request.QueryString ["ajaxfunction"]. (ToString());
    Switch (intFunction)
    {
    case 1:
    If (Request.QueryString ["tasknumber"]! = null)
    {
    Int64 intTaskNumber = Int64.Parse (Request.QueryString ["tasknumber"]. (ToString());
    Response.Write (getTaskApprovalComments (intTaskNumber.ToString ()));
    }
    break;
    case 2:
    If (Request.QueryString ["tasknumber"]! = null & & Request.QueryString ["officer"]! = null & & Request.QueryString ["recvofficer"]! = null)
    {
    MessageRequest load = new MessageRequest();
    inStruct.sLoginUserID = System.Configuration.ConfigurationManager.AppSettings ["apiLogin"];
    inStruct.sLoginPassword = System.Configuration.ConfigurationManager.AppSettings ["apiPassword"];
    inStruct.sDatabase = System.Configuration.ConfigurationManager.AppSettings ["apiDatabase"];
    inStruct.eEntityType = CRTEntityForEmail.Task;
    inStruct.nEntityRef = Int32.Parse (Request.QueryString ["tasknumber"]);
    inStruct.ePriority = MailPriority.Normal;
    inStruct.eMMAMessageType = MessageMMAType.Approval;
    inStruct.nMessageType = 130;
    inStruct.lRecipientRef = ' ~ ' + Request.QueryString ["recvofficer"];
    inStruct.eRecipientType = MessageRecipientType.Person;
    inStruct.bEmail = true;
    MessageResponse outStruct = new MessageResponse();
    SMC ServiceManagerClient = new ServiceManagerClient();
    outStruct = SCM. MessageSendMessage (inStruct);
    Response.Write (outStruct.sMessage);
    }
    break;
    by default:
    Response.Write ("ERROR: invalid function!");
    break;
    }
    }
    catch (System.Exception Exception)
    {
    Response.Write ("ERROR:" + exception.) (Message);
    }
    }
    Response.End ();
    }

    I hope one of the other directors VSM has met this problem and knows a solution. I tried Googling this issue but with my knowledge of WCF, I don't know what I'm looking at. I also tried commenting on the problem area in the ISMAPI.cs file but it gives me an other errors so I obviously don't know what I'm doing.

    Thank you.

    If locally it works fine I guess you should compare the versions of .net framework assigned to your web applications (application pool), and all the parameters specified in the web.config file.

  • Exception when starting Server EMGC_OMS1 (updated 12.1.0.2)

    Hello

    I just upgraded my EM 12 c R1 to R2 test environment.
    The environment runs on Windows: Server Admin and monitor targets.

    After the steps after installation in the migration guide, Weblogic console starts well (using % DOMAIN_HOME%\startWebLogic.cmd), but I'm having trouble to start Enterprise Manager Cloud Control console/web server.

    After trying to start the EMGC_OMS1 managed server in WebLogic console, I get the following:

    -EMGC_OMS1 State goes to FAILED_NOT_RESTARTABLE.
    -The Server Admin log show the following errors:
    14:33:05EMReposLoginModuleImpl 28-Sep-2012: throw LoginException: authentication failed: User. Password not supplied
    < 28 sep 2012 14:33:05 CEST > < WARNING > < DeploymentService > < BEA-290014 > < username or password. >
    14:33:07EMReposLoginModuleImpl 28-Sep-2012: throw LoginException: authentication failed: User. Password not supplied
    < 28 sep 2012 14:33:07 CEST > < error > < Configuration Management > < BEA-150035 > < an attempt was made to download the configuration for > EMGC_OMS1 server by the user with an invalid password. >
    < 28 sep 2012 14:33:13 CEST > < error > < NodeManager > < BEA-300048 > < could not start the server EMGC_OMS1: Exception when starting Server > "EMGC_OMS1" >
    I tried the following:

    -Write file boot.properties in %DOMAIN_HOME%\servers\EMGC_ADMINSERVER\security and %DOMAIN_HOME%\servers\EMGC_OMS1\security with the credentials for the user the Weblogic admin again.
    -Value username and password on "Parameters of EMGC_OMS1" > Configuration > Weblogic Console tab to start the server.

    None of them succeeded.

    I also compared the former (R1) installation folder with a new one for the R2, but I don't see any relevant difference.

    You have suggestions on what can be wrong?

    Thanks in advance,
    Angel

    Hi Angel,

    Please see the following doc for instructions on starting a CMS.

    http://docs.Oracle.com/CD/E24628_01/doc.121/e24473/emctl.htm#BABFEEAJ

    Kind regards
    -Loc

  • Procedure failed when using bulk collect clause and works with the cursor

    Hi all

    I use "BULK collect into" clause in my procedure and it is a failure after 21 minutes and gives the error "end of file communication channel.
    After that this error comes when I tried to connect the database it gives following error.

    ORA-01034 - Oracle is not available.
    ORA - 27101-shared memory realm does not exist.
    SVR4 error: 2: no such file or directory.

    When I use the cursor instead of the COLLECTION in BULK IN the clause, it runs successfully.

    Following the code works with the slider.
    procedure work_kiosk_full (an_jobid in number, ac_sqlcode out varchar2, ac_sqlerrm out varchar2) is

    ld_curr_time Date;

    cursor cur_work_kiosk is
    Select distinct jt.jt_id AS jt_id,
    NVL ((ROUND ((jt_date_completed-jt_date_requested) * 24, 2)))
    ),
    0
    ) AS actual_hrs_to_complete,
    NVL ((ROUND ((jt_date_responded-jt_date_requested) * 24, 2)))
    ),
    0
    ) AS actual_hrs_to_respond,
    peo1.peo_name AS agent_name,
    peo1.peo_user_name AS asagent_soe_id,
    Le.lglent_desc AS ap_system,
    "" AS assign_work_request_comment,
    DECODE (jt.jt_bill_id,
    138802, 'BILLABLE CLIENT. "
    138803, "CONTRACTED"
    "138804, ' BILLABLE IN-HOUSE."
    NULL, ' '
    ) Billable.
    BL.bldg_name_cc BUILDING, bl.bldg_id_ls AS building_id,
    DECODE (bl.bldg_active_cc,
    'Y', 'ACTIVE',
    'INACTIVE '.
    ) AS building_status,
    DECODE (jt.jt_wrk_cause_id,
    141521, "STANDARD WEAR."
    141522, "NEGLIGENCE."
    141523, "ACCIDENTAL."
    141524, "MECHANICAL FAILURE."
    141525, "CONTROL."
    141526, "VANDAL."
    141527, 'STANDARD ',.
    141528, "WORK PROJECT",.
    6058229, "TEST."
    NULL, ' '
    ) AS cause_type,
    ' ' AS comments, peo3.peo_name AS completed_by,
    JT.jt_requestor_email AS contact_email,
    JT.jt_requestor_name_first
    || ' '
    || JT.jt_requestor_name_last AS contact_name,
    JT.jt_requestor_phone AS contact_phone,
    CC.cstctrcd_apcode AS corp_code,
    CC.cstctrcd_code AS cost_center,
    JT.jt_date_closed AS date_closed,
    JT.jt_date_completed AS date_completed,
    JT.jt_date_requested AS date_requested,
    JT.jt_date_responded AS date_responded,
    JT.jt_date_response_ecd AS date_response_ecd,
    JT.jt_date_scheduled AS date_scheduled,
    DECODE (jt.jt_def_id,
    139949, "WTG VENDOR RESPONSE."
    139950, "WAITING ON PARTS."
    139951, "AVAILABILITY OF THE HAND ŒUVRE."
    139952, "WORK DEFERRED-HI PRI."
    139953, "APPROVAL OF WIND TURBINES."
    139954, "FUNDING."
    139955, "ACCESS DENIED."
    139956, "WTG MATERIAL."
    NULL, ' '
    ) AS deferral_reason,
    JT.jt_description as description,
    JT.jt_date_resched_ecd IN the development of the young child,
    FMG.facility_manager AS facility_manager,
    FL.floors_text AS FLOOR, gl.genled_desc AS general_ledger,
    '' AS kiosk_date_requested,' ' AS kiosk_dispatch_confirmed.
    "" AS kiosk_dispatched,
    EQP.equip_customer_code AS linked_equipment_alias,
    EQP.equip_id AS linked_equipment_id,
    EQP.equip_text AS linked_equipment_name,
    DECODE (jt_originator_type_id,
    1000, "PROJECT MOVE REQUEST."
    138834, "CUSTOMER OPEN CORRECTION."
    138835, "OPEN REQUEST CUSTOMER."
    138836, "CORRECTIVE MAINTENANCE",.
    138837, "BOOKING CONFERENCE ROOM."
    138838, "PROJECT INITIATED REQUEST."
    138839, "PLANNED PREVENTATIVE MAINTENANCE."
    138840, "COULD START FREE APPLICATION."
    NULL, ' '
    ) AS originator_type,
    "" AS payment_terms, priority_text AS priority_code,
    swoty.sworktype_text AS problem_type,
    Prop.property_name_cc as a property,
    JT.jt_cost_quote_total AS quote_total,
    par.levels_name IN the region,
    DECODE (jt.jt_repdef_id,
    141534, 'ADJUSTED SETTING. "
    141535, "THE TRAINING OF THE END,"
    141536, "NEW REQUEST"
    141537, "NO INVESTIGATION OF REPAIR."
    141538 "REPLACED PARTS."
    141539, 'REPLACE EQUIPMEN.
    1000699, "NEW REQUEST"
    NULL, ' '
    ) AS repair_definitions,
    JT.jt_repairdesc AS MARKED_COR,
    JT.jt_requestor AS applicant, ' ' AS requestor_cost_center.
    JT.jt_requestor_email AS requestor_email,
    JT.jt_requestor_name_first AS requestor_name,
    JT.jt_requestor_phone AS requestor_phone,
    "" LIKE response_time, rm.room_name_cc ROOM,
    P1.peo_provider_code1 AS service_provider,
    P1.peo_address_1 AS service_provider_address,
    peocity.city_text service_provider_city,
    P1.peo_provider_code1 AS service_provider_code,
    peocity.city_country_name AS service_provider_country,
    peocur.currency_text AS service_provider_currency,
    P1.peo_name AS service_provider_description,
    P1.peo_dispatch_method AS serv_prov_dispatc_hmethod,
    P1.peo_rate_double AS serv_prov_double_time_rate,
    P1.peo_email AS service_provider_email,
    P1.peo_emergency_phone AS serv_prov_emergency_phone,
    P1.peo_fax AS service_provider_fax_number,
    P1.peo_home_phone AS service_provider_home_phone,
    P1.peo_rate_hourly AS service_provider_hourly_rate,
    P1.peo_title AS service_provider_job_title,
    P1.peo_method_id AS service_provider_method,
    P1.peo_cell_phone AS service_provider_mobile_phone,
    P1.peo_pager AS service_provider_pager,
    P1.peo_rate_differential AS service_provider_rates,
    P1.peo_rate_differential AS ser_prov_shift_differential,
    peocity.city_state_prov_text AS serv_prov_state_province,
    DECODE (p1.peo_active,
    'Y', 'ACTIVE',
    'INACTIVE '.
    ) AS service_provider_status,
    P1.peo_url AS serv_prov_web_site_address,
    P1.peo_phone AS service_provider_work_phone,
    P1.peo_postal_code AS serv_prov_zip_postal_code, ' ' shift, as.
    ' ' AS skill,.
    DECODE (jt.jt_bigstatus_id,
    138813, «NEWS»,
    138814 "PENDING."
    138815, 'OPEN ',.
    138816, "END."
    138817, 'CLOSED ',.
    138818, "CANCELLED."
    NULL, ' '
    ) The STATUS,
    Lev.levels_name IN the subregion, ' ' IN the trade.
    P1.peo_ls_interface_code1 AS vendor_id,
    P1.peo_fax AS vendor_purchasing_fax,
    P1.peo_vendor_site_code AS vendor_sitecode,
    JT.jt_id AS vendor_ticket, p1.peo_name AS vendor_companyname,
    JT.jt_requestor_vip AS vip, wo.wo_id AS work_order_no,
    JT.jt_id AS work_request,
    JT.jt_class_id AS work_request_class,
    woty.worktype_text AS work_type, ' ' AS wr_cost.
    JT.jt_description AS wr_description,
    "" AS wr_dispatch_method,
    DECODE (jt.jt_bigstatus_id,
    138813, «NEWS»,
    138814 "PENDING."
    138815, 'OPEN ',.
    138816, "END."
    138817, 'CLOSED ',.
    138818, "CANCELLED."
    NULL, ' '
    ) AS wr_status,
    ctrY.country_name as a country
    OF citi.jobticket jt,.
    Citi.Property prop,
    Citi.Bldg bl,
    Citi.bldg_levels bldglvl,
    civil LEVEL lev,
    civil by LEVELS.
    (SELECT crstools.stragg (peo_name) facility_manager,
    bldgcon_bldg_id
    OF citi.bldg_contacts, citi.people
    WHERE bldgcon_peo_id = peo_id
    AND IN bldgcon_contype_id (40181, 10142)
    FMG GROUP BY bldgcon_bldg_id),
    Citi.floors, fl,
    Citi.Room rm,
    Citi.general_ledger gl,
    the Citi.legal_entity
    Citi.cost_center_codes cc,
    Citi.Equipment eqp,
    Citi.workType woty,
    Citi.subworktype swoty,
    Citi.work_order wo,
    Jtwo Citi.jt_workers,
    Citi.Priority,
    Ctry Citi.Country,
    Citi.People p1,
    Citi.People peo3,
    Citi.People peo1,
    Citi.City peocity,
    Citi.Currency peocur
    WHERE jt.jt_bldg_id = bl.bldg_id
    AND bl.bldg_id = bldglvl.bldg_levels_bldg_id
    AND bldglvl.bldg_levels_levels_id = lev.levels_id
    AND lev.levels_parent = par.levels_id (+)
    AND prop.property_id = bl.bldg_property_id
    AND bl.bldg_active_ls <>' n
    AND jt.jt_floors_id = fl.floors_id (+)
    AND jt.jt_room_id = rm.room_id (+)
    AND jt.jt_bldg_id = fmg.bldgcon_bldg_id (+)
    AND jt.jt_genled_id = gl.genled_id (+)
    AND gl.genled_lglent_id = le.lglent_id (+)
    AND jt.jt_cstctrcd_id = cc.cstctrcd_id (+)
    AND jt.jt_equip_id = eqp.equip_id (+)
    AND jt.jt_id = jtwo.jtw_jt_id (+)
    AND jt.jt_worktype_id = woty.worktype_id (+)
    AND jt.jt_sworktype_id = swoty.sworktype_id (+)
    AND jt.jt_wo_id = wo.wo_id
    AND jt.jt_priority_id = priority_id (+)
    - AND jt.jt_date_requested > = ADD_MONTHS (SYSDATE,-12)
    AND jt.jt_last_update > = ADD_MONTHS (ld_curr_time-12)
    AND bl.bldg_country_id = ctry.country_id
    AND jtwo.jtw_peo_id = p1.peo_id (+)
    AND p1.peo_city_id = peocity.city_id (+)
    AND jt.jt_completed_by_peo_id = peo3.peo_id (+)
    AND p1.peo_rate_currency_id = peocur.currency_id (+)
    AND jt.jt_agent_peo_id = peo1.peo_id (+);


    BEGIN
    run immediately 'truncate table crstools.drt_bom_work_kiosk;
    Select sysdate in double ld_curr_time;
    FOR cur_rec in cur_work_kiosk LOOP
    IF MOD (cur_work_kiosk % rowcount, 10000) = 0 then
    COMMIT;
    END IF;

    INSERT INTO crstools.drt_bom_work_kiosk
    (JT_ID
    ACTUAL_HRS_TO_COMPLETE
    ACTUAL_HRS_TO_RESPOND
    AGENT_NAME
    ASAGENT_SOE_ID
    AP_SYSTEM
    ASSIGN_WORK_REQUEST_COMMENT
    BILLABLE
    BUILDING
    BUILDING_ID
    BUILDING_STATUS
    CAUSE_TYPE
    COMMENTS
    COMPLETED_BY
    CONTACT_EMAIL
    CONTACT_NAME
    CONTACT_PHONE
    CORP_CODE
    COST_CENTER
    DATE_CLOSED
    DATE_COMPLETED
    DATE_REQUESTED
    DATE_RESPONDED
    DATE_RESPONSE_ECD
    DATE_SCHEDULED
    DEFERRAL_REASON
    DESCRIPTION
    DPE
    FACILITY_MANAGER
    FLOOR
    GENERAL_LEDGER
    KIOSK_DATE_REQUESTED
    KIOSK_DISPATCH_CONFIRMED
    KIOSK_DISPATCHED
    LINKED_EQUIPMENT_ALIAS
    LINKED_EQUIPMENT_ID
    LINKED_EQUIPMENT_NAME
    ORIGINATOR_TYPE
    PAYMENT_TERMS
    PRIORITY_CODE
    PROBLEM_TYPE
    PROPERTY
    QUOTE_TOTAL
    REGION
    REPAIR_DEFINITIONS
    MARKED_COR
    APPLICANT
    REQUESTOR_COST_CENTER
    REQUESTOR_EMAIL
    REQUESTOR_NAME
    REQUESTOR_PHONE
    RESPONSE_TIME
    ROOM
    SERVICE_PROVIDER
    SERVICE_PROVIDER_ADDRESS
    SERVICE_PROVIDER_CITY
    SERVICE_PROVIDER_CODE
    SERVICE_PROVIDER_COUNTRY
    SERVICE_PROVIDER_CURRENCY
    SERVICE_PROVIDER_DESCRIPTION
    SERV_PROV_DISPATC_HMETHOD
    SERV_PROV_DOUBLE_TIME_RATE
    SERVICE_PROVIDER_EMAIL
    SERV_PROV_EMERGENCY_PHONE
    SERVICE_PROVIDER_FAX_NUMBER
    SERVICE_PROVIDER_HOME_PHONE
    SERVICE_PROVIDER_HOURLY_RATE
    SERVICE_PROVIDER_JOB_TITLE
    SERVICE_PROVIDER_METHOD
    SERVICE_PROVIDER_MOBILE_PHONE
    SERVICE_PROVIDER_PAGER
    SERVICE_PROVIDER_RATES
    SER_PROV_SHIFT_DIFFERENTIAL
    SERV_PROV_STATE_PROVINCE
    SERVICE_PROVIDER_STATUS
    SERV_PROV_WEB_SITE_ADDRESS
    SERVICE_PROVIDER_WORK_PHONE
    SERV_PROV_ZIP_POSTAL_CODE
    MAJ
    SKILLS
    STATUS
    SUBREGION
    TRADE
    VENDOR_ID
    VENDOR_PURCHASING_FAX
    VENDOR_SITECODE
    VENDOR_TICKET
    VENDOR_COMPANYNAME
    VIP
    WORK_ORDER_NO
    WORK_REQUEST
    WORK_REQUEST_CLASS
    WORK_TYPE
    WR_COST
    WR_DESCRIPTION
    WR_DISPATCH_METHOD
    WR_STATUS
    COUNTRY
    CREATE_DATE
    )
    VALUES
    (cur_rec.jt_id
    cur_rec, ACTUAL_HRS_TO_COMPLETE
    cur_rec, ACTUAL_HRS_TO_RESPOND
    cur_rec, AGENT_NAME
    cur_rec, ASAGENT_SOE_ID
    cur_rec, AP_SYSTEM
    cur_rec, ASSIGN_WORK_REQUEST_COMMENT
    BILLABLE cur_rec.
    cur_rec, BUILDING
    cur_rec, BUILDING_ID
    cur_rec, BUILDING_STATUS
    cur_rec, CAUSE_TYPE
    cur_rec.COMMENTS
    cur_rec.COMPLETED_BY
    cur_rec, CONTACT_EMAIL
    cur_rec, CONTACT_NAME
    cur_rec, CONTACT_PHONE
    cur_rec, CORP_CODE
    cur_rec, COST_CENTER
    cur_rec, DATE_CLOSED
    cur_rec, DATE_COMPLETED
    cur_rec, DATE_REQUESTED
    cur_rec, DATE_RESPONDED
    cur_rec, DATE_RESPONSE_ECD
    cur_rec, DATE_SCHEDULED
    cur_rec, DEFERRAL_REASON
    cur_rec, DESCRIPTION
    cur_rec, DEVELOPMENT OF THE YOUNG CHILD
    cur_rec, FACILITY_MANAGER
    cur_rec, FLOOR
    cur_rec, GENERAL_LEDGER
    cur_rec, KIOSK_DATE_REQUESTED
    cur_rec, KIOSK_DISPATCH_CONFIRMED
    cur_rec, KIOSK_DISPATCHED
    cur_rec, LINKED_EQUIPMENT_ALIAS
    cur_rec, LINKED_EQUIPMENT_ID
    cur_rec, LINKED_EQUIPMENT_NAME
    cur_rec, ORIGINATOR_TYPE
    cur_rec, PAYMENT_TERMS
    cur_rec, PRIORITY_CODE
    cur_rec, PROBLEM_TYPE
    cur_rec, PROPERTY
    cur_rec, QUOTE_TOTAL
    cur_rec, REGION
    cur_rec, REPAIR_DEFINITIONS
    cur_rec, MARKED_COR
    cur_rec, APPLICANT
    cur_rec, REQUESTOR_COST_CENTER
    cur_rec, REQUESTOR_EMAIL
    cur_rec, REQUESTOR_NAME
    cur_rec, REQUESTOR_PHONE
    cur_rec, RESPONSE_TIME
    cur_rec, ROOM
    cur_rec, SERVICE_PROVIDER
    cur_rec, SERVICE_PROVIDER_ADDRESS
    cur_rec, SERVICE_PROVIDER_CITY
    cur_rec, SERVICE_PROVIDER_CODE
    cur_rec, SERVICE_PROVIDER_COUNTRY
    cur_rec, SERVICE_PROVIDER_CURRENCY
    cur_rec, SERVICE_PROVIDER_DESCRIPTION
    cur_rec, SERV_PROV_DISPATC_HMETHOD
    cur_rec, SERV_PROV_DOUBLE_TIME_RATE
    cur_rec, SERVICE_PROVIDER_EMAIL
    cur_rec, SERV_PROV_EMERGENCY_PHONE
    cur_rec, SERVICE_PROVIDER_FAX_NUMBER
    cur_rec, SERVICE_PROVIDER_HOME_PHONE
    cur_rec, SERVICE_PROVIDER_HOURLY_RATE
    cur_rec, SERVICE_PROVIDER_JOB_TITLE
    cur_rec, SERVICE_PROVIDER_METHOD
    cur_rec, SERVICE_PROVIDER_MOBILE_PHONE
    cur_rec, SERVICE_PROVIDER_PAGER
    cur_rec, SERVICE_PROVIDER_RATES
    cur_rec, SER_PROV_SHIFT_DIFFERENTIAL
    cur_rec, SERV_PROV_STATE_PROVINCE
    cur_rec, SERVICE_PROVIDER_STATUS
    cur_rec, SERV_PROV_WEB_SITE_ADDRESS
    cur_rec, SERVICE_PROVIDER_WORK_PHONE
    cur_rec, SERV_PROV_ZIP_POSTAL_CODE
    cur_rec, UPDATE
    cur_rec SKILL.
    cur_rec, STATUS
    cur_rec subregion.
    cur_rec, TRADE
    cur_rec, VENDOR_ID
    cur_rec, VENDOR_PURCHASING_FAX
    cur_rec, VENDOR_SITECODE
    cur_rec, VENDOR_TICKET
    cur_rec, VENDOR_COMPANYNAME
    cur_rec, VIP
    cur_rec, WORK_ORDER_NO
    cur_rec, WORK_REQUEST
    cur_rec, WORK_REQUEST_CLASS
    cur_rec, WORK_TYPE
    cur_rec, WR_COST
    cur_rec, WR_DESCRIPTION
    cur_rec, WR_DISPATCH_METHOD
    cur_rec, WR_STATUS
    cur_rec, COUNTRY
    ld_curr_time
    );
    END LOOP;

    COMMIT;

    exception
    while others then
    Rollback;
    dbms_output.put_line('SQLCODE:'||) SQLCODE. "Error :'|| SQLERRM);

    end work_kiosk_full;

    Note: total record inserted 849000.

    The same code does not work with big collect in would adopt.

    Please help me why this is happening.


    Thanks and greetings
    Shyam ~.

    Shyam,

    I agree with Billy.

    Why are you not using an INSERT..SELECT ?
    
    Also, what are you trying to achieve by
    - incremental commits?
    - copying data from one table to another (using expensive I/O)?
    - using dynamic DML?
    
    Most of these approaches are typically wrong - and not recommended for scalable and performant Oracle applications.
    

    I could see you using a CURSOR for LOOP if you change the data inserted so that you could not encapsulate the changes in a query, but you do an insert in right in the table of your cursor. A much more effective way would be to use the following changes I made to your code sample:

    PROCEDURE WORK_KIOSK_FULL(AN_JOBID   IN NUMBER,
                              AC_SQLCODE OUT VARCHAR2,
                              AC_SQLERRM OUT VARCHAR2) IS
    BEGIN
       EXECUTE IMMEDIATE 'truncate table crstools.drt_bom_work_kiosk';
    
       /* Note:  The APPEND hint forces a Direct Path INSERT (see Link below code sample) and is combined with the NOLOGGING Hint */
       /*        To dramtically increase performance.  The Direct Path INSERT inserts records above the High-Water Mark on the table. */
    
       INSERT /*+ APPEND NOLOGGING */ INTO CRSTOOLS.DRT_BOM_WORK_KIOSK
          (JT_ID
          ,ACTUAL_HRS_TO_COMPLETE
          ,ACTUAL_HRS_TO_RESPOND
          ,AGENT_NAME
          ,ASAGENT_SOE_ID
          ,AP_SYSTEM
    --      ,ASSIGN_WORK_REQUEST_COMMENT     /* I commented out this COLUMN because it doesn't make sense to me to insert */
          ,BILLABLE                          /* a couple of space characters into a table.   If the intent is to leave the column NULL */
          ,BUILDING                          /* don't include it in your INSERT statement and it will be NULL.  If there is a valid reason */
          ,BUILDING_ID                       /* for inserting the spaces, then remove the "line comments" from the insert and select statments */
          ,BUILDING_STATUS
          ,CAUSE_TYPE
    --      ,COMMENTS
          ,COMPLETED_BY
          ,CONTACT_EMAIL
          ,CONTACT_NAME
          ,CONTACT_PHONE
          ,CORP_CODE
          ,COST_CENTER
          ,DATE_CLOSED
          ,DATE_COMPLETED
          ,DATE_REQUESTED
          ,DATE_RESPONDED
          ,DATE_RESPONSE_ECD
          ,DATE_SCHEDULED
          ,DEFERRAL_REASON
          ,DESCRIPTION
          ,ECD
          ,FACILITY_MANAGER
          ,FLOOR
          ,GENERAL_LEDGER
    --      ,KIOSK_DATE_REQUESTED
    --      ,KIOSK_DISPATCH_CONFIRMED
    --      ,KIOSK_DISPATCHED
          ,LINKED_EQUIPMENT_ALIAS
          ,LINKED_EQUIPMENT_ID
          ,LINKED_EQUIPMENT_NAME
          ,ORIGINATOR_TYPE
    --      ,PAYMENT_TERMS
          ,PRIORITY_CODE
          ,PROBLEM_TYPE
          ,PROPERTY
          ,QUOTE_TOTAL
          ,REGION
          ,REPAIR_DEFINITIONS
          ,REPAIR_DESCRIPTION
          ,REQUESTOR
    --      ,REQUESTOR_COST_CENTER
          ,REQUESTOR_EMAIL
          ,REQUESTOR_NAME
          ,REQUESTOR_PHONE
    --      ,RESPONSE_TIME
          ,ROOM
          ,SERVICE_PROVIDER
          ,SERVICE_PROVIDER_ADDRESS
          ,SERVICE_PROVIDER_CITY
          ,SERVICE_PROVIDER_CODE
          ,SERVICE_PROVIDER_COUNTRY
          ,SERVICE_PROVIDER_CURRENCY
          ,SERVICE_PROVIDER_DESCRIPTION
          ,SERV_PROV_DISPATC_HMETHOD
          ,SERV_PROV_DOUBLE_TIME_RATE
          ,SERVICE_PROVIDER_EMAIL
          ,SERV_PROV_EMERGENCY_PHONE
          ,SERVICE_PROVIDER_FAX_NUMBER
          ,SERVICE_PROVIDER_HOME_PHONE
          ,SERVICE_PROVIDER_HOURLY_RATE
          ,SERVICE_PROVIDER_JOB_TITLE
          ,SERVICE_PROVIDER_METHOD
          ,SERVICE_PROVIDER_MOBILE_PHONE
          ,SERVICE_PROVIDER_PAGER
          ,SERVICE_PROVIDER_RATES
          ,SER_PROV_SHIFT_DIFFERENTIAL
          ,SERV_PROV_STATE_PROVINCE
          ,SERVICE_PROVIDER_STATUS
          ,SERV_PROV_WEB_SITE_ADDRESS
          ,SERVICE_PROVIDER_WORK_PHONE
          ,SERV_PROV_ZIP_POSTAL_CODE
    --      ,SHIFT
    --      ,SKILL
          ,STATUS
          ,SUBREGION
    --      ,TRADE
          ,VENDOR_ID
          ,VENDOR_PURCHASING_FAX
          ,VENDOR_SITECODE
          ,VENDOR_TICKET
          ,VENDOR_COMPANYNAME
          ,VIP
          ,WORK_ORDER_NO
          ,WORK_REQUEST
          ,WORK_REQUEST_CLASS
          ,WORK_TYPE
    --      ,WR_COST
          ,WR_DESCRIPTION
    --      ,WR_DISPATCH_METHOD
          ,WR_STATUS
          ,COUNTRY
          ,CREATE_DATE
          )
       VALUES
          (SELECT DISTINCT
              JT.JT_ID AS JT_ID
             ,NVL((ROUND((JT_DATE_COMPLETED - JT_DATE_REQUESTED) * 24,2)),0) AS ACTUAL_HRS_TO_COMPLETE
             ,NVL((ROUND((JT_DATE_RESPONDED - JT_DATE_REQUESTED) * 24,2)),0) AS ACTUAL_HRS_TO_RESPOND
             ,PEO1.PEO_NAME AS AGENT_NAME
             ,PEO1.PEO_USER_NAME AS ASAGENT_SOE_ID
             ,LE.LGLENT_DESC AS AP_SYSTEM
    --         ,' ' AS ASSIGN_WORK_REQUEST_COMMENT
             ,DECODE(JT.JT_BILL_ID,138802,'CLIENT BILLABLE'
                                  ,138803,'CONTRACTED'
                                  ,138804,'INTERNAL BILLABLE',NULL,' ') AS BILLABLE
             ,BL.BLDG_NAME_CC AS BUILDING
             ,BL.BLDG_ID_LS AS BUILDING_ID
             ,DECODE(BL.BLDG_ACTIVE_CC, 'Y', 'ACTIVE', 'INACTIVE') AS BUILDING_STATUS
             ,DECODE(JT.JT_WRK_CAUSE_ID,141521,'STANDARD WEAR AND TEAR'
                                       ,141522,'NEGLIGENCE'
                                       ,141523,'ACCIDENTAL'
                                       ,141524,'MECHANICAL MALFUNCTION'
                                       ,141525,'OVERSIGHT'
                                       ,141526,'VANDAL'
                                       ,141527,'STANDARD'
                                       ,141528,'PROJECT WORK'
                                       ,6058229,'TEST',NULL,' ') AS CAUSE_TYPE
    --         ,' ' AS COMMENTS
             ,PEO3.PEO_NAME AS COMPLETED_BY
             ,JT.JT_REQUESTOR_EMAIL AS CONTACT_EMAIL
             ,JT.JT_REQUESTOR_NAME_FIRST || ' ' ||JT.JT_REQUESTOR_NAME_LAST AS CONTACT_NAME
             ,JT.JT_REQUESTOR_PHONE AS CONTACT_PHONE
             ,CC.CSTCTRCD_APCODE AS CORP_CODE
             ,CC.CSTCTRCD_CODE AS COST_CENTER
             ,JT.JT_DATE_CLOSED AS DATE_CLOSED
             ,JT.JT_DATE_COMPLETED AS DATE_COMPLETED
             ,JT.JT_DATE_REQUESTED AS DATE_REQUESTED
             ,JT.JT_DATE_RESPONDED AS DATE_RESPONDED
             ,JT.JT_DATE_RESPONSE_ECD AS DATE_RESPONSE_ECD
             ,JT.JT_DATE_SCHEDULED AS DATE_SCHEDULED
             ,DECODE(JT.JT_DEF_ID,139949,'WTG VENDOR RESPONSE'
                                 ,139950,'WAITING ON PARTS'
                                 ,139951,'LABOR AVAILABILITY'
                                 ,139952,'DEFERRED- HI PRI WORK'
                                 ,139953,'WTG APPROVAL'
                                 ,139954,'FUNDING REQUIRED'
                                 ,139955,'ACCESS DENIED'
                                 ,139956,'WTG MATERIAL',NULL,' ') AS DEFERRAL_REASON
             ,JT.JT_DESCRIPTION AS DESCRIPTION
             ,JT.JT_DATE_RESCHED_ECD AS ECD
             ,FMG.FACILITY_MANAGER AS FACILITY_MANAGER
             ,FL.FLOORS_TEXT AS FLOOR
             ,GL.GENLED_DESC AS GENERAL_LEDGER
    --         ,' ' AS KIOSK_DATE_REQUESTED
    --         ,' ' AS KIOSK_DISPATCH_CONFIRMED
    --         ,' ' AS KIOSK_DISPATCHED
             ,EQP.EQUIP_CUSTOMER_CODE AS LINKED_EQUIPMENT_ALIAS
             ,EQP.EQUIP_ID AS LINKED_EQUIPMENT_ID
             ,EQP.EQUIP_TEXT AS LINKED_EQUIPMENT_NAME
             ,DECODE(JT_ORIGINATOR_TYPE_ID,1000,'PROJECT MOVE REQUEST'
                                          ,138834,'CUSTOMER INITIATED CORRECTION'
                                          ,138835,'CUSTOMER INITIATED REQUEST'
                                          ,138836,'CORRECTIVE MAINTENANCE'
                                          ,138837,'CONFERENCE ROOM BOOKING'
                                          ,138838,'PROJECT INITIATED REQUEST'
                                          ,138839,'PLANNED PREVENTIVE MAINTENANCE'
                                          ,138840,'SELF INITATED REQUEST',NULL,' ') AS ORIGINATOR_TYPE
    --         ,' ' AS PAYMENT_TERMS
             ,PRIORITY_TEXT AS PRIORITY_CODE
             ,SWOTY.SWORKTYPE_TEXT AS PROBLEM_TYPE
             ,PROP.PROPERTY_NAME_CC AS PROPERTY
             ,JT.JT_COST_QUOTE_TOTAL AS QUOTE_TOTAL
             ,PAR.LEVELS_NAME AS REGION
             ,DECODE(JT.JT_REPDEF_ID,141534,'ADJUSTED SETTING'
                                    ,141535,'TRAINING FOR END'
                                    ,141536,'NEW REQUEST'
                                    ,141537,'NO REPAIR REQUIR'
                                    ,141538,'REPLACED PARTS'
                                    ,141539,'REPLACE EQUIPMEN'
                                    ,1000699,'NEW REQUEST',NULL,' ') AS REPAIR_DEFINITIONS
             ,JT.JT_REPAIRDESC AS REPAIR_DESCRIPTION
             ,JT.JT_REQUESTOR AS REQUESTOR
    --         ,' ' AS REQUESTOR_COST_CENTER
             ,JT.JT_REQUESTOR_EMAIL AS REQUESTOR_EMAIL
             ,JT.JT_REQUESTOR_NAME_FIRST AS REQUESTOR_NAME
             ,JT.JT_REQUESTOR_PHONE AS REQUESTOR_PHONE
    --         ,' ' AS RESPONSE_TIME
             ,RM.ROOM_NAME_CC AS ROOM
             ,P1.PEO_PROVIDER_CODE1 AS SERVICE_PROVIDER
             ,P1.PEO_ADDRESS_1 AS SERVICE_PROVIDER_ADDRESS
             ,PEOCITY.CITY_TEXT SERVICE_PROVIDER_CITY
             ,P1.PEO_PROVIDER_CODE1 AS SERVICE_PROVIDER_CODE
             ,PEOCITY.CITY_COUNTRY_NAME AS SERVICE_PROVIDER_COUNTRY
             ,PEOCUR.CURRENCY_TEXT AS SERVICE_PROVIDER_CURRENCY
             ,P1.PEO_NAME AS SERVICE_PROVIDER_DESCRIPTION
             ,P1.PEO_DISPATCH_METHOD AS SERV_PROV_DISPATC_HMETHOD
             ,P1.PEO_RATE_DOUBLE AS SERV_PROV_DOUBLE_TIME_RATE
             ,P1.PEO_EMAIL AS SERVICE_PROVIDER_EMAIL
             ,P1.PEO_EMERGENCY_PHONE AS SERV_PROV_EMERGENCY_PHONE
             ,P1.PEO_FAX AS SERVICE_PROVIDER_FAX_NUMBER
             ,P1.PEO_HOME_PHONE AS SERVICE_PROVIDER_HOME_PHONE
             ,P1.PEO_RATE_HOURLY AS SERVICE_PROVIDER_HOURLY_RATE
             ,P1.PEO_TITLE AS SERVICE_PROVIDER_JOB_TITLE
             ,P1.PEO_METHOD_ID AS SERVICE_PROVIDER_METHOD
             ,P1.PEO_CELL_PHONE AS SERVICE_PROVIDER_MOBILE_PHONE
             ,P1.PEO_PAGER AS SERVICE_PROVIDER_PAGER
             ,P1.PEO_RATE_DIFFERENTIAL AS SERVICE_PROVIDER_RATES
             ,P1.PEO_RATE_DIFFERENTIAL AS SER_PROV_SHIFT_DIFFERENTIAL
             ,PEOCITY.CITY_STATE_PROV_TEXT AS SERV_PROV_STATE_PROVINCE
             ,DECODE(P1.PEO_ACTIVE, 'Y', 'ACTIVE', 'INACTIVE') AS SERVICE_PROVIDER_STATUS
             ,P1.PEO_URL AS SERV_PROV_WEB_SITE_ADDRESS
             ,P1.PEO_PHONE AS SERVICE_PROVIDER_WORK_PHONE
             ,P1.PEO_POSTAL_CODE AS SERV_PROV_ZIP_POSTAL_CODE
    --         ,' ' AS SHIFT
    --         ,' ' AS SKILL
             ,DECODE(JT.JT_BIGSTATUS_ID,138813,'NEW'
                                       ,138814,'PENDING'
                                       ,138815,'OPEN'
                                       ,138816,'COMPLETED'
                                       ,138817,'CLOSED'
                                       ,138818,'CANCELLED',NULL,' ') AS STATUS
             ,LEV.LEVELS_NAME AS SUBREGION
    --         ,' ' AS TRADE
             ,P1.PEO_LS_INTERFACE_CODE1 AS VENDOR_ID
             ,P1.PEO_FAX AS VENDOR_PURCHASING_FAX
             ,P1.PEO_VENDOR_SITE_CODE AS VENDOR_SITECODE
             ,JT.JT_ID AS VENDOR_TICKET
             ,P1.PEO_NAME AS VENDOR_COMPANYNAME
             ,JT.JT_REQUESTOR_VIP AS VIP
             ,WO.WO_ID AS WORK_ORDER_NO
             ,JT.JT_ID AS WORK_REQUEST
             ,JT.JT_CLASS_ID AS WORK_REQUEST_CLASS
             ,WOTY.WORKTYPE_TEXT AS WORK_TYPE
    --         ,' ' AS WR_COST
             ,JT.JT_DESCRIPTION AS WR_DESCRIPTION
    --         ,' ' AS WR_DISPATCH_METHOD
             ,DECODE(JT.JT_BIGSTATUS_ID,138813,'NEW'
                                       ,138814,'PENDING'
                                       ,138815,'OPEN'
                                       ,138816,'COMPLETED'
                                       ,138817,'CLOSED'
                                       ,138818,'CANCELLED',NULL,' ') AS WR_STATUS
             ,CTRY.COUNTRY_NAME AS COUNTRY
             ,SYSDATE --LD_CURR_TIME
         FROM CITI.JOBTICKET JT,
              CITI.PROPERTY PROP,
              CITI.BLDG BL,
              CITI.BLDG_LEVELS BLDGLVL,
              CITI.LEVELS LEV,
              CITI.LEVELS PAR,
              (SELECT CRSTOOLS.STRAGG(PEO_NAME) FACILITY_MANAGER,
                      BLDGCON_BLDG_ID
                 FROM CITI.BLDG_CONTACTS, CITI.PEOPLE
                WHERE BLDGCON_PEO_ID = PEO_ID
                  AND BLDGCON_CONTYPE_ID IN (40181, 10142)
                GROUP BY BLDGCON_BLDG_ID) FMG,
              CITI.FLOORS FL,
              CITI.ROOM RM,
              CITI.GENERAL_LEDGER GL,
              CITI.LEGAL_ENTITY LE,
              CITI.COST_CENTER_CODES CC,
              CITI.EQUIPMENT EQP,
              CITI.WORKTYPE WOTY,
              CITI.SUBWORKTYPE SWOTY,
              CITI.WORK_ORDER WO,
              CITI.JT_WORKERS JTWO,
              CITI.PRIORITY,
              CITI.COUNTRY CTRY,
              CITI.PEOPLE P1,
              CITI.PEOPLE PEO3,
              CITI.PEOPLE PEO1,
              CITI.CITY PEOCITY,
              CITI.CURRENCY PEOCUR
        WHERE JT.JT_BLDG_ID = BL.BLDG_ID
          AND BL.BLDG_ID = BLDGLVL.BLDG_LEVELS_BLDG_ID
          AND BLDGLVL.BLDG_LEVELS_LEVELS_ID = LEV.LEVELS_ID
          AND LEV.LEVELS_PARENT = PAR.LEVELS_ID(+)
          AND PROP.PROPERTY_ID = BL.BLDG_PROPERTY_ID
          AND BL.BLDG_ACTIVE_LS = 'N'
          AND JT.JT_FLOORS_ID = FL.FLOORS_ID(+)
          AND JT.JT_ROOM_ID = RM.ROOM_ID(+)
          AND JT.JT_BLDG_ID = FMG.BLDGCON_BLDG_ID(+)
          AND JT.JT_GENLED_ID = GL.GENLED_ID(+)
          AND GL.GENLED_LGLENT_ID = LE.LGLENT_ID(+)
          AND JT.JT_CSTCTRCD_ID = CC.CSTCTRCD_ID(+)
          AND JT.JT_EQUIP_ID = EQP.EQUIP_ID(+)
          AND JT.JT_ID = JTWO.JTW_JT_ID(+)
          AND JT.JT_WORKTYPE_ID = WOTY.WORKTYPE_ID(+)
          AND JT.JT_SWORKTYPE_ID = SWOTY.SWORKTYPE_ID(+)
          AND JT.JT_WO_ID = WO.WO_ID
          AND JT.JT_PRIORITY_ID = PRIORITY_ID(+)
             --AND jt.jt_date_requested >= ADD_MONTHS (SYSDATE, -12)
          AND JT.JT_LAST_UPDATE >= ADD_MONTHS(LD_CURR_TIME, -12)
          AND BL.BLDG_COUNTRY_ID = CTRY.COUNTRY_ID
          AND JTWO.JTW_PEO_ID = P1.PEO_ID(+)
          AND P1.PEO_CITY_ID = PEOCITY.CITY_ID(+)
          AND JT.JT_COMPLETED_BY_PEO_ID = PEO3.PEO_ID(+)
          AND P1.PEO_RATE_CURRENCY_ID = PEOCUR.CURRENCY_ID(+)
          AND JT.JT_AGENT_PEO_ID = PEO1.PEO_ID(+)
          );
    
       COMMIT;
    
    EXCEPTION
       WHEN OTHERS THEN
          ROLLBACK;
          DBMS_OUTPUT.PUT_LINE('SQLCODE :' || SQLCODE || ' Error :' || SQLERRM);
    
    END WORK_KIOSK_FULL;
    

    Here is the link for infor the [Oracle Direct - Path INSERT | http://download.oracle.com/docs/cd/B10501_01/server.920/a96524/c21dlins.htm#10778].

    Also, if you are really wanting to use a CURSOR for LOOP COLLECTION in BULK, I suggest you read the article by Steven Feuerstein [PL/SQL practices: GEM VRAC | http://www.oracle.com/technology/oramag/oracle/08-mar/o28plsql.html].

    I hope this helps.
    Craig...

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

Maybe you are looking for