PLS-00630: pipelined functions must have a supported collection return type

Hello, I created an TYPE of OBJECT and a PLSQL Function as shown below, but the function compilation errors with following. Not sure where is the issue?
PLS-00630: pipelined functions must have a supported collection return typeThis is on Oracle 10g r2
CREATE OR REPLACE TYPE cxs_plsql_profiler_object_type AS OBJECT (
   cxs_object_name      VARCHAR2 (128),
   cxs_object_type      VARCHAR2 (19),
   cxs_object_status    VARCHAR2 (7),
   cxs_read_execution   NUMBER,
   cxs_buffer_gets      NUMBER,
   cxs_disk_reads       NUMBER,
   cxs_executions       NUMBER,
   cxs_sorts            NUMBER,
   cxs_sharable_mem     NUMBER,
   cxs_address          NUMBER,
   cxs_hashvalue        NUMBER,
   cxs_osuser           VARCHAR2 (30),
   cxs_username         VARCHAR2 (30),
   cxs_module           VARCHAR2 (48),
   cxs_machine          VARCHAR2 (64),
   cxs_status           VARCHAR2 (8),
   cxs_terminal         VARCHAR2 (16),
   cxs_percentconsume   NUMBER,
   cxs_percentrepeat    NUMBER,
   cxs_plan             VARCHAR2 (120),
   target_name          VARCHAR2 (200),
   referenced_name      VARCHAR2 (200),
   referenced_type      VARCHAR2 (200),
   targetowner          VARCHAR2 (200),
   refowner             VARCHAR2 (200)
)and here is the API
    FUNCTION CXS_GENERATE_PLSQL_PROFILER
RETURN cxs_plsql_profiler_object_type
PIPELINED IS
out_rec cxs_plsql_profiler_object_type ;
plsbatch plsql_batch;
skount integer;
dpendrec depend_tab;
dkount integer;
CURSOR objects
      IS
         SELECT object_name, object_type
           FROM dba_objects
          WHERE status = 'VALID'
            AND owner NOT IN ('SYS', 'SYSTEM')
            AND object_type IN ('PACKAGE', 'PROCEDURE', 'FUNCTION');
      CURSOR apis (p_object dba_objects.object_name%TYPE)
      IS
         SELECT DISTINCT *
                    FROM (SELECT   SUBSTR (a.sql_text, 1, 50) sql_text,
                                   TRUNC
                                      (  a.disk_reads
                                       / DECODE (a.executions,
                                                 0, 1,
                                                 a.executions
                                      ) reads_per_execution,
                                   a.buffer_gets, a.disk_reads, a.executions,
                                   a.sorts, a.sharable_mem, a.address,
                                   a.hash_value, b.osuser, b.username,
                                   b.module, b.machine, b.status, b.terminal,
                                   ROUND
                                      (cxs_db_info.kompute_percentofsql
                                                               (a.sharable_mem),
                                       5
                                      ) percentkonsume,
                                   cxs_db_info.kount_repeat
                                                         (b.osuser,
                                                          b.terminal
                                                         ) percentr,
                                   c.operation explainplan
                              FROM v$sqlarea a, v$session b, v$sql_plan c
                             WHERE b.sql_hash_value = a.hash_value
                               AND b.sql_address = a.address
                               AND a.hash_value = c.hash_value
                               AND a.address = c.address
                               AND b.status = 'ACTIVE'
                               AND UPPER (a.sql_text) LIKE
                                                        '%' || p_object || '%'
                               AND c.ID = 0
                          ORDER BY 2 DESC)
                   WHERE ROWNUM <= 50;   --profile option
BEGIN
skount := 0;
dkount := 0;
FOR i IN objects
      LOOP
         FOR j IN apis (i.object_name)
         LOOP
            skount := skount + 1;
            plsbatch(skount).cxs_object_name  := i.object_name;
   plsbatch(skount).cxs_object_type      :=  i.object_type;
   plsbatch(skount).cxs_object_status    :=  i.object_status;
   plsbatch(skount).cxs_read_execution   := j.reads_per_execution;
   plsbatch(skount).cxs_buffer_gets      := j.buffer_gets;
   plsbatch(skount).cxs_disk_reads       := j.disk_reads;
   plsbatch(skount).cxs_executions       := j.executions;
   plsbatch(skount).cxs_sorts            := j.sorts;
   plsbatch(skount).cxs_sharable_mem     := j.sharable_mem;
   plsbatch(skount).cxs_address          := j.address;
   plsbatch(skount).cxs_hashvalue        := j.hashvalue;
   plsbatch(skount).cxs_osuser           := j.osuser;
   plsbatch(skount).cxs_username         := j.username;
   plsbatch(skount).cxs_module           := j.module;
   plsbatch(skount).cxs_machine          := j.machine;
   plsbatch(skount).cxs_status           := j.status;
   plsbatch(skount).cxs_terminal         := j.terminal;
   plsbatch(skount).cxs_percentconsume   := j.percentconsume;
   plsbatch(skount).cxs_percentrepeat    := j.percentrepeat;
   plsbatch(skount).cxs_plan             := j.explainplan;
         END LOOP;
         FOR dd IN dpend (i.object_name)
         LOOP
            dkount := dkount + 1;
            dependrec (dkount).target_name := dd.NAME;
            dependrec (dkount).refname := dd.referenced_name;
            dependrec (dkount).reftype := dd.referenced_type;
            dependrec (dkount).target_owner := dd.owner;
            dependrec (dkount).refowner := dd.referenced_owner;
         END LOOP;
      END LOOP;
for a in 1..skount loop
   out_rec.cxs_object_type      := plsbatch(a).object_type;
   out_rec.cxs_object_status    := plsbatch(a).object_status;
   out_rec.cxs_read_execution   := plsbatch(a).reads_per_execution;
   out_rec.cxs_buffer_gets      := plsbatch(a).buffer_gets;
   out_rec.cxs_disk_reads       := plsbatch(a).disk_reads;
   out_rec.cxs_executions       := plsbatch(a).executions;
   out_rec.cxs_sorts            := plsbatch(a).sorts;
   out_rec.cxs_sharable_mem     := plsbatch(a).sharable_mem;
   out_rec.cxs_address          := plsbatch(a).address;
   out_rec.cxs_hashvalue        := plsbatch(a).hashvalue;
   out_rec.cxs_osuser           := plsbatch(a).osuser;
   out_rec.cxs_username         := plsbatch(a).username;
   out_rec.cxs_module           := plsbatch(a).module;
   out_rec.cxs_machine          := plsbatch(a).machine;
   out_rec.cxs_status           := plsbatch(a).status;
   out_rec.cxs_terminal         := plsbatch(a).terminal;
   out_rec.cxs_percentconsume   := plsbatch(a).percentconsume;
   out_rec.cxs_percentrepeat    := plsbatch(a).percentrepeat;
   out_rec.cxs_plan             := plsbatch(a).explainplan;
   PIPE ROW(out_rec);
end loop;
for b in 1..dkount loop
    out_rec.target_name := dd.NAME;
            out_rec.refname := dependrec (b).referenced_name;
            out_rec.reftype := dependrec (b).referenced_type;
            out_rec.target_owner := dependrec (b).owner;
            out_rec.refowner := dependrec (b).referenced_owner;
            PIPE ROW(out_rec);
end loop;
RETURN;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.format_error_backtrace);
DBMS_OUTPUT.PUT_LINE(SQLCODE);
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END; and below are tradtional table types that are used in code above.
TYPE type_plsql_rec IS RECORD (
   cxs_object_name      VARCHAR2 (128),
   cxs_object_type      VARCHAR2 (19),
   cxs_object_status    VARCHAR2 (7),
   cxs_read_execution   NUMBER,
   cxs_buffer_gets      NUMBER,
   cxs_disk_reads       NUMBER,
   cxs_executions       NUMBER,
   cxs_sorts            NUMBER,
   cxs_sharable_mem     NUMBER,
   cxs_address          NUMBER,
   cxs_hashvalue        NUMBER,
   cxs_osuser           VARCHAR2 (30),
   cxs_username         VARCHAR2 (30),
   cxs_module           VARCHAR2 (48),
   cxs_machine          VARCHAR2 (64),
   cxs_status           VARCHAR2 (8),
   cxs_terminal         VARCHAR2 (16),
   cxs_percentconsume   NUMBER,
   cxs_percentrepeat    NUMBER,
   cxs_plan             VARCHAR2 (120)
   TYPE plsql_batch IS TABLE OF type_plsql_rec
      INDEX BY BINARY_INTEGER;
       TYPE type_depend_tab IS RECORD (
      target_name    dba_dependencies.NAME%TYPE,
      refname        dba_dependencies.referenced_name%TYPE,
      reftype        dba_dependencies.referenced_type%TYPE,
      target_owner   dba_dependencies.owner%TYPE,
      refowner       dba_dependencies.referenced_owner%TYPE
   TYPE depend_tab IS TABLE OF type_depend_tab
      INDEX BY BINARY_INTEGER;
Thank you for your time in reading this post
R

Thank you Billy and Saubhik,
I have followed your guidelines and was able to resolve this error. Now, after successfully compiling the code, I attempted to execute it in a following way.
SELECT * FROM TABLE (cxs_generate_plsql_profiler);It gives following error: ORA-00904: "CXS_GENERATE_PLSQL_PROFILER": invalid identifier
I also tried putting in quotes like below
SELECT * FROM TABLE ('cxs_generate_plsql_profiler');Then, it gives following error:
ORA-22905: cannot access rows from a non-nested table item
Any Idea where I am doing wrong?
Thanks,
R

Similar Messages

  • Have an object as return type in a method in the WebDynproComponent

    Hello together.
    I've wrote an EJB in which is a method that read out a DB Table XYZ. In this EJB also are methods to search a single entry.
    In my WebDynpro applixcation i have a method in the Component that access the EJB and retrive the single entry for example. In the View implemantation i call the method from the "WEbDynPro component" which have a string as return type.
    Is it possible to have an object as return type?
    public java.lang.String sr( int KVNR )
        //@@begin sr()
        KVNummerDTO kvnrObject = new KVNummerDTO();
        String Kasse = "";
          try
              KVNRSessionLocal kVNummerSessionLocal = kVNRSessionLocalHome.create();
              kvnrObject = kVNummerSessionLocal.getKVNummer(KVNR);
              Kasse = kvnrObject.getKasse();
          catch (Exception e)
               e.printStackTrace();
               wdComponentAPI.getMessageManager().reportException(e.getMessage(), true);
          return Kasse;
        //@@end
    I want to return kvnrObject  and not only a string!

    Hello Micheal,
    While Creating a method in front of the return type click on the browse and select Java Native Type Radio Button and again click on the browse button available there. Type the name of the class in the class in it and you can select the return type. If it is a user made class then first the required Java files under the path Resources>src>packages><create a folder>java file. Then build the project so that the class name is visible in list while selecting the return type.
    Regards,
    Ardhendu

  • ODSI support for return type "PL/SQL TABLE"?

    Hello!
    We are trying to connect our ODSI to an Oracle function with return type "PL/SQL TABLE". The ODSI "wizard" (used to create the physical data service) seems to understand the interface during creation, but when executed it fails. The ODSI server complains about wrong type (PLS-00382: expression is of wrong type) when we execute it from the "test tab".
    The function's metadata is looks like this:
    <params xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdt="http://www.w3.org/2004/07/xpath-datatypes" xmlns:pn1="ld:physical/rekondis/CALC_DEBITING" >
    <param name="RETURN_VALUE" kind="return" xqueryType="pn1:RETURN_VALUE_ROW" nativeTypeCode="1111" nativeType="PL/SQL TABLE"/>
    <param name="PIN_CASE_ID" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="PIN_ACTION_CODE" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
    <param name="PI_AD_NAME" kind="in" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
    </params>
    Any ideas how we can make this work!? Or is this not even supported in ODSI 10.3?
    Thanks!
    // Mikael

    Please refer to the documentation - http://download.oracle.com/docs/cd/E13162_01/odsi/docs10gr3/datasrvc/Create%20Physical%20Data%20Services%20from%20Stored%20Procedures.html

  • [nQSError: 22019] Function Sum does not support non-numeric types. OBIEE11G

    I have the following error when using COUNT on a non-numeric column in OBIEE 11g
    I cannot seem to find the root cause. I tried to recreate the RPD with the same aggregations an joins and the issue disappears. However, the issue seems to persist in the original RPD that is being used by the business. I cannot seem to find any differences w the RPD.
    Any thoughts?

    Hi Rahul,
    this question does not seem to be related to SQL and PL/SQL forum.
    I guess you could use {forum:id=64} or {forum:id=61} forums.
    Regards.
    Al

  • Must Have Functions

    Conditional Counts - (either through DCOUNT/DCOUNTA/DAVERAGE or COUNTIF with support for multiple conditions).
    Better Conditional Formatting - (format of one cell can be based on mutiple other cells).
    Mathematic Functions with Different Formats - (Abillity to add/subtract/etc. Time (hh:mm:ss))
    Pivot Table/Charts - (nuff said)
    Correct Handling of Oracle/SQL Database Queries - (UNUSABLE Without)
    ...I'm sure more will come as I fail to redo more workbooks in Numbers from Excel.

    It looks your return type was never really supported:
    PLS-00630: pipelined functions must have a supported collection return type

  • Record vs object vs globle table in pipelined function

    i want to make pipeline function , i show it can be made in following ways
    please suggest which one is better in performance and maintenance.
    1)
    create type my_tab_type is object
    (prodid number, a varchar2(1), b varchar2(1),
    c varchar2(1), d varchar2(1), e varchar2(1))
    create type my_tab_type_coll is table of my_tab_type;
    create or replace function get_some_data (p_val in number)
    return my_tab_type_coll pipelined is
    begin
    FOR i in (select * from my_table where prodid=p_val) loop
    pipe row(my_tab_type(i.prodid,i.a,i.b,i.c,i.d,i.e));
    end loop;
    return;
    end;
    SELECT * FROM table(get_Some_Data(3));
    2)
    one can create globle tem table "Tlb_3". then can make a package like fllowing
    create or replace
    PACKAGE pk1
    AS
    TYPE T_type IS TABLE OF Tlb_3%ROWTYPE;
    END;
    and rest of the thing will be same like first one.
    3)
    TYPE outrec_typ IS RECORD (
    var_num NUMBER(6),
    var_char1 VARCHAR2(30),
    var_char2 VARCHAR2(30)
    TYPE outrecset IS TABLE OF outrec_typ;
    and rest of the thing will be same like first one
    so main question is relating to declaretion of TABLE which is returned.
    yours sincerely
    Edited by: 944768 on Jan 2, 2013 4:23 AM

    DUPLICATE THREAD!
    How many times do you intend to ask this question?
    This is the same question that you ask, and got answered, six months ago in this thread?
    how to write Function returing table or set of rows.
    And you ask it again a week ago in this thread
    object vs record in pipelined function.
    Have you forgotten those answers already? Why didn't you take the advice given there and perform some tests?
    And you don't seem to acknowledge any of the help you get to your questions by marking them ANSWERED when they have been.
    Please revisit this 32 questions and mark them ANSWERED as appropriate - Total Questions: 73 (32 unresolved)
    >
    i want to make pipeline function , i show it can be made in following ways
    please suggest which one is better in performance and maintenance.
    >
    Why didn't you take the advice given there and perform some tests?
    Option #1, using SQL types is better, especially for maintenance. Also SQL types are required if the function is going to be called from SQL. You can define PL/SQL or %ROWTYPE package variables and use them but Oracle will silently create 'hidden' (in 11g) SQL types and use those.
    See Solomon's explanation and sample code in this recent thread
    Re: Pipe line function
    There certainly isn't any need to create a global temp table just so you can create the %ROWTYPE variable; you can create one of those based on a CURSOR.

  • How the performance will increase with pipelined function.

    Respects all,
    Can u please help to explain one example regarding which i have mentioned in the subject line.
    Thanks

    Hi,
    pipelined functions don't "increase performance".
    1) This is an entirely wrong way to think about Oracle features. There are no Oracle features that automatically "increase performance", like some sort of a "turbo" button (not even partitioning! not even indexes!). Most of the features can work both ways -- when used appropriately, they improve performance, when not, they can cripple it.
    2) Pipelined functions are not about performance. They simply provide a way for you to SELECT from a PL/SQL function (which otherwise is impossible to do). Not only you can generate sets of values this way, but also you can join it with other tables/views, that can be very convenient. Pipelined functions can also be very convenient for generating formatted text reports they allow you to bypass limitations of long/lob data types). But none of this has to do with performance.
    3) Pipelined functions are inevitably associated with row-by-row processing (because there is no way to pipe a set of rows at once). So when the choice is between returning a refcursor (from which you can do a bulk fetch), and using a pipelined function, from which you'll be returning rows one by one, and none of items listed in 2) applies, then chances are that pipelined function is going to be slower.
    So whoever claimed that "pipelined functions increase performance", either he/she is incompetent, or you took his/her words out of the context or misintepreted them.
    Best regards,
      Nikolay

  • Is thr SAP functionality to have 301 movement type report with supplying pl

    Dear all,
    Please tell me is there any standard functionality to have report on 301 movement type with supplying plant.
    Please guide.
    Regards,

    Hi,
    Goto SPRO > MM > Inventory Management and Physical Inventory > Reporting > Define Field Selection for Material Document List > Here add field MSEG-UMWRK for program RM07DOCS and mark "Selection" and "output" both.
    And check in MB51 Report, you will get Plant (WERK - Supplying Plant) and Receiving Plant (UMWRK) both fields available.

  • Same functions with different return types in C++

    Normally the following two functions would be considered the same:
    int getdata ( char *s, int i )
    long getdata ( char *s, int i )
    Every other compiler we use would resolve both of these to the same function. In fact, it is not valid C++ code otherwise.
    We include some 3rd party source in our build which sometimes messes with our typedefs causing this to happen. We have accounted for all of the function input types but never had a problem with the return types. I just installed Sun ONE Studio 8, Compiler Collection and it is generating two symbols in our libraries every time this occurs.
    Is there a compiler flag I can use to stop it from doing this? I've got over 100 unresolved symbols and I'd rather not go and fix all of them if there is an easier way.

    Normally the following two functions would be
    considered the same:
    int getdata ( char *s, int i )
    long getdata ( char *s, int i )Not at all. Types int and long are different types, even if they are implemented the same way.
    Reference: C++ Standard, section 3.9.1 paragraph 10.
    For example, you can define two functions
    void foo(int);
    void foo(long);
    and they are distinct functions. The function that gets called depends on function overload resolution at the point of the call.
    Overloaded functions must differ in the number or the type of at least one parameter. They cannot differ only in the return type. A program that declares or defines two functions that differ only in their return types is invalid and has undefined behavior. Reference: C++ Standard section 13.1, paragraph 2.
    The usual way to implement overloaded functions is to encode the scope and the parameter types, and maybe the return type, and attach the encoding to the function name. This technique is known as "name mangling". The compiler generates the same mangled name for the declaration and definition of a given function, and different mangled names for different functions. The linker matches up the mangled names, and can tell you when no definition matches a reference.
    Some compilers choose not to include the return type in the mangled name of a function. In that case, the declaration
    int foo(char*);
    will match the definition
    long foo(char*) { ... }
    But it will also match the definitions
    myClass foo(char*) { ... }
    double foo(char*) { ... }
    You are unlikely to get good results from such a mismatch. For that reason, and because a pointer-to-function must encode the function return type, Sun C++ always encodes the function return type in the mangled name. (That is, we simplify things by not using different encodings for the same function type.)
    If you built your code for a 64-bit platform, it would presumably link using your other compilers, but would fail in mysterious ways at run time. With the Sun compiler, you can't get into that mess.
    To make your program valid, you will have to ensure your function declarations match their definitions.

  • Covariant return types - JLS to support but JVM will not?

    Could you please confirm the following? My understanding is that covariant return types will be supported by the JLS but the JVM will know nothing about them. That is, the invokevirtual instruction will not change to support covariant return types but rather the compiler will use bridge methods to simulate support. Is this correct?

    Right: but is there support for this in 1.5?
    javac -verbose -source 1.5 -target 1.5 *java
    was run on a .java file with the following methods and it failed "getX already defined"
    public Integer getX() {
    return(null);
    public String getX() {
    return(null);
    The above would be overloading by return type and fails to compile.
    ================
    class A {
    Exception f() {}
    class B extends A {
    BindException f() {} // overload or override?
    The above would be covariant returns and works just fine right?

  • HT1296 What is the correct windows xp path to use so USB sync will function? I must have moved my folder because sync no longer works.

    I tried to organize my computer folders but must have moved a key folder for my iProducts because I can no longer sync. Does anyone know the correct windows xp path to put my documents folder in the right location so sync will function again?

    Open iTunes, go to the Help, on the top menu bar.  ITunes can rebuild the path to the iTunes files.

  • My kids have given me a second hand ipad 1st gen MC497B/A ipad  3G 64GB- GBR and I cannot get ANY apps even free ones as says I must have V6 Surely this device is not so old I can't get any apps Plea tell a novice what to do as no free Apple support!

    I am the proud owner of a first gen ipad given to me for Easter by my kids and we cannot get any apps even freebies as says I must have V6 but now idea how to upgrade my ipad! i would be very grateful for simple instructions as to how to get apps ASAP And I have no idea what operating system I have
    Many thanks a VERYNovice ipadder

    The iPad 1 can be updated to iOS 5.1.1. You can see what level you are running in Settings > General > About > Version.
    If you are not at iOS 5.1.1 and if you are have iOS 4 (or earlier) there is no Software Update in Settings. That feature was first added in iOS 5.
    To update you will have to connect your iPad to iTunes on a computer (preferably the one you sync with and backup to).
    See here: http://support.apple.com/kb/HT4972
    If you are on level 5 but not at 5.1.1 you can update to 5.1.1 using Settings > General > Software Update.
    There are still many Apps which will run on iOS 5. Also, some developers have older levels still available for the iPad 1.

  • TS3354 "To play this movie in HD, you must have a PC with a built-in display or have it connected to a display that supports HDCP."

    I recently reinstalled restored my Toshiba laptop with Windows 8 to factory condition.  I reinstalled iTunes, and now when I try to play a movie, I get this error message:  "To play  (name of movie) you must have a PC with built-in display or have it connected to a display that has built in HDCP."  This happens with both my downloaded movies and my iCloud movies.  It never did this before.  Any suggestions?

    I have the exact same problem. I watched both AnchorMan 2 and The Hobbit Desolation of Smaug a week ago on my set up. BenQ monitor ATI Radeon HD 5700 Series Video card. No issues. Then I reformat and all of a sudden my purchased movies give me that error. It's so frustrating.
    The odd part is for the Hobbit the itunes extras will start just like before, however I can't select a scene.
    How is there no response to this? Are we missing something obivous? A default setting? Driver?
    Help please!

  • How to Passing clob to PL/SQL pipeline function

    I have a PL/SQL stored function which takes clob as input parameter and sends the results in a pipe line.
    create or replace function GetIds(p_list clob, p_del varchar2 := ',') return ideset_t pipelined is
    I am using ojdbc14.jar (Oracle 10g driver) with oracle 9i (9.2.0.1.0).
    I want to use the following SQL Query select * from table(GetIds(clob))
    Now the question is how can I pass the clob from JDBC?
    Here is my client code
    PreparedStatement stmt = con.prepareStatement("SELECT COLUMN_VALUE FROM TABLE(GETIDS(?, ','))");
    stmt.setCharacterStream(1, new StringReader(str), str.length());
    stmt.executeQuery();
    I get the following error when I try to run the program. The same thing works fine if the chracter lenght is less than some chaaracters.
    java.sql.SQLException: ORA-01460: unimplemented or unreasonable conversion requested
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:623)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:181)
         at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:420)
         at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:896)
         at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:452)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:986)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2888)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:2960)
         at Test.main(Test.java:42)
    Exception in thread "main"
    The setChracterStream works for any insert/update clob. Example when I tried the query (INSERT INTO CLOB_TEST VALUES(?)) setCharacterStream just works fine.
    Please any one can help me how to solve this.
    Thanks in advance.

    Hóla LuÃs,
    when you pick the PL/SQL function body returning a boolean, it implicitly means that TRUE means OK, while FALSE means error, always.
    In order to associate such error to a given form field, you have to go back to the page definiton / validations and specify the name of the item in the corresponding field.
    When you first create the validation rule, this value is not present even if you ask for the error message inline with the field.
    The error message text can be specified in the validation definition, if I am not wrong.
    When you need to return special error messages, including dynamic content for instance, you can use the Function Returning Error Message type, which reports an error when the string returned by the function is not null. This comes in handy when you want to display an item's code, for example, rather than generic text.
    Even in this case, you must go back to the validation and specify the name of the field if you want to see it inline.
    Hope it helps,
    Flavio

  • List View Report with pipelined function in Mobile application and ORA-01007: variable not in select list

    Hi!
    I have a problem with List View Report in mobile application (theme 50 in apex) after updating to apex 4.2.2. I created Report -> List View. I used select from pipelined function in Region Source. Then when page is running and submited three times (or refreshed three times) I get an error:
    Error during rendering of region "LIST VIEW".
    ORA-01007: variable not in select list
    Technical Info (only visible for developers)
    is_internal_error: true
    apex_error_code: APEX.REGION.UNHANDLED_ERROR
    ora_sqlcode: -1007
    ora_sqlerrm: ORA-01007: variable not in select list
    component.type: APEX_APPLICATION_PAGE_REGIONS
    component.id: 21230833903737364557
    component.name: LIST VIEW
    error_backtrace:
         ORA-06512: at "APEX_040200.WWV_FLOW_DISP_PAGE_PLUGS", line 4613
         ORA-06512: at "APEX_040200.WWV_FLOW_DISP_PAGE_PLUGS", line 3220
    I get this error only when I use select from pipelined function in Region Source (for example: "select value1, value2 from table(some_pipelined_function(param1, param2)) ").
    You can check it on http://apex.oracle.com/pls/apex/f?p=50591 (login - demo, password - demo).
    In this application:
    - I created package TAB_TYPES_PKG:
    create or replace PACKAGE TAB_TYPES_PKG IS
    TYPE cur_rest_r IS RECORD (
        STR_NAME          VARCHAR2(128),
        INFO              VARCHAR2(128)
    TYPE cur_rest_t IS TABLE OF cur_rest_r;
    END TAB_TYPES_PKG;
    - I created pipelined function TEST_FUNC:
    create or replace
    FUNCTION TEST_FUNC
    RETURN TAB_TYPES_PKG.cur_rest_t  PIPELINED IS
    r_cur_rest TAB_TYPES_PKG.cur_rest_r;
    BEGIN
    r_cur_rest.STR_NAME := 'ROW 1';
    r_cur_rest.INFO := '10';
    PIPE ROW (r_cur_rest);
    r_cur_rest.STR_NAME := 'ROW 2';
    r_cur_rest.INFO := '20';
    PIPE ROW (r_cur_rest);
    r_cur_rest.STR_NAME := 'ROW 3';
    r_cur_rest.INFO := '30';
    PIPE ROW (r_cur_rest);
    r_cur_rest.STR_NAME := 'ROW 4';
    r_cur_rest.INFO := '40';
    PIPE ROW (r_cur_rest);
    r_cur_rest.STR_NAME := 'ROW 5';
    r_cur_rest.INFO := '50';
    PIPE ROW (r_cur_rest);
    RETURN;
    END TEST_FUNC;
    - I created List View Report on Page 1:
    Region Source:
    SELECT str_name,
           info
    FROM TABLE (TEST_FUNC)
    We can see error ORA-01007 after refresing (or submiting) Page 1 three times or more.
    How to fix it?

    Hi all
    I'm experiencing the same issue.  Predictably on every third refresh I receive:
    Error
    Error during rendering of region "Results".
    ORA-01007: variable not in select list
    Technical Info (only visible for developers)
    is_internal_error: true
    apex_error_code: APEX.REGION.UNHANDLED_ERROR
    ora_sqlcode: -1007
    ora_sqlerrm: ORA-01007: variable not in select list
    component.type: APEX_APPLICATION_PAGE_REGIONS
    component.id: 6910805644140264
    component.name: Results
    error_backtrace: ORA-06512: at "APEX_040200.WWV_FLOW_DISP_PAGE_PLUGS", line 4613 ORA-06512: at "APEX_040200.WWV_FLOW_DISP_PAGE_PLUGS", line 3220
    OK
    I am running Application Express 4.2.2.00.11 on GlassFish 4 using Apex Listener 2.0.3.221.10.13.
    Please note: this works perfectly using a classic report in my desktop application; however, no joy on the mobile side with a list view.  I will use a classic report in the interim.
    My region source is as follows:
    SELECT description AS "DESCRIPTION", reference AS "REFERENCE" FROM TABLE(AUTOCOMPLETE_LIST_VIEW_FNC('RESULTS'))
    The procedure:
      FUNCTION AUTOCOMPLETE_LIST_VIEW_FNC(
          p_collection_name IN VARCHAR2)
        RETURN list_row_table_type
      AS
        v_tab list_row_table_type := list_row_table_type();
      BEGIN
        DECLARE
          jsonarray json_list;
          jsonobj json;
          json_clob CLOB;
        BEGIN
          SELECT clob001
          INTO json_clob
          FROM apex_collections
          WHERE collection_name = p_collection_name;
          jsonobj              := json(json_clob);
          jsonarray            := json_ext.get_json_list(jsonobj, 'predictions');
          FOR i IN 1..jsonArray.count
          LOOP
            jsonobj := json(jsonArray.get(i));
            v_tab.extend;
            v_tab(v_tab.LAST) := list_row_type(json_ext.get_string(jsonobj, 'description'), json_ext.get_string(jsonobj, 'reference'));
          END LOOP;
          RETURN(v_tab);
        END;  
      END AUTOCOMPLETE_LIST_VIEW_FNC;
    Thanks!
    Tim

Maybe you are looking for

  • Cannot connect to Server 2003 with firewall on

    A few days ago I could no longer connect to a Windows 2003 server via SMB using my MacBook at work. After a bit of trial and error (I've probably mucked up something in Directory Access) I decided to turn off the MacBook's firewall. Now I can connect

  • Create text editable PDF for client to edit in Adobe Reader

    I would like to create a PDF from either Illustrator or InDesign so that my client can edit just the text in the document using Adobe Reader as necessary (for flyers and business cards etc). I want to set the file up in Illustrator or InDesign so all

  • I want to render my stolen ipad useless

    IPAD AIR

  • Error in  displaying  doc file  on a jsp

    Hi I have an Web appln which retrieves a file stored in the DB. I am using a clob datatype I have the data stored in an InputStream . When i try to display the file the file contains junk values and the data is not displayed properly . Sometimes i ge

  • VAT/CST need to round off in MIRO

    Dear All, I want vat/service tax values should get round off while doing MIRO Is it possible? In our system withholding tax is getting rounded off in MIRO so my client is asking for these G/L's too.. Please let me know if it can be done or not Naren