Support for Array Binding and PL/SQL tables (IN, INOUT, or OUT)

I have attempted, unsuccessfully, to use array binding in stored procedure/function calls where the sp/sf has parameters that are PL/SQL tables. I have seen the topic floating around in this forum, but I have not seen the explicit questions:
- Does ODP.NET support PL/SQL tables as IN, INOUT or OUT parameters to stored procedures/functions?
- Will any planned ODP.NET release support PL/SQL tables as IN, INOUT or OUT parameters to stored procedures/functions?
I am aware that I can use REF CURSORS to handle the OUT situation, but I need to make a design decision concerning supporting parameters of IN and INOUT PL/SQL tables.
Thanks.
James

You really MUST do this!! - i.e. include support for PL/SQL table parameters (IN INOUT and OUT) in a future release of ODP.NET.
PL/SQL tables are a fundamental type in Oracle stored procedures and you will be preventing a huge number of existing projects from migrating to .NET if you don't acknowledge them as part and parcel of Oracle programming.
I sincerely hope support for PL/SQL table parameters is treated as a serious issue.
Think what a coup it would be for you over Microsoft (who don't currently support PL/SQL tables with their .NET native provider for Oracle and don't look as if they will at least in the short term)!
Please, please, please!

Similar Messages

  • Diference b/w normal tables and pl/sql tables

    what is the diference b/w normal tables and pl/sql tables.
    already we have tables then what is the purpose of pl/sql tables.
    what are the advantages of pl/sql tables compare nor mal tables.

    user10447332 wrote:
    what is the diference b/w normal tables and pl/sql tables.As BluShadow pointed out "PL/SQL tbles" are now called collections. They are memory structures that store data and go away when your program stops running - essentially arrays or "tables" in other programming languages. "normal" ("heap") tables are stored on disk and are persistant - they store data permanently.
    already we have tables then what is the purpose of pl/sql tables.Collections are used to store data temporarily in memory, when it will be accessed shortly or repeatedly for fast access. This works best with smaller data sets because if you store too much data in a collection you can run out of memory to use
    what are the advantages of pl/sql tables compare nor mal tables.Collections give you faster access to data you need to read more than once during the same application. They work well for fast lookups and for smaller data sets can improve program performance slightly with the use of the bulk collect and forall PL/SQL operators under the right conditions.

  • Exception Handling for Array Binding

    Hi
    1)
    I am using a Stored Procedure.
    I am using array binding and if i am sending an array of count 10 to be inserted in a table and only 9 got inserted,i deliberatly inserted one errorneous record in array, the count returned by ExecuteNonQuery() is 10.Why ?
    How can i come to know exact number of rows inserted in table, how can i use Output variables, because the array bind count is 10 so if i add an output parameter it gives error ArrayBind count is wrong....
    2)
    Is it possible to roll back all the inserts if error occurs in any of the insert by Oracle engine.What it does is it inserts all correct records and leaves the errorneous record and doesn't even throw any exception or any message.
    Answer - This can be achieved by using OracleTransaction and don't use Exception handling in procedure otherwise there wont be any exception thrown by procedure which is necessary to detect if an error occured during insert.If you use exception handling OracleEngine will insert correct rows and leave errorneous record and return count of inserted + non inserted records which is wrong.
    Please help.
    Message was edited by:
    user556446
    Message was edited by:
    user556446

    You'll need to encapsulate your validation within it's own block as described below:
    -- this will die on the first exception
    declare
      TYPE T_BADDATA_TEST IS TABLE OF VARCHAR2(1000) INDEX BY binary_integer ;
      tbt T_BADDATA_TEST ;
      aBadTypeFound exception ;
    begin
       tbt(0) := 'a';
       tbt(1) := 'b';
       tbt(2) := 'c';
        for idx in tbt.first..tbt.last loop
          if tbt(idx) =  'b' then
              raise aBadTypeFound ;     
          else
              dbms_output.put_line(tbt(idx));     
          end if  ;
        end loop ;
    end ;--encapsulate the exception area in a begin/end block to handle the exception but continue on
    declare
      TYPE T_BADDATA_TEST IS TABLE OF VARCHAR2(1000) INDEX BY binary_integer ;
      tbt T_BADDATA_TEST ;
      aBadTypeFound exception ;
    begin
       tbt(0) := 'a';
       tbt(1) := 'b';
       tbt(2) := 'c';
        for idx in tbt.first..tbt.last loop
          BEGIN
          if tbt(idx) =  'b' then
              raise aBadTypeFound ;     
          else
              dbms_output.put_line(tbt(idx));     
          end if  ;
          EXCEPTION
            WHEN aBadTypeFound THEN
                dbms_output.put_line(tbt(idx) || ' is bad data');       
            WHEN OTHERS THEN
                dbms_output.put_line('exception');       
          END ;
        end loop ;
    end ;
    output:
    a
    b is bad data
    c
    ***/

  • Logic for inserting values from Pl/sql table

    Hi I'm using Forms 6i and db 10.2.0.1.0
    I am reading an xml file using text_io, and extracting the contents to Pl/sql table.
    Suppose, the xml
    <?xml version="1.0" encoding="UTF-8" ?>
      <XML>
      <File name="S2_240463.201002170044.Z">
      <BookingEnvelope>
      <SenderID>KNPROD</SenderID>
      <ReceiverID>NVOCC</ReceiverID>
      <Password>TradingPartners</Password>
      </BookingEnvelope>
    </File>
    </XML>From this xml, i'm extracting contents to a table of records, say bk_arr, which look like
    Tag                             Val
    File name                     S2_240463.201002170044.Z
    SenderID                     KNPROD
    ReceiverID                   NVOCC
    Password                     TradingPartnersAnd now from this i've to insert into table, say bk_det .
    The tag may come in different order, sometimes some additional tags may also come in between,
    So i cannot access it sequentially and insert like
    Insert into bk_det(file,sndr,rcvr,pswd) values(bk_arr(1).val,bk_arr(2).val....)
    The tag name is constant ir for sender id, it will always be SenderID , not something like sndrid or sndid etc..
    So if i've to insert to senderid column, then i've to match the tag = SenderID, and take the value at that index in the array.
    How best i can do this?
    Thanks

    I am referring to how you are parsing the XML - as you can extract values from the XML by element name. And as the name is known, it's associated value can be inserted easily.
    Basic example:
    SQL> with XML_DATA as(
      2          select
      3                  xmltype(
      4  '<?xml version="1.0" encoding="UTF-8" ?>
      5  <XML>
      6          <File name="S2_240463.201002170044.Z">
      7                  <BookingEnvelope>
      8                          <SenderID>KNPROD</SenderID>
      9                          <ReceiverID>NVOCC</ReceiverID>
    10                          <Password>TradingPartners</Password>
    11                  </BookingEnvelope>
    12          </File>
    13  </XML>'         )       as XML_DOM
    14          from    dual
    15  )
    16  select
    17          extractValue( xml_dom, '/XML/File/@name' )                      as FILENAME,
    18          extractValue( xml_dom, '/XML/File/BookingEnvelope/SenderID' )   as SENDER_ID,
    19          extractValue( xml_dom, '/XML/File/BookingEnvelope/ReceiverID' ) as RECEIVER_ID,
    20          extractValue( xml_dom, '/XML/File/BookingEnvelope/Password' )   as PASSWORD
    21  from       xml_data
    22  /
    FILENAME                  SENDER_ID  RECEIVER_I PASSWORD
    S2_240463.201002170044.Z  KNPROD     NVOCC      TradingPartners
    SQL> Now this approach can be used as follows:
      create or replace procedure AddFile( xml varchar2 ) is
    begin
            insert into foo_files(
                    filename,
                    sender_id,
                    receiver_id,
                    password
            with XML_DATA as(
                    select
                            xmltype( xml ) as XML_DOM
                    from    dual
            select
                    extractValue( xml_dom, '/XML/File/@name' ),
                    extractValue( xml_dom, '/XML/File/BookingEnvelope/SenderID' ),
                    extractValue( xml_dom, '/XML/File/BookingEnvelope/ReceiverID' ),
                    extractValue( xml_dom, '/XML/File/BookingEnvelope/Password' )
            from    xml_data;
    end;
    /No need for a fantasy called PL/SQL "+tables+".

  • I need some working examples with pl/sql records and pl/sql tables.

    i am new to pl/sql tables and pl/sql records. i need some working examples on pl/sql records and pl/sql tables from basics to hoghlevel.how to use then procedures and functions and packages.

    i am new to pl/sql tables and pl/sql records. i need some working examples on pl/sql records and pl/sql tables from basics to hoghlevelThere is no such thing as PL/SQL "+tables+". This is a misnomer and creates the perception that a PL/SQL "table" is somewhat like a SQL table. Nothing can be further from the truth. The correct term is "+collection+" or "+associative array+". Compared to SQL tables, these are very primitive structures, very rigid structures, cannot scale, and can be quite expensive memory wise.
    That is not to say do not use an associative array or collection. These are very useful tools.. but only when applied correctly. Like using a collection for a bulk fetch to transfer more rows between the PL and SQL engines and thus decrease context switching.
    Unfortunately, quite often we see the row-by-row and slow-by-slow approach - where the developer uses SQL as an I/O only layer, pulls rows into expensive PL engine memory into record structures and arrays, and then process the rows there.
    So before looking at working example (even the wrong approach's code will compile and run and work in practice), make sure that you know the fundamentals of correctly using the PL engine and correctly using the SQL engine. And these fundamentals can be summed up into a very basic rule:
    Maximize SQL. Minimize PL/SQL+
    Get this rule right, and you will have a sound foundation for writing performant and scalable Oracle applications.

  • JDBC Thin Driver Support for Data Encryption and Integrity

    Hello JDev Team,
    I am trying to implement JDBC Thin Driver Support for Data Encryption and Integrity.
    It works fine with java.sql.Connection and java.util.Properties like in the following code:
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Properties props = new Properties();
    int level = AnoServices.REQUIRED;
    props.put("oracle.net.encryption_client", Service.getLevelString(level));
    props.put("oracle.net.encryption_types_client", "( RC4_40 )");
    props.put("oracle.net.crypto_checksum_client",Service.getLevelString(level));
    props.put("oracle.net.crypto_checksum_types_client", "( MD5 )");
    Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:main", props);
    etc...
    But I am developing an application with InfoSwing components and it has a different way to connect to Oracle database using oracle.dacf.dataset.connections.Connection, like this:
    sessionInfo1.setAppModuleInfo(new ModuleInfo("bc", "BcModule"));
    sessionInfo1.setConnectionInfo(new LocalConnection("JDBCThin"));
    sessionInfo1.publishSession();
    My question is:
    Is there any way to implement DataEncryption and Integrity into this type of connection?
    Thanks a lot in advance.
    Victor Bykov
    null

    Victor,
    No, you can't do this from DAC, but I've been discussing it with the developer, and we both think this capability would be useful to have, so I've logged it as an enhancement request.
    I do have a question for you. Once you've made the JDBC connection, do you need access to the Connection object afterwards? We're thinking of how the change could be implemented, and one way would be to allow you to pass in a Properties object when creating your own NamedConnection.
    Thanks
    Blaise

  • On my ipad mini, when I delete an email from the inbox (and it goes into Trash), it immediately deletes that email from the server (ATT/Yahoo).  I've called support for both ATT and Apple and can't find a way to have the emails remain on the server.

    On my iPad Mini, when I delete an email from the inbox (and it goes into Trash), it immediately deletes that email from the server (ATT/Yahoo).  I've called support for both ATT and Apple and can't find a way to have the emails remain on the server. 
    My husband and I share an email address and if he misses a day checking email on his notebook, he doesn't receive the items that I have sent to Trash on my iPad Mini.
    Appreciate suggestions.
    [The curious thing is, if I "move" the deleted emails from Trash on my iPad Mini into the Inbox, I can go to my notebook, open my online email and they are back in my ATT/Yahoo Inbox.]

    Is your Yahoo account set up as POP3 or IMAP?

  • Support for RAW Video and Image Sequences

    Being a stills photographer who moved into video some years back, I'm very interested in the direction Lightroom is going with regards to video support. I haven't tried it yet but I wondered if LR4 supports Red R3D files? And would it perhaps support other future RAW video formats from the likes of Canon and Sony? It would seem like the perfect application, perhaps intergrating with Premiere in a similar way to RedCine with FCP. Be great to be able to log footage, orginize it into bins and do basic colour correction in LR, edit the project in Premiere and re-touch in After Effects.
    Another task LR would seem ideally suited to is combining image sequences into timelapse video. Shooting timelapse as an image sequence on a DSLR is pretty much standard practice these days; and I've used LR to colour correct, crop and scale my sequences (before fitting them together in Quicktime) for years now. It would be fantastic to be able to preview the clip and export the video (as DPX, ProRes or DNxHD) from within Lightroom.
    These are obviously fairly long term wishes. In the short term though, the video features are pretty much useless to me without support for exporting ProRes and DNxHD files. With this LR becomes a powerful asset manager that could be used to collect together footage from multiple sources/codecs and transcode it all for editing. As mentioned in a previous thred, XML support would make it even more useful in this context. There is definitly a gap in the market for an application than can handle this kind of task well.
    With other manufactures floundering or neglecting their professional user base, Adobe would seem poised to take the video post crown. I wonder if Lightroom could be part of the takeover?

    As I understand it Andy, its intention is to remain a photographers program, not a videographers program.  The basic video features are available for lightweight management of videos coming from digital cameras, but it's not going too much further than that at this point in time.  Of course that may change in the future, but we'll all have to wait and see on that one.

  • How Can I get Interview Questions and answers for Oracle9i DBA and PL/SQL

    How Can I get Interview Questions and answers for Oracle9i DBA and PL/SQL Programmer.

    Please check the following link.
    http://www.geekinterview.com/
    -aijaz

  • Can anybody explain what is support for ADF Project and to solve the Issues

    Hi,
    I am new to ADF and i am currently associated to ADF Support Project.
    Can anybody explain what is support for ADF Project and to solve the Issues when the ADF Project is in Live.
    we are getting the Tickets for the Issues.
    Thanks in advance.

    I agree with Timo.
    It depends on the size of the project, user base, technologies, etc. We use lot of technologies in fusion middleware stack. We get tickets in many areas.
    In your case, it could be anything like user training issues (user may not know how to use the some system features), browser issues like blank screen, bugs in code like JBO errors (failed to validate, another user has changed row, failed to lock the record, NullPointerException, IllegalArgumentException etc), business logic issues, page may not render properly, performance issues, partial commit issues, application server issues, authentication issues. If you use web services you might get web services related problems.

  • Outlook Web Access is currently unavailable. If the problem continues, contact technical support for your organization and tell them the following: No Client Access servers of the appropriate version can be accessed from the Internet

    Good Morning,
         We are getting this error 
    Outlook Web Access is currently unavailable. If the problem continues, contact technical support for your organization and tell them the following: No Client Access servers
    of the appropriate version can be accessed from the Internet
    We installed a new Exchange 2007 CAS on Windows 2008R2. Got rid of old CAS on Exchange 2007. Now seeing this error. Does anyone have an idea??

    Hi,
    If the issue persists, I recommend you install Exchange 2007 SP3 RU7 and check the result. Also, ensure that Exchange 2010 SP2 RU1 or later version is installed. Old Exchange version may lead to the CAS-to-CAS proxy incompatibility.
    What's more, here are some helpful blogs for your reference.
    Exchange 2010 SP2 RU1 and CAS-to-CAS Proxy Incompatibility
    http://blogs.technet.com/b/exchange/archive/2012/02/17/exchange-2010-sp2-ru1-and-cas-to-cas-proxy-incompatibility.aspx
    OWA Coexistence With Legacy Versions
    http://blogs.technet.com/b/sjimmie/archive/2010/07/09/owa-coexistence-with-legacy-versions.aspx
    Hope this can be helpful to you.
    Best regards,
    Amy Wang
    TechNet Community Support

  • Support for Seam, Facelets and RichFaces

    Does OC4J provides support for Seam, Facelets and RichFaces?
    Thanks,
    Arun

    OC4J is just a Java EE container so it should be able to run any Java EE libraries.
    But maybe you should be asking this on the OC4J forum http://forums.oracle.com/forums/categoryHome.jspa?categoryID=84

  • Downloaded Mountain Lion and lost support for Word, Excel, and PowerPoint.

    Downloaded Mountain Lion and lost support for Word, Excel, and PowerPoint. Anyone know how to get it back?

    Odds are you running Office 2004, which is coded in PowerPC code. PowerPC is no longer supported.
    You either must upgrade the newer version  of Office that will work or downgrade OS X.
    Allan

  • Support for Conexant chipsets and the HSF driver

    Is it possible to add in kernel's PKGBUILD patch http://www.linuxant.com/alsa-driver/als … 19-3.patch for improving support for Conexant chipsets and the HSF driver?

    You better file a bug report for it: http://bugs.archlinux.org/
    Last edited by Nepherte (2009-04-24 10:06:17)

  • LabVIEW network library with support for SSL, Ping and IPv6

    I have posted on LAVA
    an OpenG package that will install a LabVIEW network library with
    support for SSL, Ping and IPv6.
     Please go there if you are
    interested to look it up.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

    Bob Y. wrote:
    OK,  but what is it and why should I use it?  What need does it fulfill?  I have been unable to find much documentation for this at the wiki page and maybe a couple of paragraphs here would help.
    Thanks,
    Bob Young
    Hi Bob,
    Yes, this info got burried.  Basically, it's a tool for building LabVIEW-based software products.  It is highly flexible/extensible and tries to fill the holes left by LabVIEW's built-in Application Builder.  Here are some good links to more info:
    OpenG Builder Homepage
    OpenG Builder 1.0 Documentation
    Thanks,
    -Jim

Maybe you are looking for

  • Opening or saving photo attachment; add to iphoto option on save

    On my computer, in the Mail application, I always see the "Add to iPhoto" option on the Save button when someone has sent me a photo regardless of whether it is one or several. Does anyone know if there's some way to make this option show or not? I w

  • Emailing Your Own Attachment from an XFA Form

    Hello there Is there any way to send an email with an attachment from a XFA PDF created in designer?, where the attachment is not one of the "built-in" options (XML, pdf etc.). I want to be able to email the encrypted XML. If not, how can XML data be

  • Resetting default application to "Pages"

    When I open a downloaded document (usually originally a Windows document), and click on it, somehow it is always opened in "Open Office" a slow and cumbersome word processing app that translates MS documents and spreadsheets well but is too sophistic

  • Scrolling Logos Horizontally

    I'm looking to find a tutorial and some information about setting up a small flash piece for a website that, when loaded, will be able to display x-number of logos that are slowly moving from top to bottom in a loop. When the cursor goes over that ar

  • Bdc in background mode PA30

    hi,      I facing issue in BDC for PA30, My BDC is working in foreground mode but not running in background mode. purpose of bdc is based on value of itab of previous day data update on next day in backgound. below code i m using in BDC : INITIALIZAT