Optimize LOV´s

How to optimize execution of LOV´s?

Hello, This question is a little bit too generic. Seems like "how to optimize execution of my database".
Could you, please, provide more details on what you mean by "optimize execution" ?
What is your acutal situation ? What is the real problem with your LOV ?
Francois

Similar Messages

  • Need to Optimize 3D performance on an Envy 17 3D? (...and other random bits)

    Hey there,
    The name's Darren. Nice to meet you. While I'm new to posting around these parts, I have been lurking for a little bit. Here's the deal: I work for another part of HP -- I run the blog, thenextbench.com. There, I'm working on various stories: How-tos, tweaks, tips and whatnot. What I'm wondering is if you guys would find it useful for me to post bits of some of my stories here. For example, I did one a while back about setting up games to work in 3D on an ENVY 17 3D....and getting better performance. 
    (The story originally ran here)
    You’ve bought an ENVY 17 3D. Awesome. You’re rocking it with 3D movies and I’m going to make the wild assumption that you’ve played some games since the Envy 17 3D got updated with that snazzy TriDef 3D ignition software. It’s actually dead-simple to get up-and-running with its 300-plus supported games…but what if there is no preset profile for that brand new game you just bought or that super-obscure title you downloaded from some cool, underground hipster indie gaming site? Well, I’ve been tinkering a little with this machine and wanted to walk you through the proper steps to get you situated. So strap those fancy goggles firmly to your noggin and read on, my friends.
    For the sake of this story, I’m going to walk you through how I got things set up, step-by-step. If any of this seems a little redundant, bear with me. Also, the fine folks at TriDef have been great to work with on this - and while I don’t have all the answers, feel free to hit the comment box below and I’ll do my best to get the straight scoop from them. Also, I’d highly recommend youcheck the ddd forums as well. It is a VERY handy resource for 3D gaming on the ENVY 17 3D.
    STEP 1: The initial setup
    The first time you run the TriDef 3D Ignition software, hit the “Scan” button. It checks directories for known EXE files and instantly populates them on the game launch list. If you installed a popular game directly from a disc, it usually doesn’t have a problem. But if you’re like me, you download your games from digital download services like Steam. (What can I say? I lose discs all the time.) That’s when it gets a little trickier.  The game is afoot!
    STEP 2: Manually adding a game
    Click the “Add” button and it calls up a window. The first thing to look at is the drop down menu. It contains a current list of all the games automatically supported. Your game not there? Don’t sweat it yet. There’s a link in the window to the TriDef forums – there is an active community of users always creating new game profiles for you to download. Still nothing? There is still hope. Select the “Generic” profile for now. We’ll get back to that in Step 3.
    In the same window, you’re going to see a prompt to find the game location. You can either click a shortcut to the game or find the actual EXE file yourself. After that, make sure you create a name for the profile and save it.
    STEP 2a: Adding a Steam game
    I figured that it’d be a piece of cake. And it was at first. I downloadedBorderlands through Steam and when I created a profile pointing to the game file in the Steam directory, everything was groovy.
    (PROTIP: The TriDef software can work with game shortcuts, but Steam holds its game files in the “\Steam\steamapps\common” directory).
    Many other Steam-downloaded games started giving me this oddball warning: “This game doesn’t support DirectX 9, 10 or 11.” These were new games – OF COURSE they supported the latest DX files. So I did a little digging and there is an extra step required to make some Steam games work.
         1.       Click the “Add” button in the TriDef menu
         2.       In the “Executable” field, point to the “steam.exe” file in the main Steam directory.
         3.       Find a shortcut for the game you want to download. (If you don’t have one, open up the Steam client, right-click on the game and select “create shortcut on desktop.”)
         4.       Right-click on the shortcut for the game. At the end of the link location it’ll have a number. Copy that number
         5.       Within the TriDef’s Add window, enter “-applaunch [NUMBER]” in the field where it says “Command Line Arguments (optional)”
         6.       Look for the game’s profile as described above in Step 2.
         7.       Save your progress.
    STEP 3: Optimizing your 3D performance
    Once you’ve cleared those first couple steps, it’s actually not that bad from here. You just want to optimize the experience so that you can get good 3D effects and keep the game playable. What you have to remember is that in order to render a 3D image, the Envy is effectively doubling what’s happening on-screen. My gut reaction with any game is to run it at the laptop’s native screen resolution (1920 by 1080). It looks pretty and can handle running those games in 2D just fine. Bring 3D into the equation and your frame rate will drop. But with a couple tweaks, I’ll get you back up to speed.
         1.       First, start up a test game and just sit around in the game environment, not the game menus.
         2.       Next, on your computer’s number pad, hit the “0” key to call up the 3D overlay menu. Use the 8 and 2 to navigate up and down and the 6 key to make selections.
         3.       Push 2 until the “Performance” option is highlighted and hit the 6 key. There you should see the frame rate displayed (It’s labeled “FPS”). If the FPS number is above 30, youshould be fine. That, of course, can change if there’s a lot of action happening on screen. In short, the higher the frame rate, the better.
                  a.       If your frame rate is below 30, consider lowering the game’s resolution or move the cursor in the 3D overlay menu and lower the game’s 3D effects settings. Just highlight “Quality” and push the 6 to toggle the 3D effects between High, Medium and Low.
         4.       When you find the performance settings you like, hit Alt-Shift-S to save them. The next time you fire up that game, it’ll remember what you set.
    STEP 4: Tweaking your 3D experience.
    All right, so you’ve got the game running great, the 3D effects are there, but maybe you still want to adjust the settings a little further. For instance, the 3D effect is a little more jarring in real-time strategy games like StarCraft II and MMO games because you have menus and cursors floating over the world out of perspective with the rest of the 3D depth.  (Try selecting a target far downfield in an MMO and you’ll know what I’m talking about). There are all sorts of settings here that you can adjust. Experiment by adjusting the numbers for the “Depth” and “Focus” under the 3D menu. Under the “Options” and “Window and Cursor” sections, there are plenty of other toggles to switch on and off to your liking.
    Goes without saying, make sure to hit Alt-Shift-S when you’re done and the Ignition software will remember all your preferences.
    What About….?
    Just so you know, this story is an on-going work-in-progress that I plan to update as I learn more. Here are a couple things that I’m currently looking into with the Envy 17 3D:
    [This Game] Doesn’t Work at All / Is Glitchy in 3D. Yeah, I run into that problem as well every so often. DC Universe Online looks broken with tearing images when the 3D goggles are on. (Looks great in 2D, though). Other games, like Telltale Games’ new Back to the Future titles look five kinds of crazy. Those might be more specific fixes that require a deeper dive later on.
    What about Flash-based games? My gut reaction is that the technology requires DirectX 9, 10 or 11 to work so this one might not be in the cards.
    What about older games optimized for Windows 7? There are plenty of old-skool classics, I’d love to try in 3D, but they were all created in a pre-DirectX 9 world. That’s not stopping me from looking around for any solutions, but no word yet.
    =-=-=-=-=-
    So....was this even remotely helpful? Would you want to see more stuff like this? Or bits from stories I've written posted here? Heck, if there were topics you wanted tackled in story-form, I'm all ears for that as well. 
    Thanks in advance for any feedback!
    GizmoGladstone
    Blogger-in-Chief, HP's thenextbench.com
    thenextbench.com
    While I professionally blog for HP about the latest laptops and desktops, these words are all mine.
    My job: Come up with unusual angles for talking about HP gear, dissecting how stuff works and provide tips on getting better performance with your tech.

    Hi @fjward ,
    Thank you for visiting the HP Support Forums and Welcome. I have looked into your issue HP ENVY 17-3090nr 3D Edition Notebook PC and issues with brightness control and the Catalyst Control Center.  I would uninstall any graphic drivers that are listed and  CCC software, restart the computer, then reinstall only the AMD. It will include the Amd Graphics Driver and Catalyst Control Center restart the computer.
    Here is a link to the HP Support Assistant if you need it. Just download and run the application and it will help with the software and drivers on your system.
    You can do a system restore. System restore will help if something automatically updated and did not go well on the Notebook.
    When performing a System restore please note remove any and all USB devices. Disconnect all non-essential devices as they can cause issues.
    Please let me know how this goes.
    Thanks.
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    Click the “Kudos, Thumbs Up" on the bottom to say “Thanks” for helping!

  • How does iCloud Photo Library and Optimize iPhone Storage Work?

    Even Apple Phone support can't answer these questions:
    How does iCloud Photo Library (Beta) from yesterday's 8.1 update with Optimize iPhone Storage turned on work? (I'm on an iPhone 6)
    It only stores your iPhone/iPad versions on your device, which is amazing. Why would you need anything else? It freed up around 8-10GB of space on my device which is amazing. But how does it work when you use it?
    When you email it seems to ask you, when sending what size you want to send like it's always done. It gives you the original 2.4MB version. This works like I'd imagine and when I received the test email the photo was correct. In this case I assume it hits iCloud and sends it from there, not your actual device. (Like it doesn't re-download it to email it). Correct?
    When posting to Facebook, does it do this same thing? Or is this something Facebook has to build into their iOS app in an update? Or does it just work? Correct?
    When posting to Instagram, does it grab the right version. Obviously the phone optimized version should be fine, but when viewing on a Desktop version of Instagram at instagram.com, will it show the right version?
    Sometimes I backup photos using Image Capture on the Mac. If I did that right now, would it only grab the iPhone versions? Obviously I can just test it but it'd be amazing if someone who knows these things could explain all of these use cases.
    Do you need to be on
    In closing it's more of how does this work? Does it work? Why wouldn't you want to use this feature if it saved space and made more sense? I guess I just would love some real clarity since not even the blogs are explaining how it works in every application.
    In closing part 2. It does seem to work really well, it's just those fringe cases. I just viewed all my photos on https://beta.icloud.com/#photos and they're all there, easy download of the high res, delete, it deletes from my camera roll on my phone, it's amazing, it works, it's magic. Just tell me what issues there are with storing only low res iPhone on my device and if there are none, game on!
    Thanks!

    santiagofrommiami wrote:
    And of those 4.3GB of backup, my Photo Library is 1.4GB.
    So my question is, how do I prevent my Photo Library from being backed up to the cloud, since I already have a backup of it everytime I connect to iPhoto and it copies all those photos to my mac?
    I don't know, sorry. It's supposed to work alongside Photos & iCloud, so that photos are stored only once. When it doesn't work you have a couple of options as I see it –
    Delete the old backups on iCloud to hopefully start over (I don't like deleting the only backup of anything).
    Forget about iCloud backups & use iTunes to backup instead, it might not be suitable if you have no computer etc.
    Buy more storage for iCloud.
    I don't use iCloud backup, it bemuses me with issues like this, there is no easy way to resolve when it fails.
    And one more question while we are at it...can I erase iphoto from my computer now that I have the new Photos app?
    That is up to you. If you are happy you do not need it & have a backup of it go ahead & remove it. You can re-download it from the app store if it is already in your Mac App store account.

  • Not able to optimize for You Tube

    So I have been using Adobe Premiere for almost a year and a half and the one thing that has bothered me is that no matter what I do I can't get full HD Video's (I am filming with a 720 camera) and it won't optimize for You Tube and will always look like this
    I have looked up several guides and no matter what I do it does not change any guides I might be missing or something wrong I would love to use the full potential that I can.

    AME has quite a number of YouTube presets ... one of 'em should pretty close to match expectations.
    Neil

  • Default optimization for new files in Acrobat 9 Pro

    When I create a new file in Acrobat Pro 9, it automatically saves as version 1.6 (Acrobat 7.x). Much as I would love the whole world to have the latest reader version on their computer, the reality is that many of my website's users have older versions installed. As a consequence, I need to optimize all files as version 1.4, otherwise they won't be able to open the documents in their browsers.
    Why isn't there a preference setting to optimize all new files as 1.4 by default? This would save having to run the optimizer every time. Also, if I start from a file that is already optimized as 1.4, I extract a page and save it, this saves as 1.6. Why? If I am starting from a 1.4 PDF, surely that's the version I want?
    So every time I extract a page, tese are the steps I have to take:
    1) Extract and save the page
    2) Optimize it for 1.4
    3) Save it again (after confirming that yes, I do indeed want to overwrite it).
    I do this several times a day and it's an absolute pain in the neck, which could be avoided by implemeting any of these features:
    1) A setting under Preferences> Default PDF Version for new files;
    2) A PDF version selection box within the "Save As" dialog (I believe this feature has been requested by others);
    3) Acrobat Pro realizing that you have extracted the page from a 1.4 file and therefore saving the new file with the same format;
    4) Some sort of batch optimization option, so I only have to run the conversion once.
    Frankly I'm surprised none of these features already exist.
    Come on Adobe, is this really so hard to do?
    Thank you.

    Acrobat : Advanced menu : Preflight…
    Then:

  • Slow to open/close programs...esp Microsoft Office. How do I optimize?

    Hello
    I have a MacBook 2GHz Intel Core duo, 1 GB 667 MHz Ram...
    I have had it since July '06 and since purchasing it I have noticed that it is extremely slow in operating and opening microsoft programs. Then once open the cursor spins and spins to reopen the program window. I have noticed some wait times with other programs as well but it is especially bad with microsoft office and adobe illustrator. iWeb and iPhoto lag as well.
    Is this normal? It has become a very annoying to use
    What can I do to optimize performance?
    I love my MacBook but am starting to miss my Powerbook G4!
    Any help would be greatly appreciated!
    Best,
    Johanna

    Try downloading the latest office update. This helped speed things up on my machine, 11.3.0
    http://www.microsoft.com/mac/downloads.aspx?pid=download&location=/mac/download/ office2004/Office2004_1130.xml&secid=4&ssid=31&flgnosysreq=True

  • Trying to optimize eSATA and internal disk configurations

    I'm trying to optimize the HD setup on my dual 2.5GHz G5 with 4.5GB RAM
    major considerations.
    - massive itunes library (260GB), and big iphoto lib (25GB) as well
    - lots of video editing in Final Cut with large capture files and many video exports
    - regular podcasting and other media creation with all my music and photos
    - need for regular COMPLETE backups
    - speed
    Here's the current setup. I have six disks as part of the system
    1. internal 160GB disk (maps simply to a MACHD volume)
    2. internal 250GB disk (maps simply to a COMMONS volume for Democracy player files, torrent downloads etc)
    then on my 4-port eSATA controller card
    4x 500GB SATA drives from Western Digital for a total of 2TB eSATA disk space
    they are in 2 eSATA enclosures from FirmTek
    I'm managing the disks with SoftRAID
    Before I get into the problem, how would YOU use this incredible amount of disk space, considering the goals I have? (video, media storage, backup).
    Now, The problem
    I've been disappointed with the speed of my system and suspect its my HD configuration. I have enough RAM right!?
    I've got some raid stripes going on
    2 of the 500GB disks (disk2 and disk3) support two "active" volumes
    a) a striped ATLAS volume of 800GB (holds itunes, documents, iphoto, basically all media files)
    b) a striped VIDEO SCRATCH volumn of 200GB (for working files in FCP, imovie, etc)
    the other 2 of the 500GB disks (disk0 and disk1) support two "clone" volumes
    a) a mirror MACHDCLONE volume on both disk0 and disk1 (to protect the system drive. I run Super Duper 3x per week)
    b) a striped ATLAS_CLONE volume to backup the active ATLAS volume
    the COMMONS volume is not backed up in any way. figure i can live without my Democracy files and torrents, etc.
    My ideas:
    based on my performance observations, my setup above is just wrong, and I don't know where to turn for the best advice. Google is very poor at dealing with such complexity in search results. There are some video advice sites, but they only cover part of my problems. I have a few theories of how I should be using these drives
    1. use the eSATA drives strictly for performance benefits, not for backup. consider a USB2.0 drive for backups and use Mozy for offsite backup
    2. simplify the disk allocation. No single disk should support more than one volume
    3. the video scratch SHOULD be striped in order to benefit from speed. and should be on its own physical disk(s) separate from ANY other function
    So I'm thinking
    a) stripe two of the eSATAs into a single 1 TB array for my media or ATLAS volume
    - this solves me running out of space on the volume (getting closer with the iTunes video downloads every day)
    - it's also just physically easier to deal with. I can SEE what drives make up ATLAS alone
    - will be easier for me to eventually replace the G5 with an MBP running its own eSATA pc card with easy access to the same ATLAS volume
    this still leaves two 500GB eSATA disks around
    b1) I could extend the ATLAS volume to an array including a 3rd eSATA disk for a 1.5TB volume. this would allow me to bring COMMONS files onto ATLAS
    b2) the remaining 500GB eSATA disk can be video scratch
    OR
    c1) dedicate 1 500GB disk to VIDEO SCRATCH
    and
    c2) partition the other 500GB disk as a clone of both COMMONS and the internal System drive
    see how CONFUSING THIS IS ?
    there are too many permutations of things.
    I know I like keeping the system drive simple and internal. Ideally, the second internal disk would mirror this volume, but they do not match in size or brand
    part of me wants to stripe all FOUR eSATA drives into a blazing 2TB masterpiece, but it seems like a bad idea to put VIDEO SCRATCH on the same array as ATLAS
    Other questions:
    should the itunes library get it's own disk altogether? is striping of benefit here?
    are there some sites that explain HD management well?
    PowerMac G5 2.5GHz 4.5GB RAM   Mac OS X (10.4.9)   also own a blacbook

    Thanks so much for that awesome feedback.
    A few points.
    I have the dual processor G5, not the quad core. Purchased in Jan 2005.
    My RAM pageouts are fine (didn't know what that was until you mentioned it)
    Love the idea of moving COMMONS "outside the box"
    I used to have my system volume boot from an external RAID, but didn't notice a big improvement, and it meant my G5 would ONLY boot if the eSATAs were powered up. I just didn't like that feel. I want the tower to work in a self-contained fashion, even if I don't have access to all media. I want access to the OS and apps.
    I'm unlikely to buy more SATA controllers and enclosers or too many new disks. I'm on a serious budget and want to work with as much of what I have as possible. That said, i just checked out the Drobo and am drooling. I'll wait to see how well it performs for data access (and video) and not just storage.
    It sounds dreamy to stripe all four of the eSATAs into a 1.8TB storage megaplex. I imagine they would scream in an ATLAS_BADASS volume, but then I've got nothing left for VIDEO SCRATCH used to capture and render.
    The VIDEO_SCRATCH doesn't need to be large, and I think that's where I'm having a conflict. My eSATA drives are way too big to use even ONE as a video scratch, much less striping two of those bad boys just for that purpose
    Purchasing a 10K drive for video scratch (or system volume) is not really in the cards yet.
    So here's where I sit now:
    1. My Media Storage
    ++ the 4 eSATA drives (2.0TB raw)
    I go with the badass steroid injected ATLAS volume striped across all four.
    this is my media array and holds all the contents of ATLAS and COMMONS (iTunes, iPhoto, Documents, FCP training videos, ripped DVDs, the works)
    2. My System Volume
    ++ the 250GB internal SATA
    move COMMONS out
    migrate system volume to this disk
    better storage-to-free space ratio
    3. My Scratch Disk
    a) use the now-spare 160GB internal Maxtor (probably weak and slow)
    b) get an external FW800 RAID disk from OWC
    http://eshop.macsales.com/shop/firewire/hard-drives/EliteAL/StripedRAID
    I'd go with the 160GB or 320GB
    4. Backup Plan - level 1 - local
    ++ use my spare external Maxtor 250GB FW drive
    clone the system volume regularly
    ++ get an external FW drive (like the 1TB My Book Premium II from WD)
    clone ATLAS_BADASS regularly
    the WD is just $400
    i know it's capacity is lower than my super striped RAID, but i don't know of any cheap way to clone ATLAS_BADASS to a 1.5TB drive
    5. Backup Plan - level 2 - remote
    pay for a Mozy storage account which has unlimited capacity
    upload system and ATLAS_BADASS every few weeks
    any new thoughts? and thanks again!

  • How to prevent apex 4.0 shuttle cleared by cascading LOV setting?

    I have a shuttle control for choosing a list of database users populated from a child table by an On Load - After Header process, which then repopulates the child table in an On Submit - After Computations and Validations process. Work fine.
    I then set the shuttle's Cascading LOV Parent Item(s) to a text item that could be used for filtering the shuttle's LOV, and revised the LOV SQL to a) use the filter and b) include items stored in the child table, i.e.:
    select username as dv, username as rv
    from all_users
    where username like upper(:P5_USERSFILTER) || '%'
    union
    select username, username
    from user_grouping_users
    where groupid = :P5_GROUPID
    order by 1
    Unfortunately, when the filter value changes (P5_USERSFILTER), the state of shuttle (as set in my On Load - After Header process) is cleared. The values from the child table are properly included in the LOV, but they are no longer selected -- so the appear in the left-hand list as candidate values but not in the right-hand list as selected values. Additionally, any items selected in the shuttle before changing the value of the LOV Parent (:P5_USERSFILTER) are no longer selected.
    Is there a way to prevent the selections of a Cascading LOV item from being cleared when the parent item is reset?
    Note, I've specified 'No' for Optimize Refresh, and 'P5_USERS' for Page Items to Submit and 'Yes' for Display Extra Values (which in general does not seem to have any affect on a shuttle LOV)

    Hallo all!
    I got a similar situation: a text item that filters the left side of an shuttle item (P11_IAG_ENUM), but the right side should stay the same - independet from the text item, where search-phrases are entered.
    So I tired with your example - thanks for that - but I changed the code that I only have one collection 'P11_IAG_VALUES' ... but right side seems to be still dependend from the search item. I also deleted the "set value" action of the "save current selection"-dynamic-action, because I supposed it's not needed.
    Here is my "save current selection"-dynamic-action:
    DECLARE
    c_collection CONSTANT VARCHAR2(30) := 'P11_IAG_VALUES';
    l_seq_id NUMBER;
    BEGIN
    IF NOT apex_collection.collection_exists(c_collection) THEN
    apex_collection.create_collection(c_collection);
    END IF;
    SELECT MIN(seq_id)
    INTO l_seq_id
    FROM apex_collections
    WHERE collection_name = c_collection
    IF l_seq_id IS NULL THEN
    apex_collection.add_member (
    p_collection_name => c_collection,
    p_c001 => :P11_IAG_ENUM );
    ELSE
    apex_collection.update_member (
    p_collection_name => c_collection,
    p_seq => l_seq_id,
    p_c001 => :P11_IAG_ENUM );
    END IF;
    COMMIT;
    END;
    ... and the "restore old selection"-dynamic-action:
    DECLARE
    l_selected_iag VARCHAR2(32767);
    BEGIN
    SELECT c001
    INTO l_selected_iag
    FROM apex_collections
    WHERE collection_name='P11_IAG_VALUES'
    RETURN l_selected_iag;
    EXCEPTION
         WHEN NO_DATA_FOUND THEN
    RETURN NULL;
    END;
    Where is my error in reasoning?
    (Meanwhile I try to create an example application...)
    [Edit: I got problems to acces my workspace, try to reset my password --> error, even try to find my workspace -->error .... everytime the same; I'll try it later again, but hoping that anyone can help me without example application]
    Edited by: kc7 on 10.09.2010 09:20
    [Edit II: I finally created a example-application: *http://apex.oracle.com/pls/apex/f?p=30216*
    workspace: kc7
    user: dummy
    pwd: doll
    Edited by: kc7 on 10.09.2010 12:28

  • Is it possible to change LOV definition using dynamic action?

    Hi,
    I have a multi-select LOV page item, P27_MULTI_CLASS_CODE, defined as below.  On page load, this list only contains values based on what has been passed to P27_OLO_CODE or P27_OLO_CODE_SW.
    SELECT DISTINCT c.class_code d, c.class_code r
      FROM ORGANIZATION o,
           POSITION p,
           CLASS c
    WHERE o.org_wk = p.org_wk
       AND p.class_wk = c.class_wk
       AND o.org_active_flag = 'Y'
       AND p.pos_active_flag = 'Y'
       AND c.class_active_flag = 'Y'
       AND (o.olo_code = :P27_OLO_CODE
            OR o.olo_code = :P27_OLO_CODE_SW)
    ORDER BY c.class_code ASC
    Before submitting the page, I would like the LOV definition of P27_MULTI_CLASS_CODE to change to the following (similar query without reference to P27_OLO_CODE or P27_OLO_CODE_SW) based on whether the user selects checkbox item, P27_ALLOW_SW.   By doing this, P27_MULTI_CLASS_CODE would contain a full range of values rather than limited values.
    SELECT DISTINCT c.class_code d, c.class_code r
      FROM ORGANIZATION o,
           POSITION p,
           CLASS c
    WHERE o.org_wk = p.org_wk
       AND p.class_wk = c.class_wk
       AND o.org_active_flag = 'Y'
       AND p.pos_active_flag = 'Y'
       AND c.class_active_flag = 'Y'
    ORDER BY c.class_code ASC
    I wanted to avoid writing Javascript.  Is this possible using dynamic actions...or at least somehow refresh P27_MULTI_CLASS_CODE so that it ignores P27_OLO_CODE and P27_OLO_CODE_SW?
    I've tried creating a dynamic action to clear the value of  P27_OLO_CODE or P27_OLO_CODE_SW, in hope it would trigger P27_MULTI_CLASS_CODE to display all values, but it has not been successful.  Any ideas?
    APEX 4.2

    I was able to resolve by changing the SQL statement to P27_MULTI_CLASS_CODE.  Note:  I also included an additional condition.
    SELECT DISTINCT c.class_code d, c.class_code r
      FROM ORGANIZATION o,
           POSITION p,
           CLASS c
    WHERE o.org_wk = p.org_wk
       AND p.class_wk = c.class_wk
       AND o.org_active_flag = 'Y'
       AND p.pos_active_flag = 'Y'
       AND c.class_active_flag = 'Y'
       AND (:P27_ALLOW_SW = 'Y'
            OR (o.olo_code =  :P27_OLO_CODE
                OR o.olo_code = :P27_OLO_CODE_SW)
       AND (:P27_PAY_PLAN IS NULL
             OR p.pay_plan = :P27_PAY_PLAN)
    ORDER BY c.class_code ASC
    I also changed the Cascading LOV Parent Item(s) value to:  P27_OLO_CODE,P27_OLO_CODE_SW,P27_PAY_PLAN,P27_ALLOW_SW.  Optimize Refresh = No, since a change in any one of these values should trigger refresh of LOV.
    The Dynamic Action was also modified to NULL out P27_OLO_CODE,P27_OLO_CODE_SW when P27_ALLOW_SW was enabled.
    So far, so good!  Thanks for your suggestions Tom and Howard!

  • JUComboBox LOV Binding Issue

    Hi,
    I am getting a problem in JUComboBoxLovBinding.
    Problem Description --
    I have created a JComboBox with used LovBinding (using two view objects -- resortVO and testVO ). The _resortVO is the LOV VO instance.
    There is one button which rollbacks the transaction and create a new row for the non-lov view object instance.
    I followed the following steps -->
    1. Run the application
    2. Press the Button.
    3. Select an item (say 'ResortA') from the combo box
    This sets the ResortId for the _testVO's current row.
    4. Again press the Button
    5. Then select the same item again i.e. ResortA.
    This does not set the ResortId for teh _testVO's current row.
    Question -- Why the ResortId is not get selected in Step 5?
    The sample code is here --
    package testapp;
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.util.Hashtable;
    import javax.swing.DefaultListCellRenderer;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import oracle.jbo.ApplicationModule;
    import oracle.jbo.AttributeDef;
    import oracle.jbo.Row;
    import oracle.jbo.ViewObject;
    import oracle.jbo.client.Configuration;
    import oracle.jbo.uicli.binding.JUApplication;
    import oracle.jbo.uicli.jui.JUComboBoxBinding;
    import oracle.jbo.uicli.jui.JUPanelBinding;
    public class TestJUComboLovBinding extends JFrame
        private BorderLayout _mainLayout = new BorderLayout();
        private JPanel _panelCenter = new JPanel();
        private JUPanelBinding _panelBinding;
        /**  ADD CUSTOM MEMBER VARIABLES HERE  **/
        private JComboBox _resortComboBox = new JComboBox();
        private ViewObject _resortVO,_testVO;
        private JButton _createButton = new JButton("Create");
        private int count = 0;
        /** CUSTOM MEMBER VARIABLES ENDS HERE  **/
        public TestJUComboLovBinding()
            try
                jbInit();
            } catch (Exception e)
                e.printStackTrace();
        private void jbInit() throws Exception
            this.setSize(350, 210);
            this.setBounds( new Rectangle(100, 80, 400, 250));
            this.setTitle( "Frame Title" );
            ApplicationModule appModule =
                Configuration.createRootApplicationModule(
                "testapp.TestAppModuleImpl", "TestAppModuleLocal");
            JUApplication app = new JUApplication(appModule);
            _panelBinding = new JUPanelBinding(app.getName(), null);
            _panelBinding.setApplication(app);
            _panelCenter.setLayout(_mainLayout);
            customJbInit();
            this.getContentPane().add("Center",_panelCenter);
            _panelBinding.executeIfNeeded();
        private void customJbInit()
            _resortVO = _panelBinding.getApplicationModule().findViewObject("VResort");
            _testVO = _panelBinding.getApplicationModule().findViewObject("VTest");
            AttributeDef[] attrDefs = _resortVO.getAttributeDefs();
            String[] allAttrNames = new String[attrDefs.length];
            for (int i = 0; i < attrDefs.length; i++)
                allAttrNames[i] = attrDefs.getName();
    _resortComboBox.setModel(
    JUComboBoxBinding.createLovBinding
    _panelBinding,
    _resortComboBox,
    _testVO.getName(),
    null,
    testVO.getName().replace('.','') + "IterBinding",
    new String[] {"ResortId"},
    _resortVO.getName(),
    new String[] {"ResortId"},
    allAttrNames,
    null,
    null
    _resortComboBox.addActionListener(
    new ActionListener() {
    public void actionPerformed(ActionEvent e ){
    if(_testVO != null && _testVO.getCurrentRow() != null)
    System.out.println("Resort ID -- > " + count++ + ":" + _testVO.getCurrentRow().getAttribute("ResortId"));
    _createButton.addActionListener(
    new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    _panelBinding.getApplicationModule().getTransaction().rollback();
    _testVO.executeQuery();
    Row row = _testVO.createRow();
    _testVO.insertRow(row);
    panelCenter.add(resortComboBox,BorderLayout.NORTH);
    panelCenter.add(createButton,BorderLayout.SOUTH);
    public static void main(String[] args)
    TestJUComboLovBinding frame = new TestJUComboLovBinding();
    frame.addWindowListener(
    new WindowAdapter()
    public void windowClosing(WindowEvent evnt)
    System.exit(0);
    frame.setSize(new Dimension(400, 280));
    frame.pack();
    frame.setVisible(true);
    Thanks.

    Okay. So it's not the rollback.
    Reading your posting one more time, I see that in point 5 you write:
    "Then select the same item again".
    The problem does not occur when a different item is selected? If that's the case, then it's probably some kind of optimization in the binding that only sets the value when it actually changes.
    You could try to do something like that:
            _createButton.addActionListener(
                new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        _panelBinding.getApplicationModule().getTransaction().rollback();
                        _testVO.executeQuery();
                        Row row = _testVO.createRow();
                        _testVO.insertRow(row);
                       // New line to insert:
                        _resortVO.reset();
            );This should ensure that a navigation happens.
    You can get the binding from the JUPanelBinding if your main application has access to that. See the getControlBinding() and findControlBinding() methods in JUFormBinding (a super class of JUPanelBinding).
    Sascha

  • "Optimize to file size" script

    Hi everyone,
    I am currently writing an applescript to circumvent Photoshop's lack of scripting support for the "Optimize to File Size" option in the Save for Web command, but I'm having trouble with targeting the file sizes correctly.
    Here is the code I'm using (forgive me, I know its not so graceful... I'm still very new). Basically it exports the image at 100% quality, checks the resulting file size against the desired file size, and if it's not equal to or less than that value, it deletes, reduces the quality level, and re-exports until it meets that criteria:
    on optimizeFile(currentDoc, optimizeSize, exportPath, fileExtension, trimmedFilename, qualityIncrement)
    set qualityLevel to 100
    set optimizedFile to ((exportPath & trimmedFilename & fileExtension) as string)
    tell application "Adobe Photoshop CS3"
    tell currentDoc
    export in file optimizedFile as save for web with options {class:save for web export options, quality:qualityLevel, web format:JPEG}
    end tell
    end tell
    tell application "Finder"
    set truncatedFile to files of alias exportPath whose name contains "#0"
    repeat with thisFile in truncatedFile
    set name of thisFile to (trimmedFilename & fileExtension)
    end repeat
    set fileSize to physical size of optimizedFile
    end tell
    repeat until fileSize is less than or equal to optimizeSize
    tell application "Finder"
    delete file optimizedFile
    set qualityLevel to (qualityLevel - qualityIncrement)
    end tell
    tell application "Adobe Photoshop CS3"
    tell currentDoc
    export in file optimizedFile as save for web with options {class:save for web export options, quality:qualityLevel, web format:JPEG}
    end tell
    end tell
    tell application "Finder"
    set truncatedFile to files of alias exportPath whose name contains "#0"
    repeat with thisFile in truncatedFile
    set name of thisFile to (trimmedFilename & fileExtension)
    end repeat
    set fileSize to physical size of optimizedFile
    end tell
    end repeat
    end optimizeFile
    The problem that I am having is that when this script exports bigger images at bigger file sizes (even in the 30 to 40k range) it works perfectly. However, whenever I get to thumbnail sized images that i need to export at say 3k or 4k, it runs into an infinite cycle of deleting and re-exporting. I have tried using the "data size" property instead of "physical size" but that seems to ignore the loops altogether and export files at much larger sizes.
    Can anyone out there help? I'd love to nail down a script that can do this function well, as I think there is a huge need for this functionality amongst people who regularly batch process images, i'm just afraid that my version may not be the most efficient.

    You're right - I really could do with this functionality!
    Sorry I can't help on the scripting side, but maybe someone who can will notice this post now.

  • APEX 4.0 - AJAX not working with Popup LOV field

    Hello,
    In the application I have built I have three fields which are 'feeded' by selects via a AJAX construction.
    All three fields are based on three others, which are PopUp LOV fields. Up to version 3.2 I had no problems: the fields were 'refreshed' as expected when in the 'parent' field a specific value was entered or choosen by the Popup Lov selector.
    But since the migration to APEX-4 (lin a test-system) all the three fields are not correctly refreshed anymore: two of them give the value 'undefined', the third, which is a select-list shows values, but at the moment I try to click on the select-list down arrow to pick a value, the list is emptied and stays that way.
    More specific about the third field:
    item 1 is a popup-lov defined item in which a user can type a value, but can also choose a value from a popup-lov. Item 2 is based on item-1: it does a select based on the value of item-1 and refreshes a select-list. Item-2 is defined as a select list.
    I got it all working when making item-1 also a select list, but since the list can become very large, I made a Popup lov of it. Most users do know what code they have to enter and in case somebody is not sure, the lov can be used.
    In this forum I came across a problem with AJAX callback, which was answered by Patrick Wolf, saying that in an htmldb_Get ( ... ,0) the last 0 should be replaced by $v('pFlowStepId'), but this did not fix my problem. I have the feeling that the problem is somewhre else, since on first hand, after entering a value in item-1 I see item-2 refreshed with the correct values, but the moment I try to select one item, the list is emptied.....
    I hope I made it clear what my problem is and that somebody can help me, else APEX-3.2 was the latest version for this application....
    Thanks in advance and best regards,
    Jan.
    Edited by: user13110728 on 9-aug-2010 8:44

    Hi Jan,
    the problem is the
    onBlur="javascript:f_P21_select_kostenposten(this,'P21_KOSTENPOST');"on P21_GBREKNR. This is getting attached to the HTML input text field but as well the the anchor link which opens the popup. So when you leave the text field the cursor will be put onto the icon to open the Popup LOV. When you press tab another time or leave the anchor link by clicking somewhere the above JavaScript function is fired again. But the problem is that "this" this time points to the anchor and not the text item anymore, so it will return an invalid value when you access this.value in your f_P21_select_kostenposten function which results in an empty result of your on-demand call.
    I still have to investigate why the above JavaScript code is now added to the anchor link as well. But as a workaround, just change your code to
    onChange="javascript:f_P21_select_kostenposten(this,'P21_KOSTENPOST');"which is better anyway, because it's just firing when the value really got changed. And because the anchor link can't really be changed, the event will never fire when you leave the anchor. BTW you can use the Application Search feature to search for all your onBlur events. onChange is much better than onBlur because it doesn't fire that often unintended.
    But if you want to use some of the new APEX 4.0 features, you could use the cascading LOV feature of APEX 4 and avoid all this JavaScript and on-demand code which you have written.
    I have changed your application to take use of it.
    1) I changed the LOV query for P21_KOSTENPOST from
    select '('||replace(lpad(gbreknr, 3, chr(1)),chr(1),' ')||') '|| omschrijving d, kostenpost r
    from   kostenposten
    where  vervallen is null
      and  bedrijf = :P21_BEDRIJF
    order by gbreknr, kostenpostto
    select '('||replace(lpad(gbreknr, 3, chr(1)),chr(1),' ')||') '|| omschrijving d, kostenpost r
    from   kostenposten
    where  vervallen is null
      and  bedrijf = :P21_BEDRIJF
      and  (:P21_GBREKNR is null or gbreknr = :P21_GBREKNR)
    order by gbreknr, kostenpostas it was in your on-demand process. The query will return all values if P21_GBREKNR is null but will restrict it if the field is filled out.
    2) Set "Cascading LOV Parent Item(s)" to P21_BEDRIJF,P21_GBREKNR Because based on your LOV query I assume "Kostenpost" should be refreshed if one of the two fields gets changed.
    3) Set "Optimize Refresh" to No because one of your parent items (P21_GBREKNR) can contain a null value.
    4) Removed the onBlur/onChange from P21_GBREKNR
    5) Removed the *%null%* from the "Null Return Value" attribute of P21_BEDRIJF, because that will cause a ORA-1722 if someone picks "-- kies: --"
    That's it.
    Have a look at dynamic actions and the "Set Value" action as well, because I think that could remove your other on-demand calls as well without having to write any JavaScript code.
    I will still investigate what's going on with the anchor link in APEX 4.0
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX 4.0 Plug-Ins: http://apex.oracle.com/plugins

  • 3.2; LOV; find button

    Hi,
    I received following error when i typed "12" (to search for 12's)on textFiled and clicked Find on LOV frame.
    DAC-511: ResultSetInfo: could not execute the query.
    JBO-27122: SQL error during statement preparation. Statement: SELECT Vendor.VENDOR_ID, Vendor.VENDOR_NAME
    FROM VENDOR Vendor WHERE (( = 12))
    ORA-00936: missing expression
    did i miss something? I beleive somehow i have to bind the textfield to a column on LOV. How?
    please advice.
    null

    Linda,
    I developed a class for that with almost 350 line code. of course i will optimize it later when got some free time.
    but the idea is simple. i explain in brief. if you still need to see the code let me know your email to attache it to you.
    1- create a JDialog class.
    2- add a GridControl and two JTestField(to get user criteria)
    3- add two buttons(Ok & Cancel)
    4- register key and mouse listeners for thoes buttons
    5- register key listener for thoes textFields and define keyTyped event
    6- Now when user types on thoes JTextfield, fire following dynamic query.
    lovRowSetInfo.setQueryCondition(lovRowSetInfo.getAttribute(0).getColumnName()+" like '"+searchString1+"%' AND "+
    lovRowSetInfo.getAttribute(0).getColumnName()+" like '"+searchString2+"%'");
    lovRowSetInfo.executeQuery();
    7- write a method to pass the selected row to out of the class, when Ok button clicked
    note that: "lovRowSetInfo" is the name of rowSetInfo that contain the data to search and you could pass it to this class.
    Hope this help you.
    Ali
    null

  • Cursor Optimization issue

    Hello everybody,
    im a bit new in sql coding and i need your help to optimize a cursor i have created that seems (a bit - not much) slow. Any comments-suggestions are welcomed . Ty in Advance,
    Mike
    (the purpose of the cursor is to take multiple values from a buffer-tmp table from a remote mssql db to my oracle one and then divide them depending use in different tables... in detail these are customers that are performing some communications with some companies .... these comms are called OBD, the hard thing was that the remote system is totally different in architecture from mine... the cursor works fine but i believe it can be coded to be faster)
    CREATE OR REPLACE PROCEDURE RETRIEVE_OBD_DATA4 (
    comm_numEntries OUT NUMBER, comm_numUpdates OUT NUMBER, comm_numInserts OUT NUMBER,
    lov_numEntries OUT NUMBER, lov_numUpdates OUT NUMBER, lov_numInserts OUT NUMBER,
    pel_numEntries OUT NUMBER, pel_numUpdates OUT NUMBER, pel_numInserts OUT NUMBER) IS
    l_indx1 NUMBER; l_comm1 char(600);l_code1 NUMBER;l_indx2 NUMBER;l_comm2 char(600);
    l_code2 NUMBER;l_tmp1 NUMBER;
    p_indx_id1 NUMBER;p_name1 char(400);p_surname1 char(400);p_address1 char(400);p_region1 char(800);
    p_username1 char(400);p_brandname1 char(400);p_nomiki1 char(400);p_afm1 char(400);p_phone1 char(400);
    p_fax1 char(800);p_drasti1 char(400);p_date1 char(200);p_gender1 char(400) ;p_tmp1 NUMBER;
    c_tmp1 number; OBD_KWDIKOS1 char(800); OBD_ONOMA1 char(600); HMEROMHNIA_E1 char(200); SYMB1 number; LOC1 number; P_INDX_ID2 number;
    CURSOR lov IS
    SELECT OBD_KWDIKOS AS L_CODE, OBD_ONOMA AS L_COMM
    FROM PORTAL.APOPSI_COMM_OBD
    GROUP BY OBD_KWDIKOS, OBD_ONOMA;
    CURSOR pelates IS
    SELECT ONOMA AS P_NAME, EPWNYMO AS P_SURNAME, DIEUTHINSI AS P_ADDRESS, DHMOS AS P_REGION,
    HMEROMHNIA_K AS P_DATE , DRASTHRIOTITA AS P_DRASTI,GENRE AS P_GENDER,
    USERN AS P_USERNAME, EPWNYMIA AS P_BRANDNAME, NOMIKI AS P_NOMIKI, AFM AS P_AFM, THLEFWNO AS P_PHONE,FAX AS P_FAX
    FROM PORTAL.APOPSI_COMM_OBD
    GROUP BY ONOMA,EPWNYMO ,DIEUTHINSI ,DHMOS ,USERN ,EPWNYMIA ,NOMIKI ,AFM ,THLEFWNO ,FAX,HMEROMHNIA_K,DRASTHRIOTITA,GENRE;
    CURSOR comm IS
    SELECT O.OBD_KWDIKOS, O.OBD_ONOMA, O.HMEROMHNIA_E, O.SYMB, O.LOC, P.P_INDX_ID
    FROM PORTAL.TMP_OBD O INNER JOIN PORTAL.TMP_COMM2 C ON C.ID = O.OBD_INDX INNER JOIN
    PORTAL.APOPSI_COMM_PELATES P ON C.NAME = P.P_NAME AND C.SURNAME = P.P_SURNAME AND C.PHONE = P.P_PHONE;
    BEGIN
    DELETE FROM PORTAL.TMP_PELATES;
    l_code1 := 0;
    l_indx1 := 0;
    l_code2 := 0;
    l_indx2 := 0;
    l_tmp1 := 0;
    comm_numEntries := 0; comm_numUpdates := 0; comm_numInserts := 0;
    lov_numEntries := 0; lov_numUpdates := 0; lov_numInserts := 0;
    pel_numEntries := 0; pel_numUpdates := 0; pel_numInserts := 0;
    p_tmp1 := 0; c_tmp1 := 0;
    OPEN lov;
    OPEN pelates;
    OPEN comm;
    LOOP
    FETCH lov INTO l_code1,l_comm1;
    EXIT WHEN lov%NOTFOUND;
    lov_numEntries := lov_numEntries + 1;
    SELECT COUNT(*) INTO l_tmp1 FROM PORTAL.APOPSI_COMM_COMM2_LOV WHERE L_CODE = TO_CHAR(l_code1) AND L_COMM = l_comm1;
    SELECT (MAX(L_INDX)+1) INTO l_indx1 FROM PORTAL.APOPSI_COMM_COMM2_LOV;
    IF l_tmp1 = 0 THEN
    lov_numInserts := lov_numInserts + 1;
    INSERT INTO PORTAL.APOPSI_COMM_COMM2_LOV(L_INDX,L_CODE,L_COMM) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1);
    INSERT INTO PORTAL.TMP_LOV(L_INDX,L_CODE,L_COMM, L_INSERT) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1,1);
    ELSE
    IF l_tmp1 = 1 then
    null;
    else
    lov_numUpdates := lov_numUpdates + 1;
    DELETE FROM PORTAL.APOPSI_COMM_COMM2_LOV WHERE L_CODE = TO_CHAR(l_code1);
    INSERT INTO PORTAL.APOPSI_COMM_COMM2_LOV(L_INDX,L_CODE,L_COMM) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1);
    INSERT INTO PORTAL.TMP_LOV(L_INDX,L_CODE,L_COMM,L_INSERT) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1,0);
    end if;
    END IF;
    END LOOP;
    LOOP
    FETCH pelates INTO p_name1,p_surname1,p_address1,p_region1,p_date1,p_gender1, p_drasti1, p_username1, p_brandname1, p_nomiki1 ,p_afm1, p_phone1,p_fax1;
    EXIT WHEN pelates%NOTFOUND;
    pel_numEntries := pel_numEntries + 1;
    SELECT (MAX(P_INDX_ID) + 1) INTO p_indx_id1 FROM PORTAL.APOPSI_COMM_PELATES;
    SELECT COUNT(*) INTO p_tmp1 FROM PORTAL.APOPSI_COMM_PELATES WHERE P_NAME = p_name1 AND P_SURNAME = p_surname1;
    IF p_tmp1 = 0 THEN
    pel_numInserts := pel_numInserts + 1;
    INSERT INTO PORTAL.APOPSI_COMM_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID,p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax)
    VALUES (p_drasti1,p_date1,' ',p_gender1,P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1);
    INSERT INTO PORTAL.TMP_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID, p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax, P_INSERT)
    VALUES (p_drasti1,p_date1,' ',p_gender1,P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1, 1);
    ELSE
    if p_tmp1 = 1 THEN
    NULL;
    ELSE
    pel_numUpdates := pel_numUpdates + 1;
    DELETE FROM PORTAL.APOPSI_COMM_PELATES WHERE P_NAME = p_name1 AND P_SURNAME = p_surname1;
    INSERT INTO PORTAL.APOPSI_COMM_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID,p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax)
    VALUES (p_drasti1,p_date1,' ',p_gender1, P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1);
    INSERT INTO PORTAL.TMP_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID, p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax, P_INSERT)
    VALUES (p_drasti1,p_date1,' ',p_gender1,P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1,0);
    END IF;
    END IF;
    END LOOP;
    LOOP
    FETCH comm INTO OBD_KWDIKOS1,OBD_ONOMA1,HMEROMHNIA_E1,SYMB1,LOC1, P_INDX_ID2;
    EXIT WHEN comm%NOTFOUND;
    comm_numEntries := comm_numEntries + 1;
    SELECT COUNT(*) INTO c_tmp1 FROM PORTAL.APOPSI_COMM_OBD_LOCAL O WHERE O.OBD_CODE = OBD_KWDIKOS1 AND
    O.OBD_NAME = OBD_onoma1 AND O.OBD_DATE = HMEROMHNIA_E1 AND O.PEL_ID = P_INDX_ID2;
    IF c_tmp1 = 0 THEN
    comm_numInserts := comm_numInserts + 1;
    INSERT INTO PORTAL.APOPSI_COMM_OBD_LOCAL
    VALUES (OBD_KWDIKOS1,OBD_ONOMA1,HMEROMHNIA_E1,SYMB1,LOC1, P_INDX_ID2);
    ELSE
    if c_tmp1 = 1 THEN
    NULL;
    ELSE
    comm_numUpdates := comm_numUpdates + 1;
    DELETE FROM PORTAL.APOPSI_COMM_OBD_LOCAL O WHERE O.OBD_CODE = OBD_KWDIKOS1 AND
    O.OBD_NAME = OBD_onoma1 AND O.OBD_DATE = HMEROMHNIA_E1 AND O.PEL_ID = P_INDX_ID2;
    INSERT INTO PORTAL.APOPSI_COMM_OBD_LOCAL
    VALUES (OBD_KWDIKOS1,OBD_ONOMA1,HMEROMHNIA_E1,SYMB1,LOC1, P_INDX_ID2);
    END IF;
    END IF;
    END LOOP;
    CLOSE comm;
    CLOSE lov;
    CLOSE pelates;
    END RETRIEVE_OBD_DATA4;
    /

    Well, to answer myself it turns out that cursors of the form "OPEN - LOOP - EXIT WHEN %NOTFOUND - END LOOP - CLOSE" are not converted to the bulk-collect equivalent, as "FOR rec IN (cursor) LOOP" ones are from 10g R2 onwards (tests below use 11.1.0.6.0).
    Implicit (1 fetch):
    DECLARE
        i INTEGER := 0;
    BEGIN
        FOR r IN ( SELECT * FROM scott.emp )
        LOOP
            i := i + r.empno;
        END LOOP;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 88 
    SQL ID : 5vms4mrz8j7wd
    SELECT *
    FROM
    SCOTT.EMP
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch 1 0.00 0.00 0 7 0 14
    total        3      0.00       0.00          0          7Explicit (15 fetches):
    DECLARE
        i INTEGER := 0;
        CURSOR c_emp IS
            SELECT * FROM scott.emp;
        r_emp c_emp%ROWTYPE;
    BEGIN
        OPEN c_emp;
        LOOP
            FETCH c_emp INTO r_emp;
            EXIT WHEN c_emp%NOTFOUND;
            i := i + r_emp.empno;
        END LOOP;
        CLOSE c_emp;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 88 
    SQL ID : 4ay6mhcbhvbf2
    SELECT *
    FROM
    SCOTT.EMP
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.01       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch 15 0.00 0.00 0 20 0 14
    total       17      0.01       0.00          0         20          0          14or another example:
    DECLARE
        i INTEGER := 0;
    BEGIN
        FOR r IN ( SELECT 1 n FROM dual CONNECT BY rownum < 999 )
        LOOP
            i := i + r.n;
        END LOOP;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 88 
    SQL ID : caf6v3bbkvqkk
    SELECT 1 N
    FROM
    DUAL CONNECT BY ROWNUM < 999
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch 10 0.00 0.00 0 0 0 998
    total       12      0.00       0.00          0          0          0         998So in code like the OP's example procedure it is explicit cursors that perform the extra fetch and not implicit ones, and this could help explain why implicit cursors perform better.

  • Optimization in Acrobat 10

    I am having an issue in Acrobat 10 using a Fujitsu fi-1640 scanner.  It scans via TWAIN just fine but when Acrobat does the optimization process occasionally it just sits there forever on the optimization.  When you click cancel the window goes away but it won't let you do anything else stating that the scan process is still in process.  IF I scan via WIA then it works fine.  I have tried disabling the optimization process when scanning but unchecking the box but it still does the process.  I have updated the TWAIN drivers which helped but it did not solve it.  I would be happy to just disable optimization if that is what it took.  Any ideas?

    I just wanted to state that I am having the same problem with a fi-6130.  However, in this case it is consistently and not occasionally.  It is happening with two different users on two different computers.  We are using the most current drivers and patch for Acrobat X.  I would love to hear a solution.

Maybe you are looking for

  • Migration to new Mac from FireWire clone

    Hi. I'm planning to buy a new iMac in a few weeks when the line is refreshed. I'm currently running my 2006 iMac from a FireWire clone as the internal disk went south just before Christmas. What I'm planning to do is use this clone drive to migrate a

  • Another iTunes problem

    My Ipod mini will connect no probs, but iTunes 8 just will not pick up my iPhone 3G. My office computer will, but not my home one (which it was originally synced with). I ran diagnostics and this is the result: Microsoft Windows XP Professional Servi

  • Why is converted PDF opening as Picture?

    The first PDF converted well into a word document readable by JAWS. This second one goes straight to compatibility view and the picture tab opens up.I have made multiple attempts at making this work and have checked the FAQ's, forums etc but am not h

  • Xcode : Linker command failed with exit code : any idea??

    Hello everybody, I'm trying to implement a programme in C++ using Xcode 6.1.1. in my project I have created different files with .cpp and .h extensions. but whenever I try to compile, I got the message in the attached photo below. Does anyone have an

  • Evaluation path PROFL0

    Hi, Anyone has any idea on an alternate to evaluation path PROFL0 so that a role when assigned to a ORG, drills down to all ORGS and positions below it when executing RHPROFL0? Did you have to create a new relationship in PROFL0? Any help in this dir