PLS-00321

Hi!
I'm facing one problem which is given below --
create or replace package sat_plsql_tab
is
  type emp_rectype is record(employee_id   number(10),
                           employee_name varchar2(20));
  type emp_table is table of emp_rectype index by binary_integer;
  function best_company(year_in in number)
  return sat_plsql_tab.emp_table;
end sat_plsql_tab;
create or replace package body sat_plsql_tab
is
     function best_company(year_in in number)
     return sat_plsql_tab.emp_table
     is
       cursor c1
       is
         select empno,ename
          from emp
          where to_number(to_char(hiredate,'YYYY')) = year_in;
       r1 c1%rowtype;
       xx sat_plsql_tab.emp_table;
     begin
--        for r1 in c1
--        loop
--          sat_plsql_tab.emp_table.employee_id := r1.empno;
--           sat_plsql_tab.emp_table.employee_name := r1.ename;
--        end loop;
      open c1;
       loop
         fetch c1 into xx;
          exit when c1%notfound;
       end loop;
       return xx;
     end best_company;
end sat_plsql_tab;
Warning: Package Body created with compilation errors.
SQL>
SQL>
SQL> sho errors;
Errors for PACKAGE BODY SAT_PLSQL_TAB:
LINE/COL ERROR
20/6     PL/SQL: SQL Statement ignored
20/34    PLS-00321: expression 'EMP_TABLE' is inappropriate as the left
         hand side of an assignment statementWhat might be the problem? If i use that inside procedure as aout param - it is working. Thanks in advance for your response.
Regards.
Satyaki De.

Yes i've check ed that - and i followed some different approach --
create or replace package body sat_plsql_tab
is
     function best_company(year_in in number)
     return sat_plsql_tab.emp_table
     is
       cursor c1
       is
         select empno,ename
          from emp
          where to_number(to_char(hiredate,'YYYY')) = year_in;
       r1 c1%rowtype;
       xx sat_plsql_tab.emp_table;
       i  number(5);
     begin
       i := 0;
       open c1;
--         for r1 in c1
--         loop
--          i:= i + 1;
--           xx(i).employee_id := r1.empno;
--            xx(i).employee_name := r1.ename;
--         end loop;
         fetch c1 bulk collect into xx;
       return xx;
     end best_company;
end sat_plsql_tab;Thnaks for your reply. It was a silly mistake.
Regards.
Satyaki De.

Similar Messages

  • Dynamic SQL PIVOT not producing output?

    Hey all,
    Find my source code with test data scripts below. Since my production system is not connected to the inet, I had to type this
    "by hand" as it were, so please pardon any mispellings. I have no way to test on my inet-enabled PC before posting.
    Anyways, here's my issue: if you run the below code as PL/SQL script, it runs fine but it produces NO output (it should display a
    grid of data). That is my dilemma. How to get my dynamic pivot to actually SHOW the data. So I've been experimenting with
    EXECUTE IMMEDIATE, but when I use that syntax, it blows up with the error:
    PLS-00321: expression 'TMPTABLE' is inappropriate as the left hand side of an assignment statement
    I have provide the lines below which cause the error, but they are commented out so you can see it runs fine the 1st way (yet
    displays no data) and blows up the 2nd way. I would appreciate your insights.
    Thanks
    DROP TABLE table1;
    DROP TABLE table2;
    DROP TABLE datetable;
    CREATE TABLE table1
         TIME_STAMP TIMESTAMP(6) DEFAULT systimestamp NOT NULL,
         Id VARCHAR2(50 BYTE)  NOT NULL
    CREATE TABLE table2
         NAME VARCHAR2(50 BYTE),
         Id VARCHAR2(50 BYTE) NOT NULL
    CREATE TABLE datetable
         YEAR_WEEK VARCHAR2(7 BYTE),
         WEEK_START_DATE DATE
    INSERT INTO table1 VALUES (to_date(‘05/30/2011’,’MM/DD/YYYY’),’1’);
    INSERT INTO table1 VALUES (to_date(‘05/31/2011’,’MM/DD/YYYY’),’1’);
    INSERT INTO table1 VALUES (to_date(‘06/01/2011’,’MM/DD/YYYY’),’1’);
    INSERT INTO table1 VALUES (to_date(‘06/02/2011’,’MM/DD/YYYY’),’1’);
    INSERT INTO table1 VALUES (to_date(‘06/03/2011’,’MM/DD/YYYY’),’2’);
    INSERT INTO table1 VALUES (to_date(‘06/04/2011’,’MM/DD/YYYY’),’2’);
    INSERT INTO table1 VALUES (to_date(‘06/05/2011’,’MM/DD/YYYY’),’2’);
    INSERT INTO table1 VALUES (to_date(‘06/07/2011’,’MM/DD/YYYY’),’2’);
    INSERT INTO table1 VALUES (to_date(‘06/08/2011’,’MM/DD/YYYY’),’1’);
    INSERT INTO table1 VALUES (to_date(‘06/09/2011’,’MM/DD/YYYY’),’1’);
    INSERT INTO table1 VALUES (‘Bob’,’1’);
    INSERT INTO table1 VALUES (‘Gary’,’2’);
    INSERT INTO table1 VALUES (‘2011-21’,to_date(‘05/23/2011’,’MM/DD/YYYY’));
    INSERT INTO table1 VALUES (‘2011-22’,to_date(‘05/30/2011’,’MM/DD/YYYY’));
    INSERT INTO table1 VALUES (‘2011-23’,to_date(‘06/06/2011’,’MM/DD/YYYY’));
    INSERT INTO table1 VALUES (‘2011-24’,to_date(‘06/13/2011’,’MM/DD/YYYY’));
    DECLARE
         sql_txt VARCHAR2 (32767);
         --keep the below commented for the 1st test, uncomment for 2nd test
         --TYPE tmpTable IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
    BEGIN
         sql_txt :=
    Q'{WITH got_dates AS
    SELECT b.name,
    COUNT(*) AS Responded,
    iso.week_start_date AS week_start_date
    FROM
    table1 a INNER JOIN table2 b ON
    (a.id = b.id) INNER JOIN datetable iso ON
    ((case when to_char(a.time_stamp, 'IW')='53' then to_char(cast(to_char(a.time_stamp, 'IYYY') as int)+1) || '-01' else to_char(a.time_stamp, 'IYYY-IW') end) = iso.year_week)
    WHERE
    (a.time_stamp >= sysdate-30)
    GROUP BY
    iso.week_start_date,
    b.name
    SELECT   *
    FROM       got_dates
    PIVOT      (
    SUM (Responded) FOR week_start_date IN (
         FOR d_rec IN     (
    WITH    possible_dates      AS
         SELECT  SYSDATE + 1 - LEVEL     AS time_stamp
         FROM     DUAL
         CONNECT BY     LEVEL <= 31
    SELECT     DISTINCT  'DATE '''
                || TO_CHAR ( c.week_start_date
                              , 'YYYY-MM-DD'
                || ''' AS '
                || TO_CHAR ( c.week_start_date
                              , 'mon_dd_yyyy'
                || CASE          
                           WHEN  DENSE_RANK () OVER (ORDER BY  c.week_start_date) > 1
                    THEN  ','
                   END          AS txt
    FROM          possible_dates     p
    INNER JOIN     datetable      c  ON   c.year_week =
    CASE
    WHEN  TO_CHAR ( p.time_stamp, 'IW') = '53'
    THEN  TO_CHAR (cast(TO_CHAR(p.time_stamp,'IYYY') AS int)+1) || '-01'
    ELSE  TO_CHAR ( p.time_stamp, 'IYYY-IW')
    END
    ORDER BY  txt     DESC
         LOOP
              sql_txt := sql_txt || ' ' || d_rec.txt;
         END LOOP;
         sql_txt := sql_txt || ') )';
    --keep the below commented for the 1st test, uncomment for 2nd test. also, comment out the 2nd EXECUTE IMMEDIATE (only 1 at a time should be uncommented)
    --EXECUTE IMMEDIATE sql_txt BULK COLLECT INTO tmpTable;
    EXECUTE IMMEDIATE sql_txt;
    END;Edited by: user8825851 on Oct 6, 2011 2:12 PM

    Hi,
    user8825851 wrote:
    Find my source code with test data scripts below. Since my production system is not connected to the inet, I had to type this
    "by hand" as it were, so please pardon any mispellings. I have no way to test on my inet-enabled PC before posting. Install an Oracle database on your PC. It's free and it's not difficult. if you're going to use this forum, whatever time you have to invest in it will pay off within a week.
    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
    Anyways, here's my issue: if you run the below code as PL/SQL script, it runs fine but it produces NO output (it should display a
    grid of data)...In PL/SQL, you always have to SELECT into something.
    One simple way is to open a cursor. Before running the PL/SQL code, declare a bind variable for the cursor:
    VARIABLE     c     REFCURSOR
    -- And while you're at it, do this, too
    SET  SERVEROUTPUT  ONIn the PL/SQL code, use an OPEN statement in place of EXECUTE IMMEDIATE:
    ...     dbms_output.put_line (sql_txt); -- For debugging only
    --     EXECUTE IMMEDIATE sql_txt;     -- Don't do this
         OPEN :c FOR sql_txt;          -- Do this instead
    END;
    /After the PL/SQL is finsihed, you can use PRINT to see the results:
    PRINT :cIn this case, you'll get an error message because the dynamic code is incorrect. That's what the call to put_line is for: to show exactly what you're running. If there's a problem, you can examine the output, or copy it into a script, edit it and debug it.
    In this case, you'll see that the dynamic SQL ends with:
    PIVOT    (
    SUM (Responded) FOR week_start_date IN (
    ) )The part that's supposed to be dynamic is missing. That part is supposed to be written inside the d_rec cursor loop, but d_rec is returning no rows. That's because of the join condition:
    INNER JOIN     datetable      c  ON   c.year_week =
    CASE
    WHEN  TO_CHAR ( p.time_stamp, 'IW') = '53'
    THEN  TO_CHAR (cast(TO_CHAR(p.time_stamp,'IYYY') AS int)+1) || '-01'
    ELSE  TO_CHAR ( p.time_stamp, 'IYYY-IW')
    END With the given sample data, p.time_stamp is producing values between '2011-36' and '2011-40', but the values in c.week are
    INSERT INTO table1 VALUES (‘2011-21’,to_date(‘05/23/2011’,’MM/DD/YYYY’));
    INSERT INTO table1 VALUES (‘2011-22’,to_date(‘05/30/2011’,’MM/DD/YYYY’));
    INSERT INTO table1 VALUES (‘2011-23’,to_date(‘06/06/2011’,’MM/DD/YYYY’));
    INSERT INTO table1 VALUES (‘2011-24’,to_date(‘06/13/2011’,’MM/DD/YYYY’));(I assume you meant "INSERT INTO *datetable* " above.)
    Perhaps you meant LEFT OUTER JOIN instead of INNER JOIN in d_rec.

  • Bulk collect usage in cursor for loop

    Hi Team,
    I have one cursor like below assuming cursor is having 3000 records,
    CURSOR csr_del_frm_stg(c_source_name VARCHAR2 , c_file_type VARCHAR2)
    IS
    SELECT stg.last_name,stg.employee_number,stg.email
    FROM akam_int.xxak_eb_contact_stg stg
    MINUS
    SELECT ss.last_name,ss.employee_number,ss.email
    FROM akam_int.xxak_eb_contact_stg_ss ss;
    I declared one record type variable as,
    TYPE emp_rec IS RECORD (LAST_NAME             VARCHAR2(40)
    *,EMPLOYEE_NUMBER VARCHAR2(50)*
    *,EMAIL VARCHAR2(80)*
    TYPE emp_rec_ss IS VARRAY(3000) OF emp_rec;
    Im updating the status of those cursor records to 'C' in the below for loop,
    FOR l_csr_del_frm_stg IN csr_del_frm_stg(p_source_name , p_file_type)
    LOOP
    FETCH csr_del_frm_stg BULK COLLECT INTO emp_rec_ss LIMIT 500;
    FORALL i IN emp_rec_ss.FIRST..emp_rec_ss.LAST
    UPDATE akam_int.xxak_eb_contact_stg stg
    SET akam_status_flag    = 'C'
    WHERE stg.employee_number = emp_rec_ss(i).employee_number;
    EXIT WHEN csr_del_frm_stg%NOTFOUND;
    END LOOP;
    Getting following errors if i compile the code,
    PLS-00321: expression 'EMP_REC_SS' is inappropriate as the left hand side of an assignment statement
    PLS-00302: component 'FIRST' must be declared

    Use cursor variables:
    declare
        v_where varchar2(100) := '&where_clause';
        v_cur sys_refcursor;
        v_ename varchar2(30);
    begin
        open v_cur for 'select ename from emp where ' || v_where;
        loop
          fetch v_cur into v_ename;
          exit when v_cur%notfound;
          dbms_output.put_line(v_ename);
        end loop;
        close v_cur;
    end;
    Enter value for where_clause: deptno = 10
    CLARK
    KING
    MILLER
    PL/SQL procedure successfully completed.
    SQL> /
    Enter value for where_clause: sal = 5000
    KING
    PL/SQL procedure successfully completed.
    SQL> /
    Enter value for where_clause: job = ''CLERK''
    SMITH
    ADAMS
    JAMES
    MILLER
    PL/SQL procedure successfully completed.
    SQL>  SY.

  • Error using BULK Collect with RECORD TYPE

    hello
    I have written a simple Procedure by declaring a record type & then making a variable of NESTED Table type.
    I then select data using BULK COLLECT & tryin to access it through a LOOP.....Getting an ERROR.
    CREATE OR REPLACE PROCEDURE sp_test_bulkcollect
    IS
    TYPE rec_type IS RECORD (
    emp_id VARCHAR2(20),
    level_id NUMBER
    TYPE v_rec_type IS TABLE OF rec_type;
    BEGIN
    SELECT employee_id, level_id
    BULK COLLECT INTO v_rec_type
    FROM portfolio_exec_level_mapping
    WHERE portfolio_execp_id = 2851852;
    FOR indx IN v_rec_type.FIRST..v_rec_type.LAST
    LOOP
    dbms_output.put_line('Emp -- '||v_rec_type.emp_id(indx)||' '||v_rec_type.level_id(indx));
    END LOOP;
    END;
    Below are the ERROR's i am getting ....
    - Compilation errors for PROCEDURE DOMRATBDTESTUSER.SP_TEST_BULKCOLLECT
    Error: PLS-00321: expression 'V_REC_TYPE' is inappropriate as the left hand side of an assignment statement
    Line: 15
    Text: FROM portfolio_exec_level_mapping
    Error: PL/SQL: ORA-00904: : invalid identifier
    Line: 16
    Text: WHERE portfolio_execp_id = 2851852;
    Error: PL/SQL: SQL Statement ignored
    Line: 14
    Text: BULK COLLECT INTO v_rec_type
    Error: PLS-00302: component 'FIRST' must be declared
    Line: 19
    Text: LOOP
    Error: PL/SQL: Statement ignored
    Line: 19
    Text: LOOP
    PLZ Help.

    and with a full code sample:
    SQL> CREATE OR REPLACE PROCEDURE sp_test_bulkcollect
      2  IS
      3  TYPE rec_type IS RECORD (
      4  emp_id VARCHAR2(20),
      5  level_id NUMBER
      6  );
      7  TYPE v_rec_type IS TABLE OF rec_type;
      8  v v_rec_type;
      9  BEGIN
    10     SELECT empno, sal
    11     BULK COLLECT INTO v
    12     FROM emp
    13     WHERE empno = 7876;
    14     FOR indx IN v.FIRST..v.LAST
    15     LOOP
    16        dbms_output.put_line('Emp -- '||v(indx).emp_id||' '||v(indx).level_id);
    17     END LOOP;
    18  END;
    19  /
    Procedure created.
    SQL>
    SQL> show error
    No errors.
    SQL>
    SQL> begin
      2     sp_test_bulkcollect;
      3  end;
      4  /
    Emp -- 7876 1100
    PL/SQL procedure successfully completed.

  • Sysdate in pl/sql

    Hi all
    I am executing following pl/sql block
    DECLARE
    hiredate emp.hiredate%TYPE;
    sysdate hiredate%TYPE;
    empno emp.empno%TYPE := 7839;
    BEGIN
    SELECT hiredate,sysdate
    INTO hiredate,sysdate
    FROM emp
    WHERE empno = 7839;
    dbms_output.put_line(hiredate||' '||sysdate);
    END;
    17-NOV-81
    only hiredate id displaying at runtime , why sysdate is not displaying?????

    but if i could not declare sysdate in PL/SQL block, it should not get compiled.The point is, you can declare sysdate in your pl/sql block and because of the way that oracle handles naming resolution, you will not get the result you appear to be looking for as your local delcaration of SYSDATE will override the global declaration of SYSDATE
    SQL> DECLARE
      2
      3     sysdate date;
      4  BEGIN
      5     SELECT
      6             sysdate
      7     INTO
      8             sysdate
      9     FROM
    10             dual;
    11
    12     dbms_output.put_line(NVL(sysdate,TO_DATE('01/01/2005','dd/mm/yyyy')));
    13  END;
    14  /
    01-JAN-05
    PL/SQL procedure successfully completed.
    SQL> DECLARE
      2
      3     sysdate date :=TO_DATE('31/12/2005','dd/mm/yyyy');
      4  BEGIN
      5     SELECT
      6             sysdate
      7     INTO
      8             sysdate
      9     FROM
    10             dual;
    11
    12     dbms_output.put_line(NVL(sysdate,TO_DATE('01/01/2005','dd/mm/yyyy')));
    13  END;
    14  /
    31-DEC-05
    PL/SQL procedure successfully completed.
    SQL> DECLARE
      2
      3     sysdate date;
      4  BEGIN
      5  -- SELECT
      6  --         sysdate
      7  -- INTO
      8  --         sysdate
      9  -- FROM
    10  --         dual;
    11  --
    12     dbms_output.put_line(NVL(sysdate,TO_DATE('01/01/2005','dd/mm/yyyy')));
    13  END;
    14  /
    01-JAN-05
    PL/SQL procedure successfully completed.
    SQL> DECLARE
      2
      3  -- sysdate date;
      4  BEGIN
      5  -- SELECT
      6  --         sysdate
      7  -- INTO
      8  --         sysdate
      9  -- FROM
    10  --         dual;
    11  --
    12     dbms_output.put_line(NVL(sysdate,TO_DATE('01/01/2005','dd/mm/yyyy')));
    13  END;
    14  /
    14-SEP-05
    PL/SQL procedure successfully completed.
    SQL> DECLARE
      2
      3     sys_date date;
      4  BEGIN
      5     SELECT
      6             sysdate
      7     INTO
      8             sys_date
      9     FROM
    10             dual;
    11
    12     dbms_output.put_line(NVL(sys_date,TO_DATE('01/01/2005','dd/mm/yyyy')));
    13  END;
    14  /
    14-SEP-05
    PL/SQL procedure successfully completed.Also, if you get rid of your declaration of sysdate and try the same query again, you will get an error:
    SQL> DECLARE
      2
      3  -- sysdate date;
      4  BEGIN
      5     SELECT
      6             sysdate
      7     INTO
      8             sysdate
      9     FROM
    10             dual;
    11
    12     dbms_output.put_line(NVL(sysdate,TO_DATE('01/01/2005','dd/mm/yyyy')));
    13  END;
    14  /
                    sysdate
    ERROR at line 8:
    ORA-06550: line 8, column 3:
    PLS-00321: expression 'SYSDATE' is inappropriate as the left hand side of an
    assignment statement
    ORA-06550: line 5, column 2:
    PL/SQL: SQL Statement ignoredHave a look at the docs for more info on how oracle handles naming resolution:
    http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/d_names.htm#3693
    HTH
    David

  • Whts goinf wrong. PL/SQL

    Hi all,
    Here is my code:
    PROCEDURE CalulateAbsoluteGrades(clsID IN NUMBER, acadYR IN VARCHAR2)
    AS
    Tables for marks calcultion
    TYPE tabStdID IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    TYPE tabTotMarksUT1 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    TYPE tabTotMarksHYLY IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    TYPE tabMaxSumMarksUT1 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    TYPE tabMaxSumMarksHLY IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    tmpSumUT1 NUMBER:=0;
    tmpSumHLY NUMBER:=0;
    i NUMBER:=0;
    Defining cursor for getting the subjects assigned to the students
    CURSOR getStdSubject IS
    SELECT SSM.STUDENTID,
    sum(NVL(DECODE(MM.MARKS_TH_UT1,-1,NULL,MM.MARKS_TH_UT1),0)) MarksUT1,
    SUM(NVL(DECODE(MARKS_TH_HFLY,-1,NULL,MARKS_TH_HFLY),0)+NVL(DECODE(MARKS_PT_HFLY,-1,NULL,MARKS_PT_HFLY),0)) MarksHly
    FROM studentSubjectMaster SSM, MarksMASTER MM
    WHERE SSM.STUDENTID = MM.STUDENTID
    AND SubType='C' AND SSM.SubjectID=MM.SUBJECTID AND
    SSM.STUDENTID IN
         SELECT studentID
         FROM strollnomaster
         WHERE classID=clsID AND ACAD_YEAR=acadYr
    GROUP BY SSM.STUDENTID;
    BEGIN
    FOR singleRec IN getStdSubject
    LOOP
         tabStdID(i):=singleRec.STUDENTID;
         tabTotMarksUT1(i):=singleRec.MarksUT1;
         tabTotMarksHYLY(i):=singleRec.MarksHly;
         i:=i+1;
    END LOOP;
    END;
    this procedure is giving me the following error:
    PLS-00321: expression 'TABSTDID' is inappropriate as the left hand side of an assignment statement.
    I am unable to figure out what is going wrong and where because same sort of code is working in different procedure perfectly.
    ny idea(s).

    You're using your TYPE rather than an instance of your type. Make your declaration look like this...
    PROCEDURE CalulateAbsoluteGrades(clsID IN NUMBER, acadYR IN VARCHAR2)
    AS
    Tables for marks calcultion
    TYPE myTab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    tabStdID myTab;
    tabTotMarksUT1 myTab;
    tabTotMarksHYLY myTab;
    tabMaxSumMarksUT1 myTab;
    tabMaxSumMarksHLY myTab;Cheers, APC

  • I have a problem with wifi in my iphone 4s, i already try everything and download latest version 7.1(11D167) but wifi switch is not working, its my humble request to Apple support team that pls resolve this problem as soon as possible because

    I have a problem with wifi in my iphone 4s, i already try everything and download latest version 7.1(11D167) but wifi switch is not working, its my humble request to Apple support team that pls resolve this problem as soon as possible because its a prestiage of Apple Company.
    Pls inform me how can i resolve the problem of wifi.

    You have to go to autherized iPhone agent.

  • Error while creating a procedure (PLS-00103)

    Hi Am create the follwing Procedure:-
    create or replace PROCEDURE XL_SP_ROGUEUSERS (
    csrresultset_inout IN OUT sys_refcursor,
    intuserkey_in IN NUMBER,
    strsortcolumn_in IN VARCHAR2,
    strsortorder_in IN VARCHAR2,
    intstartrow_in IN NUMBER,
    intpagesize_in IN NUMBER,
    intdocount_in IN NUMBER,
    inttotalrows_out OUT NUMBER,
    strfiltercolumnlist_in IN VARCHAR2,
    strfiltercolumnvaluelist_in IN VARCHAR2,
    strudfcolumnlist_in IN VARCHAR2,
    strudfcolumnvaluelist_in IN VARCHAR2,
    struserlogin_in IN VARCHAR2,
    strfirstname_in IN VARCHAR2,
    strlastname_in IN VARCHAR2,
    strdate_in IN VARCHAR2
    AS
    BEGIN
    DECLARE
    whereclause VARCHAR2(8000);
    select_stmt VARCHAR2(8000);
    strColumnList VARCHAR2(4000);
    strDateFormat VARCHAR2 (80);
    strFromClause VARCHAR2(4000);
    strWhereClause VARCHAR2(4000);
    strOrderByClause VARCHAR2(2000);
    intSortDirection_in PLS_INTEGER;
    entsum     varchar2(20) := 'Entitlements Summary';
    str_row EXCEPTION;
    do_cnt EXCEPTION;
    no_logged_in_user EXCEPTION;     
    property_not_found EXCEPTION;
    pragma exception_init(Str_row,-20001);
    pragma exception_init(Do_cnt,-20002);
    pragma exception_init(no_logged_in_user,-20003);     
    BEGIN
    -- Throw exception if the start row or page size is either NULL or have
    -- values less than or equal to zero
    IF (intstartrow_in <= 0 OR intpagesize_in <= 0 OR intstartrow_in IS NULL OR intpagesize_in IS NULL)
         THEN
         RAISE str_row;
    END IF;
    -- Throw exception if the intdocount_in parameter is NULL or has a value
    -- other than 0 and 1
    IF intdocount_in NOT IN (0, 1, 2) OR intdocount_in IS NULL
         THEN
         RAISE do_cnt;
    END IF;
    -- Throw exception if the intuserkey_in (logged in user) parameter is NULL
    IF intuserkey_in IS NULL or intuserkey_in <= 0
         THEN
         RAISE no_logged_in_user;
    END IF;
    -- Now, we start accumulating the whereclause based on the input
    -- parameters, performing error checking along the way.
    --Organization Permissioning.
    /* whereclause := ' and usr.act_key IN (SELECT DISTINCT act2.act_key FROM '||
    ' act act2, aad, usg, ugp, usr usr5 '||
    ' WHERE act2.act_key = aad.act_key '||
    ' and aad.ugp_key = usg.ugp_key '||
    ' and ugp.ugp_key = usg.ugp_key'||
    ' and usg.usr_key = usr5.usr_key'||
    ' and usr5.usr_key = '||intuserkey_in||')'; */
    IF strfiltercolumnlist_in IS NOT NULL AND
    strfiltercolumnvaluelist_in IS NOT NULL THEN
    whereclause := whereclause
    || xl_sfg_parseparams(strfiltercolumnlist_in,
    strfiltercolumnvaluelist_in);
    END IF;
    IF struserlogin_in IS NOT NULL THEN
    whereclause := whereclause
    || ' AND UPPER(usr.usr_login) LIKE '
    || UPPER (''''||struserlogin_in||'''')
    || ' ';
    END IF;
    IF strudfcolumnlist_in IS NOT NULL AND
    strudfcolumnvaluelist_in IS NOT NULL THEN
    whereclause := whereclause
    || xl_sfg_parseparams(strudfcolumnlist_in,
    strudfcolumnvaluelist_in);
    END IF;
    -- Perform the count query and store the result in inttotalrows_out
         inttotalrows_out := 0;
    IF intdocount_in IN (1,2) THEN
    EXECUTE IMMEDIATE ' select count(*) from((SELECT upper(rcd.RCD_VALUE) as "User ID" '||                                        ' FROM rce, obj, rcd, orf '||
                   ' WHERE '||
                   ' RCE_STATUS like 'No Match Found' '||
                   ' AND ((orf.ORF_FIELDNAME like 'User ID') or (orf.ORF_FIELDNAME like 'User%Login')) '||
                   ' AND rce.OBJ_KEY = obj.OBJ_KEY '||
                   ' AND rce.RCE_KEY = rcd.RCE_KEY '||
                   ' AND rcd.ORF_KEY = orf.ORF_KEY '||
                   ' ) '||
                   ' MINUS '||
                   ' (SELECT usr.USR_LOGIN FROM usr '||
                   ' WHERE '||
                   ' usr.USR_STATUS like 'Active')) '||
                   whereclause INTO inttotalrows_out;
    -- UI needs the SP to return result set always. The following is returned
    -- when the indocount is 2 which does not return any result set but count
    IF intdocount_in = 2 THEN
    select_stmt := 'SELECT ''dummy'' FROM dual';
    OPEN csrresultset_inout FOR select_stmt;          
    END IF;
    END IF;
    -- If intdocount_in is 2, UI just wants to get the totalrows to give
    -- the warning to users if the result set exceeds the limit set by
    -- UI. When ntdocount_in is 2, the following block won't be executed.
    IF intdocount_in IN (0,1) THEN          
    -- Construct the select query by calling XL_SPG_GetPagingSql.
    -- This is the main query for this stored procedure
    strOrderByClause := ' usr.usr_login';
    --strOrderByClause := ' req.req_key';
    IF strsortorder_in = 'DESC' THEN
    intSortDirection_in := 0;
    ELSE
    intSortDirection_in := 1;          
    END IF;
    XL_SPG_GetPagingSql(strColumnList,
    strFromClause,
    whereclause,
    strOrderByClause,
    intSortDirection_in,
    intStartRow_in,
    intPageSize_in,
    select_stmt
    OPEN csrresultset_inout FOR select_stmt;
    END IF;     
    -- Exception Handling
    EXCEPTION
    WHEN Str_row THEN
    RAISE_APPLICATION_ERROR(sqlcode,
    'Start Row/Page Size cannot be NULL OR less than or equal to zero ');
    WHEN Do_cnt THEN
    RAISE_APPLICATION_ERROR(sqlcode,
    'Do Count must be 0, 1 or 2. ');
    WHEN no_logged_in_user THEN
    RAISE_APPLICATION_ERROR(sqlcode,
    'Logged-in User Key cannot be NULL OR less than or equal to zero ');
    END;
    end XL_SP_ROGUEUSERS;
    But Am getting the following error message, I couldn't figure wat it is.Can anyone help me:-
    PLS-00103: Encountered the symbol "NO" when expecting one of the following: * & = - + ; < / > at in is mod remainder not rem return returning <an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_ between into using || bulk member SUBMULTISET_

    Please use tags when posting code. Also please format the code so that blocks line up vertically - often that makes syntax errors like missing END IFs etc much easier to spot.                                                                                                                                                                                                                                                                                                                                                                           

  • Pls help me, what happen to the itune or my ipod?

    the moment i plug my ipod into my computer, the itune update the songs and videos itself, but later on, i added something else into the itune, i update my ipod again, it doesn't work, it appear an error message said "The ipod cannot be updated. The disk could not be read from or written to" anybody can help me pls? send me the answer to my email if possible. [email protected] Thanks alot

    hiya!
    here's a good place to start with that error message:
    "Disk cannot be read from or written to" when syncing iPod or "Firmware update failure" error when updating or restoring iPod
    love, b

  • I remove CTIOS 8 in window 8.1, and install CTIOS 9.0 but i am trying to login new one they given the error. Pls help

    I remove CTIOS 8 in window 8.1, and install CTIOS 9.0 but i am trying to login they given the error. Pls help

    This may help, it allows you to reset the application, it also may be worth clearing out the app store cache and temp files.
    http://www.ryanragle.com/index.php?/site/comments/where-does-the-mac-app-store-d ownload-temp-files-to
    To contact Apple use the feedback form, this is a user forum and I don't think they will respond here.
    regards

  • Error in Installation of SAP R/3 4.7 - Urgent Help Pls !!!

    Hi All,
    I have a problem while installing SAP R/3 4.7. The Central instance has been successfully installed. Error occurred while installing the database instance. I am using SAPDB as the database. The error I get is the following:
    **INFO 2008-03-01 14:15:57**
    **Processing of host operation t_HostInfo_SHARED succeeded.**
    **INFO 2008-03-01 14:16:07**
    **The 'saploc' share exists at directory 'E:\usr\sap'. Choosing drive E: as SAP System drive.**
    **INFO[E] 2008-03-01 14:16:56**
    **Account group="ORA_GOK_DBA" does not exist. <#1>**
    **INFO[E] 2008-03-01 14:17:05**
    **Account group="ORA_GOK_OPER" does not exist. <#1>**
    **INFO[E] 2008-03-01 14:17:23**
    **Account group="SAPSRV\dbgokctl" does not exist. <#1>**
    **INFO 2008-03-01 14:19:23**
    **Copying file C:/SAP Dumps/Core Release SR1 Export_CD1_51019634/DB/ADA/DBSIZE.XML to: DBSIZE.XML.**
    **INFO 2008-03-01 14:19:23**
    **Creating file C:\SAPinst SAPDB SAPINST\DBSIZE.XML.**
    **INFO 2008-03-01 14:19:23**
    **Copying file system node C:\SAP Dumps\Core Release SR1 Export_CD1_51019634/DB/ADA/DBSIZE.XML with type NODE to DBSIZE.XML succeeded.**
    **INFO 2008-03-01 14:19:23**
    **Processing of all file system node operations of table tADA_Files succeeded.**
    **WARNING 2008-03-01 14:19:24**
    **Error 2 (The system cannot find the file specified.) in execution of a 'RegOpenKeyEx' function, line (274), with parameter (SOFTWARE\SAP\SAP DBTech).**
    **ERROR 2008-03-01 14:19:24**
    **MDB-07003  Exception occurred during Actor Call (Action READ_PROFILE_INFO).**
    **ERROR 2008-03-01 14:19:24**
    **MDB-07000  Execute Action READ_PROFILE_INFO failed.**
    **ERROR 2008-03-01 14:20:47**
    **MSC-01003  ESyException: ESAPinstException: error text undefined**
    **ERROR 2008-03-01 14:20:47**
    **FJS-00012  Error when executing script.**
    **ERROR 2008-03-01 14:20:47**
    **FCO-00011  The step fillR3loadPackageTable with step key SAPSYSTEM|ind|ind|ind|ind|ind|0|SAPComponent|ind|ind|ind|ind|ind|0|DatabaseLoad|ind|ind|ind|ind|ind|0|fillR3loadPackageTable executed with status ERROR.**
    **ERROR 2008-03-01 14:20:47**
    **FSL-02015  Node C:\SAP\DATA does not exist.**
    Kindly let me know the solution to correct the error. Its urgent pls !!!
    Regards,
    Rose.

    Hello,
    The problem is caused due to the spaces in your directories
    C:\SAP Dumps\Core Release SR1 Export_CD1_51019634/DB/ADA/DBSIZE.XML
    Replace the spaces with underscores and restart the installation from from scratch.
    Cheers
    Bert

  • Pls help me writing logic:iterate tag in jsp page

    Hey guys , I am struck in retriving string p1,p2,p3 in the jsp page
    Pls have a look ata the code
    In DAO class:-
    StdprdDAO.java
    Public arrayList getPFP()
    ArrayList a = new ArrayList();
    While(rs.next())
         columnsVO colVO = new columnsVO;
         colVO.setProduct(rset.getString(1));//will store in String colProduct
         colVO.setFamily(rset.getString(2));//will store in String colFamily
    colVO.setPrice(rset.getString(3));//will store in String colPrice
    a.add(colVO);
    return a;
    In Action Class:-
    ArrayList final = null;
    StdprdDAO DAO = new stdprdDAO();
    final = DAO.getPFP();
    For(int i = 0; final !=null && i<final.size() ; i++)
         columnsVO VO = null;
         VO = (columnsVO)final.get(i);
         String p1 = (String) VO.getProduct();
         String p2 = (String) VO.getFamily();
         String p3 = (String) VO.getPrice();
         Request.setAttribute(“p1”,p1);
         Request.setAttribute(“p2”,p2);
         Request.setAttribute(“p3”,p3);
    In JSP PAGE:-
    id = “columnsVO”>
    <bean:write name = “columnsVO” property=”final” id=”p1”>
    but still I am doubting my above sentences in jsp page ,so pls correct them if possible.
    Instead of l;ogic:iterate can I use directly getattribute(“p1”)? <logic:iterate
    Still I m doubting I can not utilize columnsVO file in logic:iterate, I can utilize only formbean file.
    So pls help me with this.

    May I ask why have you done it?
    If it is related to printing of the list then it is of no use.But it IS of use. The objects compEmployees is in scope.
    It has the list we want to print out.
    With logic:iterate:
    <table>
         <tr>
           <th>Number</th>
           <th>Employee</th>
         </tr>
         <logic:iterate name="compEmployees" property="totalEmps" id="emp">
              <tr>
                <td>
                  <bean:write name="emp" property="empNo"/>
                </td>
                <td>
                  <bean:write name="emp" property="empName"/>
                </td>
              </tr>
         </logic:iterate>
    </table>or alternatively with JSTL and c:forEach
    <table>
         <tr>
           <th>Number</th>
           <th>Employee</th>
         </tr>
         <c:forEach items="${compEmployees.totalEmps}" var="emp">
              <tr>
                <td>
                  <c:out value="${emp.empNo}"/>
                </td>
                <td>
                  <c:out value="${emp.empName}"/>
                </td>
              </tr>
         </c:forEach>
    </table>Cheers,
    evnafets

  • Pls help me.. unable to get past mac login sreen!!

    Hello people, This is my first post and after much searching i am praying someone can help..!
    I have a mac g5 dual, and i am having a really annoying problem, my mac keyboard is not working, sometimes some of the keys work but others dont, or none of the keys work, or when i press a button it types a different letter or types 2 or 3 at once!!
    Therefore i can not get past the login screen as the keys needed for thre password do not work!! not even when i try to log into admin!!
    I have purchased a new keyboard today, (wireless apple) but i can not get that to work as i need to pair it to the mac before it will work but i cant pair without getting past the login screen!!!
    typical that this should happen on my only couple of days off too!!
    pls HELP ME
    thanks in advance..

    Yeah, I tried every port available.
    Is there anyway at all i can get into the system settings with a shortcut on startup?
    Then again Im still not sure that the keys will work to use a shortcut.
    Its odd because i managed (just) to login earlier in the day, but the keyboard just seemed to get steadily worse until none of the keys worked!!
    Cheers Dale
    any other ideas??

  • Can someone pls help me with this code

    The method createScreen() creates the first screen wherein the user makes a selection if he wants all the data ,in a range or single data.The problem comes in when the user makes a selection of single.that then displays the singleScreen() method.Then the user has to input a key data like date or invoice no on the basis of which all the information for that set of data is selected.Now if the user inputs a wrong key that does not exist for the first time the program says invalid entry of data,after u click ok on the option pane it prompts him to enter the data again.But since then whenever the user inputs wrong data the program says wrong data but after displaying the singlescreen again does not wait for input from the user it again flashes the option pane with the invalid entry message.and this goes on doubling everytime the user inputs wrong data.the second wrong entry of data flashes the error message twice,the third wrong entry flashes the option pane message 4 times and so on.What actually happens is it does not wait at the singlescreen() for user to input data ,it straight goes into displaying the JOptionPane message for wrong data entry so we have to click the optiion pane twice,four times and so on.
    Can someone pls help me with this!!!!!!!!!
    import java.util.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import java.util.*;
    public class MainMenu extends JFrame implements ActionListener,ItemListener{
    //class     
         FileReaderDemo1 fd=new FileReaderDemo1();
         FileReaderDemo1 fr;
         Swing1Win sw;
    //primary
         int monthkey=1,counter=0;
         boolean flag=false,splitflag=false;
         String selection,monthselection,dateselection="01",yearselection="00",s,searchcriteria="By Date",datekey,smonthkey,invoiceno;
    //arrays
         String singlesearcharray[];
         String[] monthlist={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"};
         String[] datelist=new String[31];
         String[] yearlist=new String[100];
         String[] searchlist={"By Date","By Invoiceno"};
    //collection
         Hashtable allinvoicesdata=new Hashtable();
         Vector data=new Vector();
         Enumeration keydata;
    //components
         JButton next=new JButton("NEXT>>");
         JComboBox month,date,year,search;
         JLabel bydate,byinvno,trial;
         JTextField yeartext,invtext;
         JPanel panel1,panel2,panel3,panel4;
         JRadioButton single,range,all;
         ButtonGroup group;
         JButton select=new JButton("SELECT");
    //frame and layout declarations
         JFrame jf;
         Container con;
         GridBagLayout gridbag=new GridBagLayout();
         GridBagConstraints gc=new GridBagConstraints();
    //constructor
         MainMenu(){
              jf=new JFrame();
              con=getContentPane();
              con.setLayout(null);
              fr=new FileReaderDemo1();
              createScreen();
              setSize(500,250);
              setLocation(250,250);
              setVisible(true);
    //This is thefirst screen displayed
         public void createScreen(){
              group=new ButtonGroup();
              single=new JRadioButton("SINGLE");
              range=new JRadioButton("RANGE");
              all=new JRadioButton("ALL");
              search=new JComboBox(searchlist);
              group.add(single);
              group.add(range);
              group.add(all);
              single.setBounds(100,50,100,20);
              search.setBounds(200,50,100,20);
              range.setBounds(100,90,100,20);
              all.setBounds(100,130,100,20);
              select.setBounds(200,200,100,20);
              con.add(single);
              con.add(search);
              con.add(range);
              con.add(all);
              con.add(select);
              search.setEnabled(false);
              single.addItemListener(this);
              search.addActionListener(new MyActionListener());     
              range.addItemListener(this);
              all.addItemListener(this);
              select.addActionListener(this);
         public class MyActionListener implements ActionListener{
              public void actionPerformed(ActionEvent a){
                   JComboBox cb=(JComboBox)a.getSource();
                   if(a.getSource().equals(month))
                        monthkey=((cb.getSelectedIndex())+1);
                   if(a.getSource().equals(date)){
                        dateselection=(String)cb.getSelectedItem();
                   if(a.getSource().equals(year))
                        yearselection=(String)cb.getSelectedItem();
                   if(a.getSource().equals(search)){
                        searchcriteria=(String)cb.getSelectedItem();
         public void itemStateChanged(ItemEvent ie){
              if(ie.getItem()==single){
                   selection="single";     
                   search.setEnabled(true);
              else if (ie.getItem()==all){
                   selection="all";
                   search.setEnabled(false);
              else if (ie.getItem()==range){
                   search.setEnabled(false);
         public void actionPerformed(ActionEvent ae){          
              if(ae.getSource().equals(select))
                        if(selection.equals("single")){
                             singleScreen();
                        if(selection.equals("all"))
                             sw=new Swing1Win();
              if(ae.getSource().equals(next)){
                   if(monthkey<9)
                        smonthkey="0"+monthkey;
                   System.out.println(smonthkey+"/"+dateselection+"/"+yearselection+"it prints this");
                   allinvoicesdata=fr.read(searchcriteria);
                   if (searchcriteria.equals("By Date")){
                        System.out.println("it goes in this");
                        singleinvoice(smonthkey+"/"+dateselection+"/"+yearselection);
                   else if (searchcriteria.equals("By Invoiceno")){
                        invoiceno=invtext.getText();
                        singleinvoice(invoiceno);
                   if (flag == false){
                        System.out.println("flag is false");
                        singleScreen();
                   else{
                   System.out.println("its in here");
                   singlesearcharray=new String[data.size()];
                   data.copyInto(singlesearcharray);
                   sw=new Swing1Win(singlesearcharray);
         public void singleinvoice(String searchdata){
              keydata=allinvoicesdata.keys();
              while(keydata.hasMoreElements()){
                        s=(String)keydata.nextElement();
                        if(s.equals(searchdata)){
                             System.out.println(s);
                             flag=true;
                             break;
              if (flag==true){
                   System.out.println("vector found");
                   System.exit(0);
                   data= ((Vector)(allinvoicesdata.get(s)));
              else{
                   JOptionPane.showMessageDialog(jf,"Invalid entry of date : choose again");     
         public void singleScreen(){
              System.out.println("its at the start");
              con.removeAll();
              SwingUtilities.updateComponentTreeUI(con);
              con.setLayout(null);
              counter=0;
              panel2=new JPanel(gridbag);
              bydate=new JLabel("By Date : ");
              byinvno=new JLabel("By Invoice No : ");
              dateComboBox();
              invtext=new JTextField(6);
              gc.gridx=0;
              gc.gridy=0;
              gc.gridwidth=1;
              gridbag.setConstraints(month,gc);
              panel2.add(month);
              gc.gridx=1;
              gc.gridy=0;
              gridbag.setConstraints(date,gc);
              panel2.add(date);
              gc.gridx=2;
              gc.gridy=0;
              gc.gridwidth=1;
              gridbag.setConstraints(year,gc);
              panel2.add(year);
              bydate.setBounds(100,30,60,20);
              con.add(bydate);
              panel2.setBounds(170,30,200,30);
              con.add(panel2);
              byinvno.setBounds(100,70,100,20);
              invtext.setBounds(200,70,50,20);
              con.add(byinvno);
              con.add(invtext);
              next.setBounds(300,200,100,20);
              con.add(next);
              if (searchcriteria.equals("By Invoiceno")){
                   month.setEnabled(false);
                   date.setEnabled(false);
                   year.setEnabled(false);
              else if(searchcriteria.equals("By Date")){
                   byinvno.setEnabled(false);
                   invtext.setEnabled(false);
              monthkey=1;
              dateselection="01";
              yearselection="00";
              month.addActionListener(new MyActionListener());
              date.addActionListener(new MyActionListener());
              year.addActionListener(new MyActionListener());
              next.addActionListener(this);
              invtext.addKeyListener(new KeyAdapter(){
                   public void keyTyped(KeyEvent ke){
                        char c=ke.getKeyChar();
                        if ((c == KeyEvent.VK_BACK_SPACE) ||(c == KeyEvent.VK_DELETE)){
                             System.out.println(counter+"before");
                             counter--;               
                             System.out.println(counter+"after");
                        else
                             counter++;
                        if(counter>6){
                             System.out.println(counter);
                             counter--;
                             ke.consume();
                        else                    
                        if(!((Character.isDigit(c) || (c == KeyEvent.VK_BACK_SPACE) || (c == KeyEvent.VK_DELETE)))){
                             getToolkit().beep();
                             counter--;     
                             JOptionPane.showMessageDialog(null,"please enter numerical value");
                             ke.consume();
              System.out.println("its at the end");
         public void dateComboBox(){          
              for (int counter=0,day=01;day<=31;counter++,day++)
                   if(day<=9)
                        datelist[counter]="0"+String.valueOf(day);
                   else
                        datelist[counter]=String.valueOf(day);
              for(int counter=0,yr=00;yr<=99;yr++,counter++)
                   if(yr<=9)
                        yearlist[counter]="0"+String.valueOf(yr);
                   else
                        yearlist[counter]=String.valueOf(yr);
              month=new JComboBox(monthlist);
              date=new JComboBox(datelist);
              year=new JComboBox(yearlist);
         public static void main(String[] args){
              MainMenu mm=new MainMenu();
         public class WindowHandler extends WindowAdapter{
              public void windowClosing(WindowEvent we){
                   jf.dispose();
                   System.exit(0);
    }     

    Hi,
    I had a similar problem with a message dialog. Don't know if it is a bug, I was in a hurry and had no time to search the bug database... I found a solution by using keyPressed() and keyReleased() instead of keyTyped():
       private boolean pressed = false;
       public void keyPressed(KeyEvent e) {
          pressed = true;
       public void keyReleased(KeyEvent e) {
          if (!pressed) {
             e.consume();
             return;
          // Here you can test whatever key you want
       //...I don't know if it will help you, but it worked for me.
    Regards.

  • Can you pls help me?

    Hi! For part of my homework I have to use a Calendar. A guy in my class gave me a program but it like, doesn't work! When I print out the date I get 9/4/2003 but it's like, May not April! Help me pls!
    Thanx!
    JS

    Hi everyone!
    What did the code look like that this guy gave you?
    System.out.println("9/4/2003"); ??? No! Actually this guy is like, really good at java. That's why I ask him to help me : )
    Welcome back, Jessica. You're like, as good as clockwork.Thanx!
    Jessica, are you blonde by any chance? Whatever! Blonde jokes are sooo last season.
    Sorry I'm going out in 3 hours so I've got to start getting ready now. If anyone's going to chinawhite in London tonight I'll like, see you there!
    JS

Maybe you are looking for

  • My Screen Saver won't turn off on my I-Mac. Is there a way to fix this?

    I have an I-Mac that every once in a while won't turn off it's screen saver when I move the mouse. I can see the mouse move and switch to the screen with the caculator, but I am unable to get the screen saver to stop and view the screen proper. It ha

  • Black screen on MacBook Pro running 10.6.8

    Zapping PRAM, safe reboot, battery removal -- no help. Ideas? Have been using external monitor for about a year since hinge broke and ate the screen in the process. Right now external monitor does give me a "no signal" message at shutdown so I know i

  • Error  - Account requires an assignment to a CO object

    We have created a Debit note for scrap material sale where we are charging "Cheque Dishonour Chg" to the customer. The GL code attached to Cheque Dishonour Chg is a cost element with cost element category 1 - Cost / Cost Reducing Revenue. Hence when

  • The beginning of "dumb" questions coming your way... for your help

    In the track info window: 1) what does the "compressor" do? 2) what does the "equalizer" do? Can't find "descriptions" in GarabeBand help thanks

  • Can't open sales order for a deleted customer number

    Dear all , i have deleted a customer cos it was repeated ,now there were some sales orders where that customer is a sold-to-party when ever i try to open thous sales orders the systems gives an error message [ no customer record exist for sold to par