PLS-00707: unsupported construct or internal error [2603] XML%Type

I'm currently using SQL Developer 3.0.4 (Details at bottom of thread) and get the following error when compiling a package:
PLS-00707: unsupported construct or internal error [2603]
The problem lies with an IN parameter which has a datatype of mytable.myxmlcolumn%type where the underlying myxmlcolumn has a datatype of SYS.XMLTYPE.
This compile fine in SQL Plus and also in PL/SQL Developer but not in SQL Developer.
Any ideas or assistance would be appreciated.
About
Oracle SQL Developer 3.0.04
Version 3.0.04
Build MAIN-04.34
Copyright © 2005, 2011 Oracle. All Rights Reserved.
IDE Version: 11.1.1.4.37.59.31
Product ID: oracle.sqldeveloper
Product Version: 11.1.2.04.34
Version
Component     Version
=========     =======
Java(TM) Platform     1.6.0_25
Oracle IDE     3.0.04.34
Versioning Support     3.0.04.34

Just an FYI: the status of the bug I logged for you is "Closed, Could Not Reproduce".
As you can see, to pursue these potential bugs we really must have well-defined test cases. Searching, I can find other complaints of similar cases (compiles in SQL*Plus but not SQL Developer) on the web (but without any code details), so a bug probably does exist. Perhaps someone will eventually provide a reproducible test case.
Thanks,
Gary

Similar Messages

  • Use SDO_NN in procedure: ERROR: PLS-00707: unsupported construct or internal error [2603]

    Hi,
    I have a problem with use SDO_NN function in a procedure. In case that I use SDO_NN in a SELECT command, it works. In case that I create an anonymous PL/SQL block, it works. But when I create a procedure, it doesn't work and there is an error: ERROR: PLS-00707: unsupported construct or internal error [2603].
    Here is the PL/SQL block, that works:
    BEGIN
    INSERT INTO K3_BlizkeDFB(SO1, SO2, VZDALENOST)
    SELECT  distinct
       ISO.kod AS SO1, SO.kod AS SO2, MDSYS.SDO_NN_DISTANCE(1) AS VZDAL
       FROM StavebniObjektDFB SO, StavebniObjektDFB_INDEX ISO 
       WHERE SDO_NN(ISO.geom,  SO.geom,
          'sdo_num_res=4', 1) = 'TRUE'
          AND ISO.kod<>SO.kod
          AND MDSYS.SDO_NN_DISTANCE(1)<=2;
    END;
    Here is an attempt to create a procedure that doesn't work:
    CREATE OR REPLACE PROCEDURE K1_BlizkeDFB AS
    BEGIN
    INSERT INTO K3_BlizkeDFB(SO1, SO2, VZDALENOST)
    SELECT  distinct
       ISO.kod AS SO1, SO.kod AS SO2, MDSYS.SDO_NN_DISTANCE(1) AS VZDAL
       FROM StavebniObjektDFB SO, StavebniObjektDFB_INDEX ISO 
       WHERE SDO_NN(ISO.geom,  SO.geom,
          'sdo_num_res=4', 1) = 'TRUE'
          AND ISO.kod<>SO.kod
          AND MDSYS.SDO_NN_DISTANCE(1)<=2;
    END;
    Can someone explain, what's wrong?
    Thanks
    Jindra

    Hi Jindra,
    Googling your error message says that this is sqldeveloper issue.  You can verify this by compiling your procedure with sqlplus.  Sounds like you need to update your software.
    Cheers,
    Paul

  • [SOLVED] Error: PLS-00707: unsupported construct or internal error [2603]

    Hi all,
    I have a SP, when I try to compile with sqldeveloper I have this error
    Error: PLS-00707: unsupported construct or internal error [2603]
    If I change "CREATE OR REPLACE PROCEDURE getsimilar AS" with DECLARE (anonymous block) the code work perfectly...
    What am I doing wrong?
    this is SP
    CREATE OR REPLACE PROCEDURE getsimilar AS
    id NUMBER;
    score NUMBER;
    image ORDSYS.ORDImage;
    query_signature ORDSYS.ORDImageSignature;
    queryimg ORDSYS.ORDIMAGE;
    CURSOR getphotos IS
    SELECT id, ORDSYS.IMGScore(123) SCORE FROM imgstable WHERE
    ORDSYS.IMGSimilar(sign, query_signature,
    'color="1.00" shape="1.00" texture="1.00" location="1.00"',20,123) = 1 order by SCORE desc;
    BEGIN
    queryimg := ORDSYS.ORDIMAGE.init('FILE','BDMVFSUPLOADSEARCHTMP','test.jpeg');
    query_signature := ORDSYS.ORDIMAGESIGNATURE.init();
    DBMS_LOB.CREATETEMPORARY(query_signature.signature, TRUE);
    query_signature.generateSignature(queryimg);
    OPEN getphotos;
    LOOP
    FETCH getphotos INTO id, score;
    EXIT WHEN getphotos%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE('Image with ID ' || id || ' matches query image. score:' || score);
    END LOOP;
    CLOSE getphotos;
    DBMS_LOB.FREETEMPORARY(query_signature.signature);
    END;
    Edited by: Reny on 4-apr-2011 6.22

    Hi
    Try creating the procedure without the positional notation in your function call in the cursor (BTW, the positional params should be specified as <param> => <value>, not <param> = <value>). i.e just pass the values to your functional call as shown below and see if it works. Is this what you intend to do?
    I also suggest that you try and compile the procedure in SQLPLUS.
    CREATE OR REPLACE PROCEDURE getsimilar AS
    id NUMBER;
    score NUMBER;
    image ORDSYS.ORDImage;
    query_signature ORDSYS.ORDImageSignature;
    queryimg ORDSYS.ORDIMAGE;
    CURSOR getphotos IS
    SELECT id, ORDSYS.IMGScore(123) SCORE FROM imgstable WHERE
    ORDSYS.IMGSimilar(sign, query_signature,
    '1.00', '1.00', '1.00','1.00',20,123) = 1 order by SCORE desc;
    BEGIN
    queryimg := ORDSYS.ORDIMAGE.init('FILE','BDMVFSUPLOADSEARCHTMP','test.jpeg');
    query_signature := ORDSYS.ORDIMAGESIGNATURE.init();
    DBMS_LOB.CREATETEMPORARY(query_signature.signature, TRUE);
    query_signature.generateSignature(queryimg);
    OPEN getphotos;
    LOOP
    FETCH getphotos INTO id, score;
    EXIT WHEN getphotos%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE('Image with ID ' || id || ' matches query image. score:' || score);
    END LOOP;
    CLOSE getphotos;
    DBMS_LOB.FREETEMPORARY(query_signature.signature);
    END;Edited by: GG on Apr 4, 2011 11:25 AM
    Edited by: GG on Apr 4, 2011 11:34 AM

  • 0 PLS-00707: unsupported construct or internal error [2603]

    I have several packages and their bodies which can be correctly imported into XE. However, when I recompile the body of some of the packages I get the PLS-00707... error. If I drop the body and then issue a "create or replace package body ..." with the same exact code, I do not get the error, but then again, on recompile I get the error.
    If before recompile, I execute the code, it runs correctly (apparently).
    Any idea?
    Thanks.

    Hakan,
    Likely you are hitting a bug in 10gR2, as you are not on the last patch release,10.2.0.4
    I recommend you visit Metalink and search for PLS-0707 to check whether my assumption is true and whether there is a fix available in 10gR2. You may of course request a backport, if it has been fixed in 11gR1 only.
    Sybrand Bakker
    Senior Oracle DBA

  • Error Message "PLS:707, unsupported construct or internal error "

    I am having a Stored Procedure which runs most of the times successfully when executed.But all of a sudden it throws a error message
    ERROR at line 1:
    ORA-06553: PLS-707: unsupported construct or internal error [2601]
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    So to correct this problem, i just compile the procedure again without doing any change.After doing this it works fine.When i logout from Oracle and relogin and try to execute the same SP , it again throws the error message.I am in need of a solution for this problem at the earliest.So request you to provide the feedback at the earliest.
    I am using
    Oracle8 Release 8.0.5.0.0
    PL/SQL Release 8.0.5.0.0
    I have attached the source code below.
    CREATE OR REPLACE PROCEDURE Gen_SinPrjEff(Sp_Proj_Id IN NUMBER,
    Sp_Emp_Id IN VARCHAR2,
    Sp_Start_Date IN VARCHAR2,
    SP_End_Date IN VARCHAR2)
    IS
    Date_Null NUMBER(1) := 0;
    CURSOR prjeff IS
    SELECT aa,
    bb,
    dd,
    sum(ee)
    FROM ( SELECT 'ProjectEffort' aa,
    RPAD(SUBSTR(b.employeename,1,20),20,' ') bb,
    '' dd,
    SUM(a.hourstoday) ee
    FROM timesheetentry a,
    employeemst b,
    project c,
    project d
    WHERE a.entryfromprojectid = Sp_Proj_Id
    AND a.projectid = Sp_Proj_Id
    AND c.projectid = a.entryfromprojectid
    AND d.projectid = a.projectid
    AND b.employeeno = a.employeeno
    AND ((Date_Null = 9) OR ((Date_Null = 1) AND
    (a.entrydate BETWEEN TO_DATE(Sp_Start_Date,'DD-Mon-YYYY') AND
    TO_DATE(Sp_End_Date,'DD-Mon-YYYY'))))
    GROUP BY RPAD(SUBSTR(b.employeename,1,20),20,' '),
    SUBSTR(d.projname,1,30)
    UNION
    SELECT 'ProjectEffort' aa,
    RPAD(SUBSTR(b.employeename,1,20),20,' ') bb,
    '' dd,
    SUM(a.hourstoday) "ee"
    FROM timesheetentry a,
    employeemst b,
    project c,
    project d
    WHERE a.entryfromprojectid <> Sp_Proj_Id
    AND a.projectid = Sp_Proj_Id
    AND c.projectid = a.entryfromprojectid
    AND d.projectid = a.projectid
    AND b.employeeno = a.employeeno
    AND ((Date_Null = 9) OR ((Date_Null = 1) AND
    (a.entrydate BETWEEN TO_DATE(Sp_Start_Date,'DD-Mon-YYYY') AND
    TO_DATE(Sp_End_Date,'DD-Mon-YYYY'))))
    GROUP BY RPAD(SUBSTR(b.employeename,1,20),20,' '),
    SUBSTR(d.projname,1,30)
    GROUP BY aa,bb,dd
    UNION
    SELECT 'ProjectOthers',
    RPAD(SUBSTR(b.employeename,1,20),20,' ') "Employee Name",
    RPAD(SUBSTR(d.projname,1,30),30,' ') dd,
    SUM(a.hourstoday) "Effort Spent"
    FROM timesheetentry a,
    employeemst b,
    project c,
    project d
    WHERE a.entryfromprojectid = Sp_Proj_Id
    AND a.projectid <> Sp_Proj_Id
    AND c.projectid = a.entryfromprojectid
    AND d.projectid = a.projectid
    AND d.swonflag = 0
    AND b.employeeno = a.employeeno
    AND ((Date_Null = 9) OR ((Date_Null = 1) AND
    (a.entrydate BETWEEN TO_DATE(Sp_Start_Date,'DD-Mon-YYYY') AND
    TO_DATE(Sp_End_Date,'DD-Mon-YYYY'))))
    GROUP BY RPAD(SUBSTR(b.employeename,1,20),20,' '),
    SUBSTR(d.projname,1,30)
    UNION
    SELECT 'SwonEffort',
    RPAD(SUBSTR(b.employeename,1,20),20,' ') "Employee Name",
    RPAD(SUBSTR(d.projname,1,30),30,' ') "Project To",
    SUM(a.hourstoday) "Effort Spent"
    FROM timesheetentry a,
    employeemst b,
    project c,
    project d
    WHERE a.entryfromprojectid = Sp_Proj_Id
    AND a.projectid <> Sp_Proj_Id
    AND c.projectid = a.entryfromprojectid
    AND d.projectid = a.projectid
    AND d.swonflag = 1
    AND b.employeeno = a.employeeno
    AND ((Date_Null = 9) OR ((Date_Null = 1) AND
    (a.entrydate BETWEEN TO_DATE(Sp_Start_Date,'DD-Mon-YYYY') AND
    TO_DATE(Sp_End_Date,'DD-Mon-YYYY'))))
    GROUP BY RPAD(SUBSTR(b.employeename,1,20),20,' '),
    SUBSTR(d.projname,1,30);
    Eff_Type admin32.prjeffdata.prjefftype%type;
    Proj_Name admin32.prjeffdata.projname%type;
    Emp_Name admin32.prjeffdata.empname%type;
    Proj_Eff admin32.prjeffdata.projeff%type;
    Tmp_Dind admin32.prjeffdata.del_ind%type;
    BEGIN
    -- dbms_output.put_line('Begin');
    Tmp_Dind := NULL;
    TmP_Dind := LPAD(LTRIM(RTRIM(Sp_Emp_Id)),6,'0') || LPAD(LTRIM(RTRIM(TO_CHAR(Sp_Proj_Id))),5,'0');
    IF (Sp_Start_Date IS NULL) THEN
    Date_Null := 9;
    ELSE
    Date_Null := 1;
    END IF;
    dbms_output.put_line(to_char(date_null));
    DELETE prjeffdata
    WHERE del_ind = LPAD(LTRIM(RTRIM(Sp_Emp_Id)),6,'0') || LPAD(LTRIM(RTRIM(TO_CHAR(Sp_Proj_Id))),5,'0');
    COMMIT;
    OPEN prjeff;
    LOOP
    Eff_Type := NULL;
    Proj_Name := NULL;
    Emp_Name := NULL;
    Proj_Eff := NULL;
    FETCH prjeff
    INTO Eff_Type,
    Emp_Name,
    proj_Name,
    proj_Eff;
    EXIT WHEN prjeff%NOTFOUND;
    INSERT INTO prjeffdata(prjefftype,
    empname,
    projname,
    projeff,
    del_ind)
    VALUES (eff_type,
    emp_name,
    proj_name,
    proj_eff,
    Tmp_Dind);
    --dbms_output.put_line(eff_type || ',' || emp_name || ',' || proj_name );
    END LOOP;
    CLOSE prjeff;
    COMMIT;
    --dbms_output.put_line('End');
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    dbms_output.put_line('Error');
    WHEN OTHERS THEN
    dbms_output.put_line('Error');
    END

    This is what works on 8.1.7. I don't know the svrmgrl name in 8.0.5, but it should be in your %ORACLE_HOME%/bin
    > cd %oracle_home%\rdbms\admin
    >svrmgr sys/<password>@dbname
    SVRMGR> @standard
    Statement processed.
    Statement processed.
    Statement processed.
    SVRMGR> @UTLRP
    if this doesn't work then do this
    SVRMGR> @catalog
    good luck

  • Unsupported construct or internal error (2601)

    Hi all,
    I use forms6i patch 17 with Oracle8i Enterprise Edition Release 8.1.7.4.1 .
    My four datablocks are based on packaged stored procedures , and yesterday I modified the packaged stored procedure source block and some of the package procedures and functions. I modified my form according to the new package procedures and functions signatures. But when compiling I got errors saying :
    Error 707 at line 1 , column 1
    Unsupported construct or internal error (2601)
    I tried to delete the query-procedures triggers and recompiling the form , but same results.
    So what to do ?
    Thank you very much indeed

    I found the solution !
    I realized that there were default values in the stored packaged procedures , and I added another defaulted argument to the the stored packaged procedure source block , but forms does not support this construct. Because I set value to this argument only for the second block , and for the others I do not set any value so I supposed that the default value was used. But forms does not support this , so I was forced to hardcode the value to set for the remaining argument.

  • "unsupported construct or internal error"

    I'm trying to call a procedure (via a concurrent request) using the FND_REQUEST.SUBMIT_REQUEST procedure in a WHEN-BUTTON-PRESSED trigger in my form and I keep getting an error when I try to compile the trigger code:
    Error 707 at line 1, column 1
    unsupported construct or internal error [2601]
    Below is the part of the code that is causing the problem (the call to the FND_REQUEST package). It will compile if I replace the "chr(0)" at the end of the parameter list with 80 or so "" (null) parameters to match the number of arguments specified in the SUBMIT_REQUEST procedure. But, this should not be necessary and causes problems then, b/c the procedure that is being called errors out with an error of "wrong number or types of arguments in call". This compiles fine with the chr(0) if i compile this type of construct in a database procedure. But, forms (6i) won't let me.
    This is very frustrating. Is there any way around this?
         v_req_id := FND_REQUEST.SUBMIT_REQUEST('XXROT','BHR_INV','',
                                                      '',FALSE,     v_no_param,v_trx_date_param,v_org_param,v_print_type,v_cust_param,v_trx_source_param,v_sort,v_email_cust,chr(0));

    I don't know the fnd_request.submit_request procedure, but i think the problem is related to a bug in forms 6i. If you call a stored procedure which has an optional date parameter, without supplying this parameter, then you will get this error.
    Include the default value explicitly in your call, and your problem should go away.

  • Internal error using XML function in procedures

    Hi all,
    I use the XML function in a stored procedures but when i compile these i have this error PLS-00801: internal error (74806).
    The strangeness is that the single instruction launched from sql plus type
    SELECT XMLElement("? xml",xmlattributes('1.0' as "version")) FROM dual; it's right.
    thank.

    Are you sure you don't want to use the XMLROOT functionality to achieve that?
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200/functions225.htm
    SQL> SELECT XMLROOT ( XMLType('<poid>143598</poid>'), VERSION '1.0', STANDALONE YES)
      2     AS "XMLROOT" FROM DUAL;
    XMLROOT
    <?xml version="1.0" standalone="yes"?>
    <poid>143598</poid>
    SQL>

  • Internal error in XML parser

    While parsing XML file one of the elements of which consists picture of 20K size encoded with MIME the follow error appeares:
    Cannot parse file:An Internal Error occurred. Please post a Bug report to the XML Discussion forum at http://technet.oracle.com <8192>
    Would you be so kind to help us with this error and, please, discribe us the best way to do it.
    Sinserely yours,
    Sergey Tomchuk.

    Hi,
    We couldn't reproduce this error with our test case. Can you please post a test case that gives you this problem so we can assist you further?
    Thank you,
    Oracle XML Team

  • PLS-00801: internal error with FORALL

    I have the following procedure that I am trying to compile but I am getting an error:
    <pre>
    PROCEDURE procedure_1 AS
    cursor cur_1 is
    select column1 || column2 || column3 || column4 || column5 ||
    column6 || column7 || column8 as concat_column
    from table_1
    for update wait 5;
    type type_table_1 is table of varchar2(100);
    tab_1 type_table_1;
    bulk_error EXCEPTION;
    PRAGMA EXCEPTION_INIT(bulk_error, -24381);
    BEGIN
    open cur_1;
    loop
    fetch cur_1 bulk collect into tab_1 limit 100;
    exit when tab_1.COUNT = 0;
    forall ctr in 1 .. tab_1.COUNT save exceptions
    update table_1
    set column_20 = array_line(tab_1(ctr).concat_column);
    end loop;
    close cur_1;
    EXCEPTION
    when bulk_error then
    for i in 1 .. sql%bulk_exceptions.count loop
    NULL;
    end loop;
    END procedure_1;
    Error(622,21): PLS-00801: internal error [*** ASSERT at file pdw4.c, line 3572; Can't handle Object = -2147476152 in D_S_ED -2147476153.;
    The offending line seems to be the update statement inside the forall loop. I cannot tell why I am getting this error though as everything seems ok to me.
    Please help.
    Thanks

    And what are you trying to do? You are updating column20 in all rows in table_1 over and over. And what is array_line? Type type_table_1 is not a table of objects, so what is tab_1(ctr).concat_column? Without questioning code logic (although I already did :) ), remove that ".concat_column":
    set column_20 = array_line(tab_1(ctr));SY.

  • PLS-801 internal error when returnig rowtype in select clause

    Hi,
    looks like the following case is not handled in version 11.1.0.6.
    I created a function which returns a ROWTYPE
    and when calling this function from a simple sql statement an internal error occurs.
    create table testing as select 1 id, 'A' val from dual;
    create or replace function ret_row return testing%rowtype is
    cursor cur_t is
    select * from testing;
    r testing%rowtype;
    begin
    open cur_t;
    fetch cur_t into r;
    close cur_t;
    return r;
    end;
    select ret_row from dual; when executing this select statement the following error occurs:
    SQL> select ret_row from dual
    ERROR at line 1:
    ORA-06553: PLS-801: internal error [55018]Didn't find any notes from the metalink about this error.
    Ants

    Perhaps in this specific case you can view your output as ->
    satyaki>
    satyaki>select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
    PL/SQL Release 10.2.0.3.0 - Production
    CORE    10.2.0.3.0      Production
    TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    5 rows selected.
    Elapsed: 00:00:01.48
    satyaki>
    satyaki>
    satyaki>create table testing as select 1 id, 'A' val from dual;
    Table created.
    Elapsed: 00:00:03.16
    satyaki>
    satyaki>set lin 80
    satyaki>
    satyaki>desc testing;
    Name                                      Null?    Type
    ID                                                 NUMBER
    VAL                                                CHAR(1)
    satyaki>
    satyaki>
    satyaki>set lin 310
    satyaki>
    satyaki>create or replace function ret_row return testing%rowtype is
      2  cursor cur_t is
      3   select * from testing;
      4   r testing%rowtype;
      5  begin
      6   open cur_t;
      7   fetch cur_t into r;
      8   close cur_t;
      9   return r;
    10  end;
    11  /
    Function created.
    Elapsed: 00:00:03.06
    satyaki>
    satyaki>
    satyaki>select ret_row from dual;
    select ret_row from dual
    ERROR at line 1:
    ORA-00902: invalid datatype
    Elapsed: 00:00:00.25
    satyaki>
    satyaki>declare
      2       y testing%rowtype;
      3  begin
      4       y := ret_row;
      5       for i in 1..y.ID
      6       loop
      7         dbms_output.put_line(y.ID);
      8         dbms_output.put_line(y.VAL);
      9       end loop;
    10  end;
    11  /
    1
    A
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.16
    satyaki>
    satyaki>Regards.
    Satyaki De.

  • Static class functions: PLS-00801: internal error [phd_get_defn:D_S_ED:LHS]

    Any ideas why this would generate an internal error - referring to a static class function in that class constructor's parameter signature?
    Test case (on 11.2.0.2) as follows:
    SQL> create or replace type TMyObject is object(
      2          id      integer,
      3          name    varchar2(30),
      4 
      5          static function DefaultID return integer,
      6          static function DefaultName return varchar2,
      7 
      8          constructor function TMyObject(
      9                  objID integer default TMyObject.DefaultID(), objName varchar2 default TMyObject.DefaultName()
    10          )return self as result
    11  );
    12  /
    Type created.
    SQL>
    SQL> create or replace type body TMyObject is
      2 
      3          static function DefaultID return integer is
      4          begin
      5                  return( 0 );
      6          end;
      7 
      8          static function DefaultName return varchar2 is
      9          begin
    10                  return( 'foo' );
    11          end;
    12 
    13          constructor function TMyObject(
    14                  objID integer default TMyObject.DefaultID(), objName varchar2 default TMyObject.DefaultName()
    15          )return self as result is
    16          begin
    17                  self.id := objId;
    18                  self.name := objName;
    19                  return;
    20          end;
    21 
    22  end;
    23  /
    Type body created.
    SQL>
    SQL> declare
      2          obj     TMyObject;
      3  begin
      4          obj := new TMyObject();
      5  end;
      6  /
    declare
    ERROR at line 1:
    ORA-06550: line 0, column 0:
    PLS-00801: internal error [phd_get_defn:D_S_ED:LHS]If the static class functions are removed from the constructor and applied instead inside the constructor body, it works without error. Likewise you can call the constructor with the static class functions as parameters, without an internal error resulting.
    SQL> create or replace type TMyObject is object(
      2          id      integer,
      3          name    varchar2(30),
      4 
      5          static function DefaultID return integer,
      6          static function DefaultName return varchar2,
      7 
      8          constructor function TMyObject(
      9                  objID integer default null, objName varchar2 default null
    10          )return self as result
    11  );
    12  /
    Type created.
    SQL>
    SQL> create or replace type body TMyObject is
      2 
      3          static function DefaultID return integer is
      4          begin
      5                  return( 0 );
      6          end;
      7 
      8          static function DefaultName return varchar2 is
      9          begin
    10                  return( 'foo' );
    11          end;
    12 
    13          constructor function TMyObject(
    14                  objID integer default null, objName varchar2 default null
    15          )return self as result is
    16          begin
    17                  self.id := nvl( objId, TMyObject.DefaultID() );
    18                  self.name := nvl( objName, TMyObject.DefaultName() );
    19                  return;
    20          end;
    21 
    22  end;
    23  /
    Type body created.
    SQL>
    SQL> declare
      2          obj     TMyObject;
      3  begin
      4          obj := new TMyObject();
      5  end;
      6  /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> declare
      2          obj     TMyObject;
      3  begin
      4          obj := new TMyObject(
      5                          objID => TMyObject.DefaultID(),
      6                          objName => TMyObject.DefaultName()
      7                  );
      8  end;
      9  /
    PL/SQL procedure successfully completed.
    SQL> Had a quick look on support.oracle.com and did not turn up any specific notes dealing with the use of static class functions in the parameter signature of the constructor. Known issue? Any other workaround besides the one above?

    Hi,
    there is a bug: "Bug 8470406: OBJECT INSTANCE CREATION FAILS WITH ERROR PLS-00801 IN 11GR1", it shows the behaviour in 11g but not in 10.2. It gives exactly the symptoms you also see, move it to the body and it works. But there is no solution/patch given.
    Herald ten Dam
    http://htendam.wordpress.com

  • PLS-00801: internal error [74306] Help me!

    Hi,
    I have written some PL/SQL Application using Bulk Binding and PL/SQL Collection at Oracle 9.2.0.8 AIX
    But, I met the strange error message during compilation.
    PLS-00801: internal error [74306|http://forums.oracle.com/forums/]
    I tried to search Google and Metalink, I could not find the answer about the error. ?:|
    ## sample code raising PLS-00801
    declare
    TYPE term IS RECORD (
    dt1 PLS_INTEGER,
    dt2 PLS_INTEGER
    TYPE term_arr IS TABLE OF term INDEX BY BINARY_INTEGER;
    TYPE term_group IS TABLE OF term_arr INDEX BY BINARY_INTEGER;
    v_term_group term_group;
    BEGIN
    SELECT
    20080101 as dt,
    20081231 as dt2
    BULK COLLECT INTO v_term_group(1)
    FROM DUAL;
    END;
    as i think, this code has no problem, but at compile time, it shows ORA-00801 error.
    can anybody tell me about this error or problem in that code?

    Probably a bug in 9i, it works in 10g:
    SQL> select * from v$version
      2  /
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL> declare
      2  TYPE term IS RECORD (
      3  dt1 PLS_INTEGER,
      4  dt2 PLS_INTEGER
      5  );
      6  TYPE term_arr IS TABLE OF term INDEX BY BINARY_INTEGER;
      7  TYPE term_group IS TABLE OF term_arr INDEX BY BINARY_INTEGER;
      8  v_term_group term_group;
      9  BEGIN
    10  SELECT
    11  20080101 as dt,
    12  20081231 as dt2
    13  BULK COLLECT INTO v_term_group(1)
    14  FROM DUAL;
    15  END;
    16  /
    PL/SQL procedure successfully completed.
    SQL> SY.

  • PLS-00801: internal error

    Does any one one know what this error is?
    LINE/COL ERROR
    68/6 PLS-00801: internal error [*** ASSERT at f
    Cannot coerce between type 49 and type 31;
    USER_TESTXML__ADAM_DDL__P__61118[68, 6]]
    Regards,
    alwark.

    What version of the DB are you using and what were you attempting to do at the time the error occurred...
    There are metalink entries about this error and even this forum has addressed PLS-00801: PLS-00801: internal error [79704] Error
    Greg

  • PLS-00801: internal error [76091]

    While creating g SDO_GEOMETRY object and asigning an extralarge value I get the following error:
    ORA-06550: line 0, column 0: PLS-00801: internal error [76091]
    snipp__________
    DECLARE
    GEOM MDSYS.SDO_GEOMETRY;
    BEGIN
    GEOM := mdsys.sdo_geometry(3,null,null,mdsys.sdo_elem_info_Array(1,3,1),mdsys.sdo_ordinate_array
    (41.06219,9.99904,39.92099,10.00000,
    _______snipp_______ e.t.c.
    up to ca. 20,500 points
    for a poligon with only about 10,000 points it works fine. Does somebody knows if this is an known bug at 8.1.5 ? or does it worth to call the hotline?
    Regards
    Uwe

    You can do this with stored procedures, you do not have to use OCI. I can send procedures that we have used at TDOT (they are for loading LRS data, but you can strip out the measure dimension). If you still need them, just let me know.
    Dave
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Uwe Baier ([email protected]):
    While creating g SDO_GEOMETRY object and asigning an extralarge value I get the following error:
    ORA-06550: line 0, column 0: PLS-00801: internal error [76091]
    snipp__________
    DECLARE
    GEOM MDSYS.SDO_GEOMETRY;
    BEGIN
    GEOM := mdsys.sdo_geometry(3,null,null,mdsys.sdo_elem_info_Array(1,3,1),mdsys.sdo_ordinate_array
    (41.06219,9.99904,39.92099,10.00000,
    _______snipp_______ e.t.c.
    up to ca. 20,500 points
    for a poligon with only about 10,000 points it works fine. Does somebody knows if this is an known bug at 8.1.5 ? or does it worth to call the hotline?
    Regards
    Uwe<HR></BLOCKQUOTE>
    null

Maybe you are looking for