Invalid TLV record error

Post Author: CHTClay
CA Forum: Deployment
We have an app that was originally written in VB6 (using the ActiveX viewer) with reports designed in Crystal 8.5.  A new executable was added to the app written in C# that uses (not embedded) two report files designed in Crystal 11.5.  The VB6 code was modified to include references to the 11.0 RDC.  The install program (before adding the reports to the C# module) used the following merge modules:
Crystal11_NET_EmbeddedReporting.msm, CrystalReports11_RDC_Designtime.msm, CrystalReports11_RDC_Runtime.msm, CrystaReports85_ActiveXControl.msm, CrystalReports85_Crpaig80.msm, CrystalReports85_Cpre32.msm and CrystalReports85_Imploder.msm.
This installation and the app ran perfectly.  After adding the reports to the C# module we recompiled the install (using the same merge modules as above) and reinstalled the app.  The VB6 reports ran as expected, but the two new reports failed because some Crystal Desicions components did not get installed.
After researching, I created a new install package with the following merge modules:
CrystalReports11_5_RDC_Designtime.msm, CrystalReports11_5_RDC_Runtime.msm, CrystalReports11_5_RDC_Reportengine.msm, CrystalReports11_5_RDC_License.msm, CrystaReports85_ActiveXControl.msm, CrystalReports85_Crpaig80.msm, CrystalReports85_Cpre32.msm and CrystalReports85_Imploder.msm.
Reinstalled the app.  The two reports in the C# module work great, however, all of the reports associated with the VB6 code get an "Invalid TLV record" error.
I have researched this issue here and on the web with no joy!
Is Crystal Decisions and ActiveXviewer mutually incompatible?  Are we missing something in the installation build?
Any advice would be greatly appreciated.

<p>This has happened in the past when your code uses a generic prog id to create the object:</p><p>application.CreateObject("CrystalRuntime.application")</p><p>change to</p><p>application.CreateObject("CrystalRuntime.application.115);</p><p>Another thing you might want to try is to put the craxdrt115.dll into a COM+ package and give it administrative rights. </p><p><strong>KBase Article ID:</strong><span style="margin-left: 5px">c2017301</span></p><p>This is a very generic error so it is hard to say what the problem is with so few details but I tried my best. </p><p>Rob Horne<br /><a href="/blog/10">Rob&#39;s blog - http://diamond.businessobjects.com/blog/10</a></p>

Similar Messages

  • Error :Invalid TLV Record when using with VC++ UI Thread

    Post Author: divya prakash
    CA Forum: Other
    Hello
    I am using Crystal Report XI with VC++ 6.0 .When I am trying to print report directly on button click event all goes well.But as soon as i try to print report calling that function in a UI Thread it gives two error :
    This document could not be opened. It does not appear to be a Crystal Report document.    This document has the expected file extension (.RPT) but it seems to be corrupt. If the report use to work, try opening it with a different version of    Crystal Reports and if that still does not work, please contact your administrator.
    after pressing OK it gives another error : Invalid TLV record.
    I dont know what is going wrong ...same code works well if I dont call in UI Thread and the moment I try to do the same by calling that function in UI Thread it gives above errors.
    I have registered :craxdrt.dll as well as crqe.dll .... than also ..
    Please help me I am totally stuck ...
    Thanks in advance
    - Divya Prakash

    Post Author: divya prakash
    CA Forum: Other
    Hello
    I am using Crystal Report XI with VC++ 6.0 .When I am trying to print report directly on button click event all goes well.But as soon as i try to print report calling that function in a UI Thread it gives two error :
    This document could not be opened. It does not appear to be a Crystal Report document.    This document has the expected file extension (.RPT) but it seems to be corrupt. If the report use to work, try opening it with a different version of    Crystal Reports and if that still does not work, please contact your administrator.
    after pressing OK it gives another error : Invalid TLV record.
    I dont know what is going wrong ...same code works well if I dont call in UI Thread and the moment I try to do the same by calling that function in UI Thread it gives above errors.
    I have registered :craxdrt.dll as well as crqe.dll .... than also ..
    Please help me I am totally stuck ...
    Thanks in advance
    - Divya Prakash

  • Invalid TLV Record - Crystal Report XI R2

    Hi I am getting "Invalid TLV Record" when opening crystal report on production server. After recycling the application pool the problem getting solved.
    Event viewer Shows this error:
    Error: File /CrystalReports/Viewer/ASP/RDCrptserver11.asp  Unexpected error. A trappable error (E06D7363) occurred in an external object. The script cannot continue running..
    Crystal Report XI developer edition was installed in the production server and with out unistalling the XI version we deployed the XI R2(side by side installation)  using CrystalReports11_5_NET_2005.msi - Service Pack4 for .Net( for exporting as pdf) and RDC Compnents using  Crystal Report XI R2 Service pack 4 Merge modules
    Reports are showing using ActiveX Viewer with classic ASP in our ASP.Net 2.0 Application.
    But the reports are still using Crystal Report XI RDC not XI R2 RDC because the XI RDC Viewer was already installed in users machines.
    Thanks in advance

    Please re-post if this is still an issue to the Legacy Application Development SDKs Forum or purchase a case and have a dedicated support engineer work with you directly

  • Crystal Reports 9 called from a VB6 application - Invalid TLV record

    I have a VB6 app that calls a Crystal Reports 9  CRViewer9.  On two PC" I got "Invalid TLV record". From what I read I think that there is a problem with a .dll but I not sure which one so I reinstalled Crystal Reports 9 on one PC and it corrected the problem.  However when I tried this solution on the 2nd PC (XP SP3) I get
    Error 1904. Module commonobjmodel..dll failed to register.  HRESULT -2147024770.
    If I press Ignore, I get the same message for several other .dll's.  I tried going to the DOS command and use REGSVR32 but it fails as well.
    Any suggestions?

    hello,
    A couple of possible causes. They have an older version of CR which installed crpe32.dll into the \windows\system32 folder. If so rename it as well as the \windows\Crystal folder.
    You don't have all of the required dependencies on the work station.
    Or you don't have permission, must have local PC Admin rights, to install software.
    Don

  • Crystal Reports 8.5 "Invalid TLV" after reinstall

    Good morning,
    We had a billing machine that was using Crystal Reports 8.  The hard drive died, we reinstalled the OS, reinstalled Crystal, and now we're getting errors when trying to open old reports "Invalid TLV Record."
    I've tried the steps below:
    u2022         Ensure the crystal report versions match. (i.e., the version in which the report has been created has to match the version at the client's workstation.)
    u2022         If the versions are the same and you still get the error, it could be due to a "copy paste mismatch". Try copying the .rpt file in a different location and then running it.
    u2022         If this does not solve the problem, check for the presence of important dll files in the client computer.
    I tried this step, but I have a feeling the error may be fixed somewhere in this step
    Still can't get anything to work and I need some help - Please and Thanks!
    -JB

    This is quite peculiar - reason being there was only 1 machine in our ENTIRE organization running Crystal Reports (and of course was NOT backed up) with all of the documents saved locally.
    Is it possible there is a missing service pack that would keep the reports from opening?
    I got a little more info from the folks who actually run the reports - the reports we are having problems opening are the web reports.
    We're able to pull up the apps and run them against the server to get our queries.  For another week we are unable to test the creation of a web report (since we don't have all the information to put into Crystal, yet), but it's on the agenda.
    Is there a special report viewer that we can use to view these .RPT web reports?

  • Download Helper, even with paid converter upgrade, gives "Invalid Capture File" errors and will not record audio, with "File Creation Error - Unable to rename/copy audio file" Error.

    Download Helper Screen Capture worked to capture video if the default "no audio" option is active. But, no audio. The "speakers" or "microphone" audio options are confusing....the audio to be captured is from the video, so what do you choose? With either "speakers" or "microphone" selected, the captured file has poor audio and no video. Re-capture efforts (speakers) get "Invalid capture file error" and "File Creation error- Unable to rename/copy audio file"
    The paid upgrade of "Converter" doesn't work.
    Instructive documentation - not very good.
    Suggestions - Need time delay between initiation of "Record" and starting the video to be recorded.
    Could use timer tracking of the record process.
    Are there operating system limitations? (Have Windows XP Pro)

    That is an issue for the developer of that Download Helper.

  • Intermittent too many open files error and Invalid TLV error

    Post Author: jam2008
    CA Forum: General
    I'm writing this up in the hopes of saving someone else a couple of days of hair-pulling...
    Environment: Crystal Reports XI Enterprise / also runtime via Accpac ERP 5.4
    Invalid TLV error in Accpac
    "too many open files" error in event.log file
    Situation:
    Invalid TLV error occurs seemingly randomly on report created in CR Professional 11.  Several days of troubleshooting finally lead to the following diagnosis:
    This error occurs in a report that contains MORE THAN 1 bitmap image.
    The error only shows up after 20 or more reports have been generated sequentially, WITHOUT CLOSING the application that is calling the report.  In our case the Invoice Report dialog within Accpac.  This same error occurred in a custom 3rd party VB.NET app that also called the report through an Accpac API.

    after getting this message you need to do 2 things:
    1. delete the current workspace because it contains some bad data in one the config files - failure to delete the workspace will result the error message to appear even if trying to upload a single file.
    2. add to DTR files in groups - no more than 500 in a single add.

  • Sync error: CRTranRec:​:GetLinked​RecordId : Invalid linked record Id

    Hi,
    I have a blackberry bold 9930 and the following error message appears everytime i want to sync my cellphone with blackberry desktop software on my PC - Organizer date :  "Sync error: CRTranRec::GetLinkedRecordId : Invalid linked record Id".
    Help please !
    Jose Carlos

    Hello jcvc00
    Welcome to BlackBerry Support Community Forums
    To resolve your problem you may have to check your address Book and see if you have any blank contact image.Look at this RIM's Knowledge Base regarding this error :
    KB31008 : Error "CRTranRec:: GetLinkedRecordId : Invalid linked record Id" is displayed when synchronizing with the BlackBerry Desktop Software.
    Prince
    Click " Like " if you want to Thank someone.
    If Problem Resolves mark the post(s) as " Solution ", so that other can make use of it.
    Click " Like " if you want to Thank someone.
    If Problem Resolves mark the post(s) as " Solution ", so that other can make use of it.

  • Error "CRTranRec:: GetLinkedRecordId : Invalid linked record Id" is displayed when synchronizing with the BlackBerry Desktop Software

    When synchronizing data using the BlackBerry Desktop Software the following error is displayed:
    CRTranRec:: GetLinkedRecordId : Invalid linked record Id
    what to do?
    many thanks in advance

    Hi crugnola
    Welcome to BlackBerry Support Forums
    Please check your address book if you find any contact with blank images then  add an image to those contacts ,it will  fix this sync error , have a look :
    KB31008 : Error "CRTranRec:: GetLinkedRecordId : Invalid linked record Id" is displayed when synchronizing with the BlackBerry Desktop Software.
    Or head over to this thread Cleanly "Starting Over" with the Desktop Software (non-BES)  and start all over again or within that thread on post #15 there is a link to older version of BlackBerry Desktop Software , download version 6.1 it has help many user that I know from this error.
    Click " Like " if you want to Thank someone.
    If Problem Resolves mark the post(s) as " Solution ", so that other can make use of it.

  • Invalid Time Interval error

    Hi Friends,
    I am loading HR data from Source. It loaded correctly without issues upto  PSA and when i trigger the DTP from the PSA to the IO 0EMPLOYEE,  I am getting the following error.
    "0EMPLOYEE : Data record 25 ('00001028 ') : Invalid time interval '['20070731'/'20070527'] '[from/to]     RSDMD     189".
    It shows about 7 entries in the error for employee 00001028.
    When i check the data in PSA the from and to Values are correct.
    Person           Start Date        End Date
    1028              01.10.2002      26.05.2007
                          27.05.2007      31.07.2007
                          01.08.2007      31.01.2008
                          01.02.2008      29.02.2008
                          01.03.2008      27.09.2008
                          28.09.2002      31..12.2008
                          01.01.2009      31.12.9999
    So, the from Data and to Date is correct yet I am getting the Invalid Time Interval error and my data load is failing.
    It is happening for a all the records.
    Can someone please tell me /suggets me how to resolve this issue?.
    Yore help is appreciated.
    Regards
    BN

    Hi,
    Please check the note:
    310304 -> DATETO/DATEFROM:Extracting time-dependent master
    http://help.sap.
    com/saphelp_nw70/helpdata/en/13/c3e7379899d06fe10000009b38f8cf/frameset.
    htm
    It should resolved your issue.
    Thanks,
    Venkat

  • Invalid table name error ....

    Hi,
    I have written a function which takes table name dynamically and if column emp_id is null for more than 0 records then 1 is returned else 0 .
    My problem is when i compile iam getting invalid table name error .
    Below is my function :
    create or replace
    FUNCTION f_table ( tab_name in varchar2 ) return number is
    l_count number;
    begin
    select count(*) into l_count from tab_name where emp_id is null;
    if l_count >0 then
    return 1;
    else
    return 0;
    end if;
    end;
    Please help ...
    Thanks in advance ..

    Looks fine to me, you could use sign() for the last part:
    CREATE OR REPLACE FUNCTION f_table (tab_name IN VARCHAR2)
    RETURN NUMBER
    IS
      l_count NUMBER;
      v_sql VARCHAR2 (2000);
    BEGIN
      v_sql := 'SELECT COUNT (*) FROM ' || tab_name || ' WHERE emp_id IS NULL';
      EXECUTE IMMEDIATE v_sql
      INTO l_count;
      RETURN sign(l_count);
    END;And if you have large tables, you could consider not counting it all, and do something like this:
    CREATE OR REPLACE FUNCTION f_table (tab_name IN VARCHAR2)
    RETURN NUMBER
    IS
      l_count NUMBER;
      v_sql VARCHAR2 (2000);
    BEGIN
      v_sql := 'SELECT COUNT (*) FROM ' || tab_name || ' WHERE emp_id IS NULL AND rownum = 1';
      EXECUTE IMMEDIATE v_sql
      INTO l_count;
      RETURN l_count;
    END;Regards
    Peter

  • Invalid Leaf Record Count??

    After Software Update installed new versions of QuickTime and iTunes, my computer hung while doing the required restart. It got stuck at the point where the spinning clock thing appears. I had to force a shutdown by pressing and holding the power button. Now when I run Disk Utility (from an OS X install CD) to repair the disk, I get the following error message:
    Invalid leaf record count.
    It should be 7, instead of 66.
    The repair ends with a message that the disk could not be repaired. However, when I start-up in single-user mode and do a disk repair by typing in “fsck –yf”, I get no error messages, and it says the hard disk appears to be OK. I also ran DiskWarrior, but that did not fix the “invalid leaf record count” problem.
    I would be interested to know what “invalid leaf record count” means and if I should be concerned.
    Thanks.
    Lou

    You can get this error if you use an older Panther CD instead of the Tiger DVD on your 10.4 as per this article.
    http://docs.info.apple.com/article.html?artnum=301266

  • Invalid TLV with vb6 and Crystal XI

    Hi,
    I'm having a problem and haven't found any solution.
    I have an application on VB6, I create the setup and installed on another computer.  When I'm testing the application it gave the error "Invalid TLV" when trying to run some of the reports.  The reports are on Crystal Report XI.  I notice the error is just with the reports that use parameters, the ones without parameters runs Ok.    I tested and is passing the parameter value.  The errros is on this statements:
    Set Report = CrysApp.OpenReport(sptPath & reportName)
    This is the same statement for all my reports but is not working for those with parameters.
    I don't have any problem with this reports on my computer the problem comes when I create the setup and install it on another computer.
    Any solutions????
    Thanks.

    Hi Diana,
    Any time you deploy an application you need to include the appropriate merge modules.  You can not deploy just the dlls that seem to be used as there are many in the background that have dependencies, registry entries, etc.  Manual deployment is not supported.
    You were able to find the correct deployment method on your own
    Good luck with your project.
    Jason

  • How can I fix an invalid sibling link error message without my original install disk?

    How can I fix an invalid sibling link error message without my original install disk?

    Hi Jeff,
    It's not even likely the Install Disc could fix that, but if you want to try...
    Does it boot to Single User Mode, CMD+s keys at bootup, if so try...
    /sbin/fsck -fy
    Repeat until it shows no errors fixed.
    (Space between fsck AND -fy important).
    Resolve startup issues and perform disk maintenance with Disk Utility and fsck...
    http://docs.info.apple.com/article.html?artnum=106214
    You must repair the HD, your best bet is likely DiskWarrior.
    BTW, you might enjoy these DiskWarrior review/recommendations...
    http://discussions.apple.com/thread.jspa?messageID=9645801&#9645801
    http://discussions.apple.com/thread.jspa?messageID=10541019#10541019
    http://discussions.apple.com/thread.jspa?messageID=11918925&#11918925
    http://discussions.apple.com/thread.jspa?messageID=12684129#12684129
    http://discussions.apple.com/thread.jspa?messageID=12744794&#12744794
    http://discussions.apple.com/thread.jspa?messageID=12912879#12912879
    Finally, you should run DiskWarrior if your Mac explicitly warns you of a problem with your disk in the form of an error message. Most of these errors are reported by the built-in Disk Utility whether your Mac OS X version is 10.3 Panther, 10.4 Tiger, 10.5 Leopard, 10.6 Snow Leopard or 10.7 Lion. Here are some of the most common messages:
    Disk Repair: The disk was not repairable by this computer. It is being made available to you with limited functionality. You must back up your data and reformat the disk as soon as possible.
    The underlying task reported failure on exit.
    Invalid node structure.
    Keys out of order.
    Invalid key length.
    Invalid directory item count.
    Invalid extent entry.
    Invalid record count.
    Invalid index key.
    Invalid sibling link.
    http://www.alsoft.com/DiskWarrior/details3.html

  • ORA-00902: invalid datatype comile error while using CAST function

    Hi everyone,
    I'm getting ORA-00902: invalid datatype compilation error while using CAST function.
    open ref_cursor_list for select empName from TABLE(CAST(part_t AS partnumberlist));
    The partnumberlist and ref_cursor_list is declared in the Package spec as given below.
    TYPE ref_cursor_list IS REF CURSOR;
    TYPE partnumberlist IS TABLE OF emp.empName%TYPE;
    The error points the partnumberlist as invalid datatype in TOAD because of this i'm unable to compile the package.
    Any suggestion
    Thanks and regards
    Sathish Gopal

    Here is my code for
    package Spec
    CREATE OR REPLACE PACKAGE "HISTORICAL_COMMENTZ" AS
    TYPE prior_part_data_record IS RECORD (
    prior_part_row_id PGM_RPLCMNT_PART.PR_PART_ROW_S_ID%TYPE,
    prior_pgm_chng_s_id PGM_RPLCMNT_PART.PR_PGM_CHNG_S_ID%TYPE
    TYPE parts_list IS TABLE OF prior_part_data_record;
    --TYPE parts_list IS TABLE OF NUMBER;
    TYPE partnumberlist IS TABLE OF PGM_RPLCMNT_PART.PR_PART_ROW_S_ID%TYPE;
    TYPE partnumber_cursor IS REF CURSOR;
    TYPE comment_record IS RECORD (
    pgm_s_id                     PGM_PART_CMNT.PGM_S_ID%TYPE,
    part_row_s_id                PGM_PART_CMNT.PART_ROW_S_ID%TYPE,
    pgm_chng_s_id                PGM_PART_CMNT.PGM_CHNG_S_ID%TYPE,
    cmnt_txt                     PGM_PART_CMNT.CMNT_TXT%TYPE,
    cmnt_dt                     PGM_PART_CMNT.CMNT_DT%TYPE,
    updt_rsrc_id                PGM_PART_CMNT.UPDT_RSRC_ID%TYPE
    TYPE comment_list IS TABLE OF comment_record;
    global_pgm_s_id INTEGER := 0;
    global_part_row_s_id INTEGER := 0;
    err_num NUMBER := 999999;
    err_msg VARCHAR2 (250);
    PROCEDURE getComments (
    pgm_s_id IN NUMBER,
    part_row_s_id IN NUMBER,
    partnumber_cursorlist out partnumber_cursor);
    END;
    Package Body
    CREATE OR REPLACE PACKAGE BODY HISTORICAL_COMMENTZ
    AS
    FUNCTION getPriorPart
    (param_prior_pgm_chng_s_id IN PGM_RPLCMNT_PART.PR_PGM_CHNG_S_ID%TYPE,
    return_prior_part_data_record IN OUT prior_part_data_record
    RETURN INTEGER
    IS
    retVal INTEGER;
    prior_part_row_id INTEGER;
    prior_pgm_chng_s_id INTEGER;
    local_prior_part_data_record prior_part_data_record;
    BEGIN
    SELECT PR_PART_ROW_S_ID AS prior_part_row_id, PR_PGM_CHNG_S_ID AS prior_pgm_chng_s_id
    INTO local_prior_part_data_record
    --SELECT PR_PART_ROW_S_ID INTO retVal
    FROM PGM_RPLCMNT_PART
    WHERE PGM_S_ID = global_pgm_s_id AND CUR_PGM_CHNG_S_ID = param_prior_pgm_chng_s_id;
    return_prior_part_data_record := local_prior_part_data_record;
    retVal := 0;
    RETURN retVal;
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    err_num := SQLCODE;
    err_msg := 'SQL Error ' || SUBSTR (SQLERRM, 1, 250);
    DBMS_OUTPUT.put_line ('SQLERROR = ' || err_msg);
    retVal := -1;
    RETURN retVal;
    WHEN OTHERS
    THEN
    err_num := SQLCODE;
    err_msg := 'SQL Error ' || SUBSTR (SQLERRM, 1, 250);
    DBMS_OUTPUT.put_line ('SQLERROR = ' || err_msg);
    retVal := -1;
    RETURN retVal;
    END getPriorPart;
    FUNCTION getComment (found_parts_list IN parts_list, comments OUT comment_list)
    RETURN INTEGER
    IS
    CURSOR init_cursor
    IS
    SELECT PGM_S_ID,PART_ROW_S_ID,PGM_CHNG_S_ID,CMNT_TXT,CMNT_DT,UPDT_RSRC_ID
    FROM PGM_PART_CMNT WHERE 1 = 2;
    retVal INTEGER;
    indexNum PLS_INTEGER;
    local_part_record prior_part_data_record;
    local_comment_record comment_record;
    local_part_row_s_id NUMBER;
    i PLS_INTEGER;
    BEGIN
    OPEN init_cursor;
    FETCH init_cursor
    BULK COLLECT INTO comments;
    i := 0;
    indexNum := found_parts_list.FIRST;
    WHILE indexNum IS NOT NULL
    LOOP
    local_part_record := found_parts_list(indexnum);
    local_part_row_s_id := local_part_record.prior_part_row_id;
    SELECT PGM_S_ID,PART_ROW_S_ID,PGM_CHNG_S_ID,CMNT_TXT,CMNT_DT,UPDT_RSRC_ID
    INTO local_comment_record FROM PGM_PART_CMNT
    WHERE PGM_S_ID = global_pgm_s_id
    AND PART_ROW_S_ID = local_part_row_s_id;
    comments(i) := local_comment_record;
    i := i + 1;
    END LOOP;
    RETURN retval;
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    err_num := SQLCODE;
    err_msg := 'SQL Error ' || SUBSTR (SQLERRM, 1, 250);
    DBMS_OUTPUT.put_line ('SQLERROR = ' || err_msg);
    RETURN retval;
    WHEN OTHERS
    THEN
    err_num := SQLCODE;
    err_msg := 'SQL Error ' || SUBSTR (SQLERRM, 1, 250);
    DBMS_OUTPUT.put_line ('SQLERROR = ' || err_msg);
    RETURN retval;
    END getComment;
    PROCEDURE getComments
    pgm_s_id IN NUMBER,
    part_row_s_id IN NUMBER,
    partnumber_cursorlist OUT partnumber_cursor)
    IS
    comment_recordlist comment_record;
    retPartnumberlist partnumberlist;
    found_parts_list parts_list;
    local_part_record prior_part_data_record;
    is_more_parts BOOLEAN;
    driver_chng_s_id NUMBER;
    num_parts NUMBER;
    retVal NUMBER;
    comments comment_list;
    returnPartnumberlist partnumberlist;
    iloopCounter PLS_INTEGER;
    inx1 PLS_INTEGER;
    part_t partnumberlist :=partnumberlist(100,200,300);
    CURSOR part_list_init_cursor
    IS
    SELECT PR_PART_ROW_S_ID,PR_PGM_CHNG_S_ID FROM PGM_RPLCMNT_PART WHERE 1 = 2;
    CURSOR inIt_cursor
    IS
    SELECT 0 FROM DUAL WHERE 1 = 2;
    BEGIN
    DBMS_OUTPUT.ENABLE (5000000);
    global_pgm_s_id := pgm_s_id;
    global_part_row_s_id := part_row_s_id;
    SELECT PART_ROW_S_ID AS prior_part_row_id, PR_PGM_CHNG_S_ID AS prior_pgm_chng_s_id
    INTO local_part_record
    FROM PGM_RPLCMNT_PART
    WHERE PGM_S_ID = global_pgm_s_id AND PART_ROW_S_ID = global_part_row_s_id AND
    CUR_PGM_CHNG_S_ID IN (SELECT MAX(CUR_PGM_CHNG_S_ID) FROM PGM_RPLCMNT_PART WHERE
    PGM_S_ID = global_pgm_s_id AND PART_ROW_S_ID = global_part_row_s_id
    GROUP BY PART_ROW_S_ID);
    OPEN part_list_init_cursor;
    FETCH part_list_init_cursor
    BULK COLLECT INTO found_parts_list;
    -- Add the existing part to the found list
    found_parts_list.EXTEND;
    found_parts_list(1) := local_part_record;
    driver_chng_s_id := local_part_record.prior_pgm_chng_s_id;
    num_parts := 1;
    is_more_parts := TRUE;
    WHILE (is_more_parts) LOOP
    retVal := getPriorPart(driver_chng_s_id,local_part_record);
    IF (retVal != -1) THEN
    found_parts_list.EXTEND;
    num_parts := num_parts + 1;
    found_parts_list(num_parts) := local_part_record;
    driver_chng_s_id := local_part_record.prior_pgm_chng_s_id;
    ELSE
    is_more_parts := FALSE;
    END IF;
    END LOOP;
    --num_parts := getComment(found_parts_list,comments);
    OPEN init_cursor;
    FETCH init_cursor
    BULK COLLECT INTO returnPartnumberlist;
    num_parts := found_parts_list.COUNT;
    FOR iloopCounter IN 1 .. num_parts
    LOOP
    returnPartnumberlist.EXTEND;
    returnPartnumberlist(iloopCounter) := found_parts_list(iloopCounter).prior_part_row_id;
    END LOOP;
    retPartnumberlist := returnPartnumberlist;
    open
    *          partnumber_cursorlist for select PR_PART_ROW_S_ID from TABLE(CAST(retPartnumberlist AS historical_commentz.partnumberlist));*                              
    DBMS_OUTPUT.put_line('Done....!');
    EXCEPTION
    some code..............................
    END getComments;
    END HISTORICAL_COMMENTZ;
    /

Maybe you are looking for