Help in ORA-22992 erroe

hi .
i have two schama d1 and d2 i create database link between them to create some tables that contain some information about the data in the d1 tables sum,count .....
in d1 there is table that contain blob column i know that this column of blob type couse the error but i do not select it in the query :
select count(recm.RECOMMENDATIONID) count, sum(rp.COST) cost ,dg.DIA DIA ,
to_char(de.F_DATE,'mm-yyyy') F_Date
from decc@EMOH40LNK de inner join requests@EMOH40LNK rq on(rq.REQUESTID = de.REQUESTID)
inner join recomm@EMOH40LNK recm on(recm.RECOMMENDATIONID = de.RECOMMENDATIONID)
inner join RECOMMPro@EMOH40LNK rp on(recm.RECOMMENDATIONID = rp.RECOMMENDATIONID)
inner join DIA@EMOH40LNK dg on(dg.CODE = rq.REQUESTCODE)
where
de.F_DATE>=to_date('','');
so how can do it ........
thak you all.....

Implement the query as a view in database EMOH40LNK, like this:
CREATE OR REPLACE VIEW REMOTE_VIEW AS
select count(recm.RECOMMENDATIONID) count, sum(rp.COST) cost ,dg.DIA DIA ,
to_char(de.F_DATE,'mm-yyyy') F_Date
from decc de inner join requests rq on(rq.REQUESTID = de.REQUESTID)
inner join recomm recm on(recm.RECOMMENDATIONID = de.RECOMMENDATIONID)
inner join RECOMMPro rp on(recm.RECOMMENDATIONID = rp.RECOMMENDATIONID)
inner join DIA dg on(dg.CODE = rq.REQUESTCODE)
where
de.F_DATE>=to_date('','');(sorry, I was sloppy in my original - removed @EMOH40LNK references from query)
Then, in your local database,
SELECT * FROM REMOTE_VIEW@EMOH40LNK ;This should force the query to be resolved in the remote database, so that the LOBs will not be involved in the query over the link.
Edited by: mtefft on Jul 6, 2010 4:47 AM

Similar Messages

  • Creating view containing case statements received error ORA-22992

    We have a create view referencing table through dblink. The select statement in the create view has case statements, when running the Select statement alone, results are return. However, when executing the create view, it returns:
    SQL Error: ORA-22992: cannot use LOB locators selected from remote tables
    22992. 00000 - "cannot use LOB locators selected from remote tables"
    *Cause:    A remote LOB column cannot be referenced.
    *Action:   Remove references to LOBs in remote tables.
    One of the source table has LOB column but not in the select statement. The strange thing is when removing the case statement from the select, create view works fine. Can anybody tell me what caused the error and how to fix it?
    Create View Snippet:
    CREATE OR REPLACE VIEW "ABC"."XYZ" (....
    AS SELECT
    CASE
    WHEN A.OUTAGE =1
    THEN 'Y'
    ELSE 'N'
    END AS OUTAGE,
    FROM
    TABLEA@XXXX A
    LEFT JOIN TABLEB@XXXX B
    ON
    A.LOC =B.LO
    AND A.SITE =B.SITE
    WHERE
    A.CLASS ='CUSTOMER'
    AND A.PLUSSISGIS =1;

    What is your 4 digit Oracle version?
    Try rewriting the query to not use ANSI SQL92 joins. I found a link where this solved a problem similar to yours.
    DBLink problem ORA-22992
    >
    But, look at this curious thing: I re-write the query as follows:
    SELECT A.ID, A.ID_REF, A.EVENDATE, B.DESCRIPTION
    FROM A@ORCL A, B@ORCL B
    WHERE A.ID_REF = B.ID_REF;
    and it works fine... It seems like Oracle don't like the ANSI SQL92...
    >
    Several similar links by googling: 'SQL Error: ORA-22992'
    http://www.dbuggr.com/smallwei/solution-error-ora-22992-lob-locators-selected-remote-tabl/
    >
    Fixing ORA-22992 “cannot use LOB locators selected from remote tables” error
    You have migrated your Oracle 9i database to 10g and a distributed statement which worked fine in 9i now is getting error ORA-22992 “cannot use LOB locators selected from remote tables”. Even though the related remote table(s) does not contain any LOB column datatype.
    FIX:
    There is a bug on 9i,10g, and 11g that is related to this error. It is being fixed in 11.2. It can also be backported for previous 9i, 10g and 11g releases under the latest patchsets.
    You may also do a workaround as follow:
    Modify the affected SQL by adding the TO_CHAR function. For example:
    -- Original SQL:
    SELECT NVL2('a', 'b','c' ) FROM dual@remote_db;
    -- Modified SQL:
    SELECT TO_CHAR(NVL2('a','b','c')) FROM dual@remote_db;
    >
    See if that helps.

  • Materialized view fast refresh ...getting ORA-22992: error

    Hi All,
    Oracle version 11.1.0.7
    While creating a materialized view(Fast refresh) on remote tables ... i am getting the ORA-22992: cannot use LOB locators selected from remote tables ... error.
    but the actual scenario is... i am not selecting any of the BLOB/LOB columns from the remote tables. I did n't include them in my materialized query.
    I am able to refresh it complete but couldn't refresh it fast. Here i want to mention other thing... when ever i have records in Mat view log(Base table has a blob cloumns in it)
    i am getting the above error. when no record in the Mat view log(i.e on BLOB base table) .. i can able to refresh it as FAST.
    MV_CAPABILITIES table tells that ...My Mat view is able to refresh it FAST.I don't know howw to approach to solve this issue.could some one tell me the approach..to solve it?
    Here is the sample code ....this is what i have done so fat
    session 1 (REMOTE_ONE)
    I have created synonyms for the remote tables on current schema. That's why i didn't include @DBLINK.
    create table RT_A ( col1_A varchar2(20), col2_A BLOB,COL3_A NUMBER);
    create a table RT_B (COl1_B varchar2(20), col2_B BLOB, COL3_B NUMBER);
    create a table RT_C (COL1_C varchar2(20), col2_C VARCHAR2,COL3_C NUMBER);
    create  MATERIALIZED VIEW LOG ON RT_A 
    WITH  ROWID EXCLUDING NEW VALUES;
    create  MATERIALIZED VIEW LOG ON RT_B
    WITH  ROWID EXCLUDING NEW VALUES;
    create  MATERIALIZED VIEW LOG ON RT_C 
    WITH  ROWID EXCLUDING NEW VALUES;
    grant select on RT_A to CUURRENT_ONE with grant option;
    grant select on RT_B to CUURRENT_ONE with grant option;
    grant select on RT_C to CUURRENT_ONE with grant option;
    grant select on MLOG$_RT_A to CUURRENT_ONE with grant option;
    grant select on MLOG$_RT_B to CUURRENT_ONE with grant option;
    grant select on MLOG$_RT_C to CUURRENT_ONE with grant option;Session 2 (CUURRENT_ONE)
    create materialized view ABC_MV
    BUILD IMMEDIATE REFRESH FORCE ON DEMAND START WITH SYSDATE NEXT SYSDATE+1
    AS
    select A.ROWID AS A_ROWID,
    B.ROWID as B_ROWID,
    C.ROWID AS C_ROWID,
    A.COL1_A,
    B.col1_B,
    c.col1_c
    from RT_A, RT_B,RT_C
    where COL3_A = COL3_B(+)
    and COL3_B = COL3_C(+)Appreciate your help.
    Thanks,
    Mike

    Thanks for the reply
    In that he/she is selecting the LOB column from the remote database(master site).
    I am just referencing the table which has BLOB column in it.I am not referencing any LOB column in my select(Mat view) query...
    is there anything i need to check..?
    Regards,
    Mike

  • PL/SQL: ORA-22992: cannot use LOB locators selected from remote tables

    Dear ALL,
    My O/S is Redhatlinux 5.2 and i had Migrated my Oracle databse to 11g2. But after that while i am retrieving records through dblinks from one of my other Oracle 9.2.0.8 databse it's throwing the error : PL/SQL: ORA-22992: cannot use LOB locators selected from remote tables.* This error i am getting in TOAD as well as SQL Developer.
    Can anybody tell me how to fix this error ? Because am not able to get the records.
    Also am getting another error during retrieving data from some of my tables after migrating i.e the table which having CLOB data type while am accessing to retrieve the records using select query it's throwing the error :
    +(The following error has occurred:+
    A query with LOB's requires OCI8 mode, but OCI7 mode is used.)
    If anyone having any idea kindly share.
    Thanks and Regards
    Biswa

    Hi,
    Ya what u sent that is fine. But already am using one procudure which is accessing LOB data from another databse through DBlink and working fine. But there Both the databse are 9.2.0.8.
    But while am executing the same procedure in oracle 11g where the Dblink accessing the data from Oracle 9i , there am getting this error.
    Kindly tell if u know any resolution.
    Thanks

  • Ora 22992 -------- CLOB issue

    Hi ,
    I have a database in
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    I have table tableAAA in database1,which has a clob column.
    I want to select the CLOB column to Another database (database2)
    So I create a view
    (create or replace view my_view_tableAAA as select * from tableAAA)
    view created
    select * from schema.my_view_tableAAA@mydblink
    (ORA-22992: cannot use LOB locators selected from remote tables)
    What mistake am i doing ?
    Rgds
    S

    DBLink problem ORA-22992
    Try the above, Google is really useful sometimes.

  • Error ORA-22992, what to do?

    I created database link to another oracle db (same version: 9.2). Now I want to create view for a table with BLOB.
    "create or replace view persons as select * from persons@serv2"
    What can I do?

    http://asktom.oracle.com/pls/ask/f?p=4950:8:9407757796067305436::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:5322964030684
    ORA-22992 cannot use LOB locators selected from remote tables
    Cause: A remote LOB column cannot be referenced.
    Action: Remove references to LOBs in remote tables.

  • Help with ORA-01403: no data found please.

    First off I'd like to apologise for my lack of PL/SQL experience, what follows may seem naive, but I guess we all have to start somewhere.
    I'm trying to create a function which determines an employee's Annual Holiday Entitlement by comparing their length of service against a lookup of entitlement values. Due to the complexity of the application I'm targeting there are a number of other factors to be take into consideration, but this is the basic idea of what I want to achieve.
    I've started by taking a working SQL Server 2005 function and converted this using the translation scratch pad in SQL Developer 1.5.1 I'm now hand cranking the subtleties into the script but when I debug the code I'm getting "ORA-01403: no data found" at almost every SELECT. In fact the only successful select is from the ABS_SYSTEM_CONTROLS table. I can handle the first few failures by setting default values in the variables that I'm trying to load, but this isn't an option when it comes to selecting the DATE_OF_START from the PERSON table.
    I've sure I've probably made some fundamental error, but can't spot it myself. Any help would be most welcome.
    I've included the entire script below for your entertainment ;-)
    Thanks
    Phil.
    create or replace
    function mygetannualholidayentitlement
    ( v_empNo in varchar2
    , v_inputDate in DATE
    ) return number as
       -- Declare variables here
       v_entitlement FLOAT(53);
       v_holidayPlan VARCHAR2(20);
       v_contServiceOption VARCHAR2(255);
       v_postNo CHAR(16);
       v_lengthOfService NUMBER(10,2) ; -- Need to give this a default value else the CURSOR (below) won't initialise.
       v_empStartDate DATE;
       -- Load up our loacal variable for each row in the loop and the final value is the one we want.
       v_selectedLOF FLOAT(53);
       v_selectedDateEffective DATE;
       v_selectedAmount FLOAT(53);
       v_effectiveDate DATE;
       -- Cursor declaration
       -- Holiday plan details are also keyed on DATE_EFFECTIVE.  Need to identify which row is active as at our @effectiveDate.
       CURSOR holDefCursor
         IS SELECT length_of_service,
       date_effective,
       amount
         FROM holiday_plan_def
          WHERE hplan_code = v_holidayPlan
         AND length_of_service < v_lengthOfService
         ORDER BY date_effective ASC,
       length_of_service ASC;
    BEGIN
       -- Initialise variables --
       -- truncate any hours/Mins & secs from effective date
       v_effectiveDate := trunc(v_inputdate);
       v_entitlement := 0;
       v_contServiceOption := 0;
       v_lengthOfService := 0;
       BEGIN
       SELECT HPLAN_CODE
         INTO v_holidayPlan
         FROM APPT_HOLIDAY_BALANCE
          WHERE emp_no = v_empNo
                  --          post_no = @postNo and
                  AND ( v_effectiveDate BETWEEN HOLIDAY_YEAR_START AND HOLIDAY_YEAR_END );
       EXCEPTION
       WHEN NO_DATA_FOUND THEN
          v_holidayplan:=NULL;
       WHEN OTHERS THEN
           raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
       END;
       -- Still no hoildayPlan? Then use the default plan code from ABS_SYSTEM_CONTROLS.
       IF v_holidayPlan IS NULL THEN
          SELECT HPLAN_CODE
            INTO v_holidayPlan
            FROM ABS_SYSTEM_CONTROLS ;
       END IF;
       BEGIN
        SELECT OPTION_VALUE
          INTO v_contServiceOption
          FROM PS_OPTIONS
           WHERE OPTION_NAME = 'CONTINUOUS_SERVICE_OPTION';
       EXCEPTION
       WHEN NO_DATA_FOUND THEN
          v_contServiceOption := 'N' ;
       WHEN OTHERS THEN
           raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
       END;
       IF v_contServiceOption = 'Y' THEN
       BEGIN
          -- Need to take into account the employees CONTINUOUS_SERVICE_DATE when calculating length of service
          BEGIN
          SELECT CONTINUOUS_SERVICE_DATE
            INTO v_empStartDate
            FROM person
             WHERE emp_no = v_empNo;
          EXCEPTION  
            WHEN NO_DATA_FOUND THEN
              v_empStartDate := NULL;
            WHEN OTHERS THEN
              raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
          END;
          -- If we can't get a CONTINUOUS_SERVICE_DATE we will fall back to PERSON.DATE_OF_START
          IF v_empStartDate IS NULL THEN
          BEGIN
             SELECT DATE_OF_START
               INTO v_empStartDate
               FROM PERSON
                WHERE emp_no = v_empNo;
          EXCEPTION  
            WHEN OTHERS THEN
              raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
          END;
          END IF;
       END;
       ELSE
       BEGIN
          -- Need to use employees DATE_OF_START when calculating length of service
          SELECT DATE_OF_START
            INTO v_empStartDate
            FROM PERSON
             WHERE emp_no = v_empNo;
       END;
       END IF;
       -- Now we can get length of service
       v_lengthOfService := sqlserver_utilities.datediff('MONTH', v_empStartDate, v_effectiveDate) / 12.00;
       OPEN holDefCursor;
       FETCH holDefCursor INTO v_selectedLOF,v_selectedDateEffective,v_selectedAmount;
       WHILE ( sqlserver_utilities.fetch_status(holDefCursor%FOUND) = 0 )
       LOOP
          BEGIN
             IF v_selectedDateEffective < v_effectiveDate THEN
                v_entitlement := v_selectedAmount;
             END IF;
             -- Get the next value.
             FETCH holDefCursor INTO v_selectedLOF,v_selectedDateEffective,v_selectedAmount;
          END;
       END LOOP;
       CLOSE holDefCursor;
       -- Return the result of the function
       RETURN v_entitlement;
    END;Edited by: user4395499 on 27-Oct-2008 04:04
    Edited by: user4395499 on 27-Oct-2008 04:05
    Edited by: user4395499 on 27-Oct-2008 07:10

    Your code is extremely procedural - whilst you could ultimately get it to work like this, it is not the most efficient way of doing it.
    You should think about reducing your code to one sql statement if at all possible - this reduces the amount of context switching that needs to take place (eg. Going from PL/SQL to SQL back to PL/SQL to SQL, etc) and is usually much easier to maintain and test. You could do this by joining the various tables together, (and you might want to think about using nvl() to combine the two queries on the PERSON table!).
    Also, you've labelled your parameters "v_" and your variables "v_" ... common convention uses "p_" for parameters, to allow for easy distinction between parameters passed in and variables declared during the course of the procedure/function.
    As to the char() defined column - is there any chance that you could change that? As you've found out, chars are usually not a good datatype to use! Storing numbers in a char/varchar2 column is a no-no too, as you then run the risk of having invalid numbers stored in the column.

  • Help with ORA 14400 error while inserting data

    Hi all,
    i am facing an ora 14400 error in the following scenario , please help.
    i have created a table using the syntax:
    CREATE TABLE temp_table
    GRPKEY NUMBER(20, 0) NOT NULL,
    UKEY NUMBER(10, 0),
    ANUM VARCHAR2(250 BYTE),
    APC VARCHAR2(2 BYTE),
    SID VARCHAR2(65 BYTE),
    RDATETIME VARCHAR2(19 BYTE),
    CKEY NUMBER(20, 0),
    AVER VARCHAR2(25 BYTE),
    CVER VARCHAR2(250 BYTE),
    TNAME VARCHAR2(50 BYTE),
    SCODE VARCHAR2(30 BYTE),
    PTYPE VARCHAR2(50 BYTE),
    FILENUMB NUMBER(10, 0),
    LINENUMB NUMBER(10, 0),
    ENTRY_CREATEDDATE DATE
    , CONSTRAINT temp_table_PK PRIMARY KEY (GRPKEY))
    PARTITION BY RANGE(ENTRY_CREATEDDATE)
    (PARTITION P0 VALUES LESS THAN(TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    when i try to insert data using :
    insert into temp_table values
    (1,null,null,null,null,null,null,null,null,null,null,null,null,null,'01-NOV-2010');
    i get the following error output:
    Error report:
    SQL Error: ORA-14400: inserted partition key does not map to any partition
    14400. 00000 - "inserted partition key does not map to any partition"
    *Cause:    An attempt was made to insert a record into, a Range or Composite
    Range object, with a concatenated partition key that is beyond
    the concatenated partition bound list of the last partition -OR-
    An attempt was made to insert a record into a List object with
    a partition key that did not match the literal values specified
    for any of the partitions.
    *Action:   Do not insert the key. Or, add a partition capable of accepting
    the key, Or add values matching the key to a partition specification

    Hi Chaitanya,
    Change your table script to
    CREATE TABLE temp_table
    GRPKEY NUMBER(20, 0) NOT NULL,
    UKEY NUMBER(10, 0),
    ANUM VARCHAR2(250 BYTE),
    APC VARCHAR2(2 BYTE),
    SID VARCHAR2(65 BYTE),
    RDATETIME VARCHAR2(19 BYTE),
    CKEY NUMBER(20, 0),
    AVER VARCHAR2(25 BYTE),
    CVER VARCHAR2(250 BYTE),
    TNAME VARCHAR2(50 BYTE),
    SCODE VARCHAR2(30 BYTE),
    PTYPE VARCHAR2(50 BYTE),
    FILENUMB NUMBER(10, 0),
    LINENUMB NUMBER(10, 0),
    ENTRY_CREATEDDATE DATE
    , CONSTRAINT temp_table_PK PRIMARY KEY (GRPKEY))
    PARTITION BY RANGE(ENTRY_CREATEDDATE)
    (PARTITION P0 VALUES LESS THAN(TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
    PARTITION P1 VALUES LESS THAN(MAXVALUE)
    insert into temp_table values
    (1,null,null,null,null,null,null,null,null,null,null,null,null,null,'01-NOV-2010');
    1 row insertedor refer question regarding "Date Partitioning a table"
    *009*
    Edited by: 009 on Nov 3, 2010 11:29 PM

  • Need help on  ORA-02074: cannot SET NLS in a distributed transaction

    Hi All,
    I am Writing a plsql Code like this
    DECLARE
    op_job_id NUMBER;
    op_object_version_number NUMBER;
    x_job_definition_id NUMBER;
    op_name VARCHAR2(1000);
    L_VERIFY_FLAG VARCHAR2(1);
    l_error_message VARCHAR2(2000);
    BG_ID NUMBER;
    lv_job_group_id APPS.per_job_groups.job_group_id@SYSTEM_LINK_VISMA%TYPE;
    CURSOR C1 IS SELECT * FROM EBS_PER_JOBS_STG;
    BEGIN
    FOR H1 IN C1
    LOOP
    BEGIN
    IF H1.BUSINESS_GROUP_NAME IS NOT NULL THEN
    SELECT BUSINESS_GROUP_ID,job_group_id INTO BG_ID,lv_job_group_id
    FROM APPS.PER_JOB_GROUPS@SYSTEM_LINK_VISMA
    WHERE DISPLAYED_NAME=H1.JOB_GROUP_NAME;
    END IF;
    EXCEPTION
    WHEN OTHERS THEN
    L_VERIFY_FLAG := 'E';
    l_error_message := 'Entered Job Group Name is Wrong';
    END;
    -->> JOB GROUP ID <<--
    APPS.hr_job_api.CREATE_JOB@SYSTEM_LINK_VISMA
    (p_business_group_id => BG_ID
    ,p_date_from => H1.DATE_FROM
    ,p_approval_authority => H1.APPROVAL_AUTHORITY
    ,p_emp_rights_flag => H1.EMP_RIGHTS_FLAG
    ,p_benchmark_job_flag => H1.BENCHMARK_JOB_FLAG
    ,p_job_group_id => lv_job_group_id
    ,p_job_information1 => H1.JOB_INFORMATION1
    ,p_job_information2 => H1.JOB_INFORMATION2
    ,p_job_information3 => H1.JOB_INFORMATION3
    ,p_job_information4 => H1.JOB_INFORMATION4
    ,p_job_information5 => H1.JOB_INFORMATION5
    ,p_job_information6 => H1.JOB_INFORMATION6
    ,p_job_information7 => H1.JOB_INFORMATION7
    ,p_segment3 => H1.JOB_CODE --JOB_CODE
    ,p_segment6 => H1.JOB_NAME --JOB_NAME
    ,p_job_id => op_job_id
    ,p_object_version_number => op_object_version_number
    ,p_job_definition_id => x_job_definition_id
    ,p_name => op_name);
    dbms_output.PUT_LINE('OUTPUT JOB NAME CREATED : '||op_name);
    END LOOP;
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.PUT_LINE('Error Message Is: '||SQLERRM);
    END;
    i am running it in Another database Using database link connecting to Apps.
    when i am running it am getting the following Error:
    Error Message Is: ORA-02074: cannot SET NLS in a distributed transaction
    ORA-06512: at "APPS.HR_KFLEX_UTILITY", line 2423
    ORA-06512: at "APPS.HR_KFLEX_UTILITY", line 2380
    ORA-06512: at "APPS.PER_JBT_UPD", line 468
    ORA-02074: cannot SET NLS in a distributed transaction
    ORA-06512: at "APPS.HR_JOB_API", line 878
    Please help me on this, this is quite urgent to me.
    thanks
    sri

    Please see these docs.
    ORA-02074: Cannot SET NLS in a Distributed Transaction [ID 556391.1]
    Portal Used To Call PO_CHANGE_API1_S: ORA-20001: ORA-02074: Cannot SET NLS In A Distributed Transaction [ID 561246.1]Why are Concurrent Programs Calling FND_GLOBAL.APPS_INITIALIZE Using DBLinks Failing? [ID 466800.1]
    ORA-02074 when Executing set_nls over a DB Link [ID 132679.1]
    Thanks,
    Hussein

  • Urgent help with ORA-01062: unable to allocate memory for define buffer

    Hello, Folks!
    I have a c++ code that is using OCI API that is running both in
    windows and in spark.
    (The same c++ code compiled and running in both platforms)
    and asking the same query.
    In windows, everything is OK but in spark
    it failes...
    The ORACLE Server is installed on win2003 station
    Both client and server ORACLE version is 10.2.0.1.0
    The code is running on spark(oracle instant client is installed)
    This query is a simple select query that selects only one field
    of type VARCHAR2(4000) (the same problem with happen with any
    string type field larger than 150 characters)
    The error occured when calling for OCIDefineByPos method
    when associating an item in a select-list with the type and output
    data buffer.
    The error message is: ORA-01062: unable to allocate memory for define
    buffer
    (This error message signifies that I need to use piecewise operation...)
    But it happens even if I make this varchar2 field to be of size larger
    than 150.
    It is not fair to use piecewise fetch for such a small fields sizes.
    May be there is not configuration setting that can enlarge this
    I know that I wrote here a very superficial description.
    If somebody knows something about this issue, please help
    Thanks

    I had a special luck today after searching the solution per weeks:)I have got a solution.
    When I get the size of the oci field, in the following expressioin
    l_nResult = OCIAttrGet(l_oParam->pOCIHandle(), OCI_DTYPE_PARAM, &(orFieldMD.m_nSize), NULL, OCI_ATTR_DATA_SIZE, m_oOCIErrInfo.pOCIError());
    orFieldMD.m_nSize was of type ub4 but according the manual it must be ub2.
    As a result, the number returned was very large (junk?) and I passed this value to OCIDefineByPos
    Now I changed the type and everything is working!!!
    In windows there is not problem with this expression :)
    Thanks
    Issahar

  • Help! ORA-03113 while compiling certain packages!

    Hello everyone
    Recently we migrated our PLSQL code from Oracle 8.1.7.0 to 9.2.0.4.
    While compiling our packages in 9i, we are getting the ORA-03113: end-of-file on communication channel error.
    This happens only when we compile two particular packages.
    And then when we connect again immediately, and recompile the same package, it gets compiled.
    This is only happening for two packages, frequently. All other packages are not giving this error.
    Why could this be happening? Any pointers to this would really help.
    Thanks
    Bob

    ORA-3113 often throws a .TRC file in the USER_DUMP_DEST directory. That might give you a clue.
    Cheers, APC

  • Please Help, Error:ORA-06550

    I am calling a stored procedure in a package LDAP_AUTH ,this SP will take 3 input arguments which are varchar2.when I am calling the SP I am getting error.The SP is running fine in SQL * Plus. Pls help me on this.Pls mail me at [email protected]
    I used cmd.ExecuteNonQuery() i am getting the following error.
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'LOGIN'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    ************ Procedure Code Start *****************
    procedure login(p_user_id in varchar2, p_password in varchar2, p_client_identifier in Varchar2)
    as
    retval PLS_INTEGER;
    ldap_host varchar2(255):=get_host;
    ldap_port number:=get_port;
    user_id varchar2(100):=p_user_id;
    password varchar2(255) := p_password;
    base_dn cmm_preference_map_entry.preference_value_1%type := get_base_dn;
    username_filter cmm_preference_map_entry.preference_value_1%type := replace(get_ldap_username_filter,'%u',user_id);
    group_filter cmm_preference_map_entry.preference_value_1%type := get_ldap_group_member_filter;
    my_session DBMS_LDAP.session;
    res_message DBMS_LDAP.MESSAGE;
    res_attrs DBMS_LDAP.STRING_COLLECTION;
    temp_dn VARCHAR2(512);
    temp_entry DBMS_LDAP.MESSAGE;
    entry_index PLS_INTEGER;
    v_string_table v_string_table_ty;
    i number:=1;
    m number:=1;
    v_user_session_id number;
    pragma autonomous_transaction;
    begin
    DBMS_LDAP.USE_EXCEPTION := TRUE;
    retval := -1;
    -- Initialize the LDAP session
    my_session := DBMS_LDAP.init(ldap_host,ldap_port);
    --Authenticate to the directory
    --retval :=DBMS_LDAP.simple_bind_s(my_session, 'uid=wayyen,ou=people,o=Enterprise Company,dc=smartchain','wayyen');
    retval :=DBMS_LDAP.simple_bind_s(my_session, '','');
    --res_attrs(1):='cn';
    retval := DBMS_LDAP.SEARCH_S(
    ld => my_session
    , base => base_dn
    , scope => DBMS_LDAP.SCOPE_SUBTREE
    , filter => username_filter
    , attrs => res_attrs
    , attronly => 0
    , res => res_message
    temp_entry := DBMS_LDAP.FIRST_ENTRY(my_session, res_message);
    temp_dn := DBMS_LDAP.GET_DN(my_session, temp_entry);
    -- dbms_output.put_line('User DN: '||temp_dn);
    retval :=DBMS_LDAP.simple_bind_s(my_session, TEMP_DN, p_password);
    res_attrs.delete;
    res_attrs(1):='*';
    retval := DBMS_LDAP.SEARCH_S(
    ld => my_session
    , base => base_dn
    , scope => DBMS_LDAP.SCOPE_SUBTREE
    , filter => replace(get_ldap_group_member_filter,'%M',temp_dn)
    , attrs => res_attrs
    , attronly => 0
    , res => res_message
    -- retval := DBMS_LDAP.COUNT_ENTRIES(my_session, res_message);
    -- DBMS_OUTPUT.PUT_LINE(
    -- RPAD('Number of Entries ', 25, ' ') || ': ' || TO_CHAR(retval)
    temp_entry := DBMS_LDAP.FIRST_ENTRY(my_session, res_message);
    entry_index := 1;
    while temp_entry is not null
    loop
    -- dbms_output.put_line('***Group DN**** '||DBMS_LDAP.get_dn(my_session, temp_entry));
    v_string_table(i):=DBMS_LDAP.get_dn(my_session, temp_entry);
    i := i + 1;
    temp_entry := DBMS_LDAP.NEXT_ENTRY(my_session, temp_entry);
    -- DBMS_OUTPUT.PUT_LINE('===================================================');
    entry_index := entry_index + 1;
    END LOOP;
    create_user_session(p_user_id, v_string_table, v_user_session_id);
    ldap_ctx_pkg.set_session_id(v_user_session_id, p_client_identifier);
    dbms_output.put_line('user_session_id: '||v_user_session_id);
    commit;
    retval := DBMS_LDAP.UNBIND_S(my_session);
    end login;
    ************ Procedure Code End*****************
    Web.config
    <appSettings>
    <!--<add key="BaseURLSite" value="http://localhost/SaviReportsWebSite"/>
    <add key="DataSource" value="SRIRAMA-D620"/>
    <add key="UID" value="sa"/>
    <add key="PWD" value="satyam"/>
    <add key="DatabaseName" value="Employee"/>-->
    <add key="BaseURLSite" value="http://localhost/SaviReportsWebSite"/>
    <add key="UID" value="rpt$928$syn"/>
    <add key="PWD" value="rpt$928$syn"/>
    <add key="Data Source" value="AURORA"/>
    <add key="ReportService2005WebService.ReportService2005" value="http://localhost/ReportServer/ReportService2005.asmx"/>
    </appSettings>
    Public Function check_Login(ByVal strLoginIDDesc As String, ByVal strPasswordDesc As String, ByVal strSessionIDDesc As String) As Boolean
    Dim strSQL As String
    'Dim dsHomePage As DataSet
    Dim OracleParam(2) As OracleParameter
    Dim blnStatus As Boolean = False
    Dim gStrConnection As String = Nothing
    gStrConnection = "Persist Security Info=False;"
    gStrConnection += "Integrated Security=False;"
    gStrConnection += "User ID=" + ConfigurationManager.AppSettings("UID") + ";"
    gStrConnection += "pwd=" + ConfigurationManager.AppSettings("PWD") + ";"
    gStrConnection += "Data Source=" + ConfigurationManager.AppSettings("Data Source")
    Dim OracleConnection1 As New OracleConnection(gStrConnection)
    Dim cmd As New OracleCommand
    Dim rowsAffected As Integer
    Dim index As Integer
    cmd.CommandText = "ldap_auth.login"
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Connection = OracleConnection1
    OracleConnection1.Open()
    OracleParam(0) = New OracleParameter("LoginIDDesc", OracleType.LongVarChar)
    OracleParam(0).Direction = ParameterDirection.Input
    OracleParam(0).Value = strLoginIDDesc
    OracleParam(1) = New OracleParameter("PasswordDesc", OracleType.LongVarChar)
    OracleParam(1).Direction = ParameterDirection.Input
    OracleParam(1).Value = strPasswordDesc
    OracleParam(2) = New OracleParameter("SessionIDDesc", OracleType.LongVarChar)
    OracleParam(2).Direction = ParameterDirection.Input
    OracleParam(2).Value = strSessionIDDesc
    Dim UBound As Integer = OracleParam.Length
    For index = 0 To UBound - 1
    cmd.Parameters.Add(OracleParam(index))
    Next
    rowsAffected = cmd.ExecuteNonQuery()
    OracleConnection1.Close()
    If rowsAffected = -1 Then
    blnStatus = True
    End If
    Return blnStatus
    End Function
    Regards,
    SriRam.

    alter table tableName drop constraint constraintName ;
    You cannot drop an index being used to enforce uniqueness. You must drop the constraint - which will also drop the index. You also cannot drop a unique constraint being used as a reference of a foreign key. Adding the keyword CASCADE will allow you to get around that, but it will destroy the FK references.
    alter table tableName drop constraint constraintName CASCADE ;

  • Help on ORA-01785: ORDER BY item must be the number of a SELECT-list expres

    Hi
    Please find the SQL below . I am unable to place ORDER bY upper(column) due to error ORA-01785: ORDER BY item must be the number of a SELECT-list expression. Please help
    SELECT engn_cnslt_list.cnslt_hcp_id "hcp_id",
    hcp.first_nm "first_nm", hcp.last_nm "last_nm",
    FROM cnslt_engn, engn_tier_dtl, engn_cnslt_list, hcp
    WHERE cnslt_engn.cnslt_engn_id = engn_cnslt_list.cnslt_engn_id
    AND engn_cnslt_list.cnslt_hcp_id = hcp.hcp_id
    AND engn_tier_dtl.cnslt_engn_id = cnslt_engn.cnslt_engn_id
    AND engn_tier_dtl.engn_tier_dtl_id =
    engn_cnslt_list.engn_tier_dtl_id
    AND cnslt_engn.cnslt_engn_id = 100643
    AND engn_cnslt_list.cnslt_hcp_id NOT IN (
    SELECT hcp_id
    FROM mtg_cnslt_list
    WHERE cnslt_mtg_id IN (SELECT cnslt_mtg_id
    FROM cnslt_mtg
    WHERE cnslt_engn_id = 1000643)
    AND hcp_id IS NOT NULL)
    UNION
    SELECT mtg_cnslt_list.hcp_id "hcp_id", hcp.first_nm "first_nm",
    hcp.last_nm "last_nm",
    FROM cnslt_mtg,
    cnslt_engn,
    mtg_cnslt_list,
    engn_tier_dtl,
    engn_cnslt_list,
    hcp
    WHERE cnslt_engn.cnslt_engn_id = cnslt_mtg.cnslt_engn_id
    AND cnslt_engn.cnslt_engn_id = engn_cnslt_list.cnslt_engn_id
    AND engn_cnslt_list.cnslt_hcp_id = mtg_cnslt_list.hcp_id
    AND engn_cnslt_list.cnslt_hcp_id = hcp.hcp_id
    AND cnslt_mtg.cnslt_mtg_id = mtg_cnslt_list.cnslt_mtg_id
    AND engn_tier_dtl.cnslt_engn_id = cnslt_engn.cnslt_engn_id
    AND mtg_cnslt_list.engn_tier_dtl_id =
    engn_tier_dtl.engn_tier_dtl_id
    AND cnslt_engn.cnslt_engn_id = 1000643
    order by upper(last_nm),upper(first_nm)

    try:
    select * from (SELECT engn_cnslt_list.cnslt_hcp_id "hcp_id",
    hcp.first_nm "first_nm", hcp.last_nm "last_nm",
    FROM cnslt_engn, engn_tier_dtl, engn_cnslt_list, hcp
    WHERE cnslt_engn.cnslt_engn_id = engn_cnslt_list.cnslt_engn_id
    AND engn_cnslt_list.cnslt_hcp_id = hcp.hcp_id
    AND engn_tier_dtl.cnslt_engn_id = cnslt_engn.cnslt_engn_id
    AND engn_tier_dtl.engn_tier_dtl_id =
    engn_cnslt_list.engn_tier_dtl_id
    AND cnslt_engn.cnslt_engn_id = 100643
    AND engn_cnslt_list.cnslt_hcp_id NOT IN (
    SELECT hcp_id
    FROM mtg_cnslt_list
    WHERE cnslt_mtg_id IN (SELECT cnslt_mtg_id
    FROM cnslt_mtg
    WHERE cnslt_engn_id = 1000643)
    AND hcp_id IS NOT NULL)
    UNION
    SELECT mtg_cnslt_list.hcp_id "hcp_id", hcp.first_nm "first_nm",
    hcp.last_nm "last_nm",
    FROM cnslt_mtg,
    cnslt_engn,
    mtg_cnslt_list,
    engn_tier_dtl,
    engn_cnslt_list,
    hcp
    WHERE cnslt_engn.cnslt_engn_id = cnslt_mtg.cnslt_engn_id
    AND cnslt_engn.cnslt_engn_id = engn_cnslt_list.cnslt_engn_id
    AND engn_cnslt_list.cnslt_hcp_id = mtg_cnslt_list.hcp_id
    AND engn_cnslt_list.cnslt_hcp_id = hcp.hcp_id
    AND cnslt_mtg.cnslt_mtg_id = mtg_cnslt_list.cnslt_mtg_id
    AND engn_tier_dtl.cnslt_engn_id = cnslt_engn.cnslt_engn_id
    AND mtg_cnslt_list.engn_tier_dtl_id =
    engn_tier_dtl.engn_tier_dtl_id
    AND cnslt_engn.cnslt_engn_id = 1000643
    order by upper(last_nm),upper(first_nm)

  • Help for: ORA-01103: database name PRIMARY in control file is not STANDBY

    Hello all, this will be my first post to the support forum. I'm an associate dba with just 6 months on the job, so if I've forgotten something or not given some infromation that is needed please let me know.
    I've also combed the forums/internet, and some of the answers haven't helped. The Oracle Document ORA-1103 While Mounting the Database Using PFILE [ID 237073.1] says my init.ora file is corrupted, but creating a new init.ora file from the spfile does not help. Neither does just starting from the spfile. I have older copies of the init.ora file and the spfiles that the database was running on previously, so I believe they are good.
    This standby NIRNASD1 has existed previously, I had to refresh the primary NIKNASD2, and then re-instantiate NIRNASD1 after the refresh is complete.
    My env is set correctly, and my ORACLE_SID has been exported to NIRNASD1
    NIKNASD2 = Primary Database
    NIRNASD1 = Secondary/Standby Database
    Goal: Creation of Logical Standby NIRNASD1 after creating Physical Standby from NIKNASD2
    My database versions are 10.2.0.4.0, and the databases are on a Unix server. Both databases are located on separate servers.
    Steps that I have taken:
    I used RMAN to backup our primary database to the staging area:
    $ rman target /
    run {
    backup database
    format '/datatransa/dg_stage/%U'
    include current controlfile for standby;
    sql "alter system archive log current";
    backup archivelog all format '/datatransa/dg_stage/%U';
    I used RMAN to Create Secondary Database utilizing RMAN DUPLICATE command.
    RMAN> run {
    2> allocate auxiliary channel auxdisk device type disk;     
    3> duplicate target database for standby NOFILENAMECHECK;
    4> }
    On Secondary database I started Managed Recovery mode
    SQL> shutdown immediate;
    ORA-01109: database not open
    Database dismounted.
    ORACLE instance shut down.
    (I used pfile here, thinking that I needed to mount the database to the pfile so that the database would see the change in the dataguard parameters in the init.ora file, the change from logical to physical- I commeneted out the logical and uncommented the physical line)
    # Dataguard Parameters
    For logical standby, change db_name to name of standby database.
    db_name=NIKNASD2 ### for physical, db_name is same as primary
    #db_name=NIRNASD1 ### for logical, db_name is same as unique_name
    SQL> STARTUP MOUNT PFILE = /oraa/app/oracle/product/1020/admin/NIRNASD1/pfile/initNIRNASD1.ora;
    ORACLE instance started.
    Total System Global Area 1577058304 bytes
    Fixed Size 2084368 bytes
    Variable Size 385876464 bytes
    Database Buffers 1174405120 bytes
    Redo Buffers 14692352 bytes
    Database mounted.
    SQL> ALTER DATABASE recover managed standby database using current logfile disconnect;
    I then verified the Data Guard Configuration by using “alter system archive log current;” on the primary database and watching the sequence number change in the secondary database.
    I made sure that:
    •     The primary database was in MAXIMUM PERFORMANCE MODE
    •     Stopped managed recover on the standby database: alter database recover managed standby database cancel;
    •     Built a logical standby data dictionary on the primary database
    •     The db_name in init.ora was changed (this is in our document at my job)
    •     I changed my database name (from physical to logical) in my init.ora pfile (reverse of what I did above)
    # Dataguard Parameters
    For logical standby, change db_name to name of standby database.
    #db_name=NIKNASD2 ### for physical, db_name is same as primary
    db_name=NIRNASD1 ### for logical, db_name is same as unique_name
    I then went to shutdown my standby database and re-start it in a mount exclusive state, which is where I get the ORA-01103 Error (Again I used the pfile, thinking that I needed to tell the database it is now a logical standby):
    SQL> shutdown immediate;
    ORA-01109: database not open
    Database dismounted.
    ORACLE instance shut down.
    SQL> STARTUP EXCLUSIVE MOUNT PFILE = /oraa/app/oracle/product/1020/admin/NIRNASD1/pfile/initNIRNASD1.ora;
    ORACLE instance started.
    Total System Global Area 1577058304 bytes
    Fixed Size 2084368 bytes
    Variable Size 385876464 bytes
    Database Buffers 1174405120 bytes
    Redo Buffers 14692352 bytes
    ORA-01103: database name 'NIKNASD2' in control file is not 'NIRNASD1'
    From what I understand of the process, the name in the control file is correct, I want it to be NIRNASD1. But the database for some reason thinks it should be NIKNASD2. The following are the parts of my init.ora file that include the dataguard parameters:
    # Database Identification
    db_domain=""
    #db_name=NIRNASD1
    #db_unique_name=NIRNASD1
    # File Configuration
    control_files=("/oradba2/oradata/NIRNASD1/control01.ctl", "/oradba3/oradata/NIRNASD1/control02.ctl", "/oradba4/oradata/NIRNASD1/control03.ctl")
    # Instance Identification
    instance_name=NIRNASD1
    # Dataguard Parameters
    #db_name=NIKNASD2 ### for physical, db_name is same as prmary
    db_name=NIRNASD1 ### for logical, db_name is same as unique_name
    db_unique_name=NIRNASD1
    dg_broker_start=TRUE
    db_file_name_convert='NIKNASD2','NIRNASD1'
    log_file_name_convert='NIKNASD2','NIRNASD1'
    log_archive_config='dg_config=(NIRNASD1,NIKNASD2)'
    log_archive_dest_1='LOCATION="/oraarcha/NIRNASD1/" valid_for=(ONLINE_LOGFILES,all_roles) db_unique_name=NIRNASD1'
    #log_archive_dest_2='LOCATION="/oraarcha/NIKNASD2/" valid_for=(standby_logfiles,standby_roles) db_unique_name=NIRNASD1'
    log_archive_dest_2='LOCATION="/oraarcha/NIKNASD2/" valid_for=(standby_logfile,standby_role) db_unique_name=NIRNASD1'
    STANDBY_ARCHIVE_DEST='LOCATION=/oraarcha/NIKNASD2/'
    # Parameters are not needed since this server will NOT become primary
    #log_archive_dest_2='service=NIKNASD2
    # valid_for=(online_logfiles,primary_role)
    # db_unique_name=NIKNASD2'
    fal_server='NIKNASD2'
    fal_client='NIRNASD1'
    I would appreciate any help, or pointing me in the right direction. I'm just missing something. I am reviewing the documents for building a physical and logical standby from oracle. Just not sure where to go from here.
    Thank you
    Edited by: 977917 on Dec 19, 2012 5:49 PM

    First of all, thank you both for answering my post. I've pulled up Mr. Hesse's page and will make it a go-to staple.
    We're in the process of upgrading our databases, but we have 130+ databases and only six Oracle dba's, and I'm one of them. It's a large corporation, and things move at a "slow and tested" pace.
    The pfile parameters listed above are from my secondary/standby database. And I do want to create a logical standby.
    I forgot to mention that we do use DataGuard Broker, but I did not think that would be the cause of why the database was starting up incorrectly, so I did not mention it. My apologies there.
    As far as the db_name, here's my question on that. It's my understanding the the db_name should be the name of the primary database when you are working with a physical standby, but as soon as you convert it to logical, you should change the db_name to the secondary/standby database? Am I correct on that?
    Leading from that, during the process of creating the physical standby and converting the physical standby to the logical standby, should I change the db_name in the secondary/standby database in the spfile and never use the pfile at all? For instance, when I create the physical standby I have to change the db_name in the standby to the PRIMARY database, so that makes me think I should change db_name in the spfile? (If you see above, I changed db_name in the pfile and did a startup pfile)
    This morning I was able to reach out to a fellow DBA (they are were asleep when I posted this last night), and they tried a few things. We had a redirect in the standby directory /oraa/app/oracle/product/1020/dbs folder that looked like this: spfileNIRNASD1.ora -> /oraa/app/oracle/product/1020/admin/NIRNASD1/pfile/spfileNIRNASD1.ora
    She removed the redirect and the startup mount exclusive then worked without the error.
    Thank you again for your help Mr.Quluzade and Mr. Hesse, I appreciate you all taking the time to teach someone new to the craft. I will definitely read up on the link that you sent me.
    Chris Cranford

  • Please share me the latest Oracle Help files (ora.hlp, sql.hlp, plsql.hlp)

    Dear my good friends,
    Would you kindly share the latest Oracle Help files of Oracle 10g version or show me the url address (http://...) to download those Help files.
    Some help files of Oracle such as: ora.hlp, sql.hlp, plsql.hlp, etc.
    Thank you very much for your help.
    Best Regards,
    Anna Mary.

    The HTML doc seems to be enough.<br>
    We have installed it on one of our webserver for internal usage, and it works fine.<br>
    <br>
    Nicolas.

Maybe you are looking for

  • Error - G/L account 407350 requires a valid tax codeu201D.

    I am getting error "G/L account 407350 requires a valid tax codeu201D, while executing F-28 transaction. IF there are any User-exit available to resole this issue ?

  • APEX 3.0: Report attribute caching

    Hi, I saw that the cached report attributes (like Number of Rows) are discarded when they are changed in the APEX Builder. That's great and a big improvement compared to APEX 2.2, because in the old version you had to logout and relogin to see the ch

  • How do I stop the scatter effect being contained in an images frame in After Effects?

    I have an image that I want to make scatter with the scatter effect, but when I add the scatter it hits the square frame of my image. I would like the scatter to go further and not be contained in the square but I'm not sure how to do this. I would a

  • If CUCM publisher down, does CDR still active in Subscriber?

    Hi everybody, In a CUCM cluster, 1 PUB and 1 SUB if the Publisher is down, does the subscriber will store the CDR in database? Because it seems there is no CDR service can be selected in Subscriber Any Cisco official document does mention about that?

  • Jlabel overlapping JButton,

    Hello I have a JLabel Image, a portion of it sits underneath a JButton (which is another image). When it runs the JButton is not shown untill the mouse goes over the area where the button is supposed to be. Initially I thought by declaring and displa