Database links in an onload process

In order to be able to use database links, I had to use execute immediate in my onload process. However, in doing this, the app is branching to the next page before the execute immediate statement has finished running. Is there a work around for this?
Code is:
delete from ar_assoc_activity where upper(ehs_cc)=UPPER(''||:F109_CLIENT||'');
execute immediate
'INSERT INTO ar_assoc_activity (ehs_cc, fg_id, fin_group, fiscal_year,
accounting_period, provider, fin_class, charges,
payments, adjustments, balance)
SELECT upper('''||:f109_client||'''),fg_id, fin_group, fiscal_year,
accounting_period, provider, fin_class, charges,
payments, adjustments, balance from v_ar_assoc_activity@'||:f109_link;

I have a chart on page x that has a link. When I click the chart to drilldown, it goes to page 40. On page 40, there is an onload process that pulls data from another database and inserts into a table. I had to use execute immediate in order to be able to insert data using a link.
I know this is not working because when I click to drilldown on my chart, I see my insert statement still running but page 40 is displayed as if no data has been loaded. However, if I wait until the insert finishes running and hit F5 to refresh the page, my data is displayed.
For testing purposes, I insert into a table when my insert begins running and then delete the record when the insert finishes.
Onload process is below:
declare
v_loaded number;
v_ehs_cc varchar2(30);
v_in_process varchar2(5);
BEGIN
select count(*) into v_loaded from ar_assoc_activity where upper(ehs_cc)=upper(:f109_client) and trunc(create_dt)=trunc(sysdate);
select count(*) into v_in_process from drilldowns where upper(report_name)='AR_WITH_ASSOC_ACTIVITY' and upper(ehs_cc)=upper(:f109_client);
if (v_in_process=0 and :p40_refresh_query='Y') or (v_in_process=0 and v_loaded=0) then
insert into drilldowns(ehs_cc,app_user,report_name,begin_load)
select upper(''||:f109_client||''),''||:app_user||'','AR_WITH_ASSOC_ACTIVITY',SYSDATE FROM DUAL;
commit;
delete from ar_assoc_activity where upper(ehs_cc)=UPPER(''||:F109_CLIENT||'');
execute immediate
'INSERT INTO ar_assoc_activity (ehs_cc, fg_id, fin_group, fiscal_year,
accounting_period, provider, fin_class, charges,
payments, adjustments, balance)
SELECT upper('''||:f109_client||'''),fg_id, fin_group, fiscal_year,
accounting_period, provider, fin_class, charges,
payments, adjustments, balance from v_ar_assoc_activity@'||:f109_link;
delete from drilldowns where upper(ehs_cc)=upper(:f109_client) and upper(report_name)='AR_WITH_ASSOC_ACTIVITY';
commit;
end if;
:P40_REFRESH_QUERY:=NULL;
END;

Similar Messages

  • Database link problem in a page process

    I'm trying to access a function over the database link in a page onload process. The called function located in another schema returns a varchar2 value, based on this value, I'll be doing appropriate navigation. But it's giving the following dblink error. However the select statement below works fine in sqlplus. any ideas are appreciated.
    ORA-04054: database link testschema does not exist
    DECLARE
    v_check varchar2(10) := NULL;
    BEGIN
    execute immediate 'select is_valid@testschema(&APP_USER., 10) into v_check from dual';
    END;
    thanks,
    Surya

    First you don't want to use &. anything in sql - use a bind variable and the using clause.
    Second, what if you try creating a view with the dblink in there and call the view? Does that change the error?

  • Using database links in a plsql page process

    I am trying to use a database link in a pl/sql page process.
    It works fine when I use the link name in the plsql like this:
    BEGIN
    SELECT 
    CARD_ID
    into  
    :P12_HDR_CARD_NUMBER 
    from     [email protected];
    But the link name will be coming from a page item (P12_DBLINK) populated as follows:
    select db_link d, db_link r from user_db_links; 
    I have tried the following and it's not working:
    DECLARE
    l_link VARCHAR2(30);
    BEGIN
    l_link :=  :P12_DBLINK;
    SELECT 
    CARD_ID
    into  
    :P12_HDR_CARD_NUMBER 
    from     fusion.EXM_CC_COMPANY_ACCOUNTS@l_link;
    this gives me:
    ORA-04052: error occurred when looking up remote object FUSION.EXM_CC_COMPANY_ACCOUNTS@L_LINK.WORLD ORA-00604: error occurred at recursive SQL level 3 ORA-02019: connection description for remote database not found
    I thought that maybe the link name was getting appended with .WORLD automatically but the link name already has .WORLD at the end. I tried stripping that off first but the error is the same.
    Is there some synatx for this that will work for this? Will I need to use dynamic sql?
    Any suggestions are most appreciated.
    thanks,
    john

    Hi John,
    check the following example to use the execute immediate statement for your purpose
    sql - Variable for Database Link Name - Stack Overflow
    let me know if this answers your query in the current thread

  • OWB-OWF - Process Flow Deployment - Database Link

    Hello there,
    This post is basically related to my problem with Process Flow deployment.
    Could someone please shed some light on the following:
    When we create a Process Flow, during this process OWF creates a Database Link. For some reason, this link is not functional unless I remove the part after "." in that defines the "HOST" in the DB Link definition. How do I know it is not functional - I know because following query does not work:
    select * from [email protected]@WB_LK_WF_PKG
    Here is the link definition:
    ORIGINAL:
    create database link OWB92TRG.US.ORACLE.COM@WB_LK_WF_PKG
    connect to RR
    identified by "<pwd>"
    using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=CENTENNI-2077E4.CENTENNIALCOLLEGE.CA)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=OWB92TRG)))'
    MODIFIED (it works - above query runs OK):
    create database link OWB92TRG.US.ORACLE.COM@WB_LK_WF_PKG
    connect to RR
    identified by "<pwd>"
    using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=CENTENNI-2077E4)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=OWB92TRG)))'
    My second question is "using what userid/pwd should this link should have been created? Should it use "Runtime Repository Owner" or "OWB Repository Owner" or "Runtime Access User" or "OWF_MGR"?
    No matter what userid I use, it works when I run the query but I always get following error when I try to deploy the "Process Flows" in OWB:
    RPE-02085: Failed to test wb_rti_workflow_util.initialize through deployed Workflow Database Link OWB92TRG.US.ORACLE.COM@WB_LK_WF_PKG2. Please check that "EXECUTE ANY PROCEDURE" privilege is set and that the OWB Runtime is available.
    - ORA-04052: error occurred when looking up remote object [email protected]@WB_LK_WF_PKG2
    ORA-12545: Connect failed because target host or object does not exist
    I have already granted the "EXECUTE ANY PROCEDURE" to OWF_MGR. I am not sure, though, what is meant by the "and that the OWB Runtime is available" part of the error message above.
    I have also tried to fix this by running the "catrpc.sql" script but it did not help either.
    I am stuck on this step for past few days. I would highly appreciate help in fixing this problem. Here is the configuration I am using:
    o Source database : Oracle 9i (9.2) on my local PC
    o Target database : Oracle 9i (9.2) on my local PC
    o OWB 9i
    o OWF 2.6.2
    o OWB and OWF repositories are on the TARGET database
    I am able to successfully deploy and run my MAPPINGs.
    TIA,
    Amer

    Hello Oracle support,
    Should I open a TAR to get this problem resolved?
    Regards,
    Amer

  • Run process flow over database link

    Hi guys,
    I have two projects here, A and B. Each project has its own process flow, lets say Process A (in project A)and process B(in project B). I need to run process B in process A, so I use the database link, and WB_RT_API_EXEC.run_task function. But when I run the process, I get the following error:
    ORA-20001: Task not found - Please check the Task Type, Name and Location are correct.
    ORA-06512: at "OWBRTR2.WB_RT_API_EXEC", line 704
    does anyone have some idea how to fix this? or any other suggestions for how to do it? thanks.

    Hi Gowtham,
    I am using the following function to send execution details of the process-flow. This process-flow is having 20 mappings. This is working fine.
    The cIient requirment is to pass email-IDs from a back-end table(sam_mail_notification) with columns(smtp, from_address and to_address), right now the function is working on static(constant) values.
    I had modified the function according to the requirement, can you please have a look at the function, and tell me is it correct. Because the values should come from database table. will this function work.
    I got the following error, while deploying,
    ORA-06550: line 55, column 1:
    PLS-00103: Encountered the symbol "END" when expecting one of the following:
    FUNCTION SEND_SUMMARY1()
    RETURN NUMBER
    --initialize variables here
    -- main body
    retval number := 0; --default
    crlf CONSTANT VARCHAR2(2):= CHR(13) || CHR(10);
    pSender VARCHAR2(30) := '[email protected]';
    pRecipient VARCHAR2(30) := '[email protected]';
    pSubject VARCHAR2(100) := 'Process REsults for: '||to_char(sysdate,'dd/mm/yyyy');
    mesg VARCHAR2(32767);
    mail_conn utl_smtp.connection;
    cursor getResults is
    select AREA.OBJECT_NAME,
    AREA.CREATED_ON,
    AREA.UPDATED_ON,
    aramr.ELAPSE_TIME,
    NUMBER_RECORDS_SELECTED,
    NUMBER_RECORDS_INSERTED,
    NUMBER_RECORDS_UPDATED,
    NUMBER_ERRORS,
    AREA.RETURN_RESULT,
    AREA.EXECUTION_AUDIT_STATUS,
    MESSAGE_SEVERITY,
    MESSAGE_TEXT
    from
    all_Rt_audit_executions area,
    all_Rt_audit_map_runs aramr,
    all_rt_audit_exec_messages err
    where AREA.execution_audit_id = ARAMR.execution_audit_id(+) AND
    AREA.execution_audit_id = err.execution_audit_id(+)
    and
    trunc(area.created_on) = trunc(sysdate)
    AND AREA.OBJECT_NAME IS NOT NULL AND AREA.TASK_TYPE!='ProcessFlow'
    AND area.top_level_execution_audit_id =(select max(top_level_execution_audit_id)from all_Rt_audit_executions
    where execution_name = (select execution_name from all_Rt_audit_executions where task_type ='ProcessFlow' and top_level_execution_audit_id =
    (select max(top_level_execution_audit_id) from all_Rt_audit_executions)));
    Cursor getMailDetails is select
    mailhost
    pSender,
    pRecipient
         from sam_mail_notification;
    BEGIN
    for maild in getMailDetails
    loop
    mail_conn := utl_smtp.open_connection(mailhost, 25);
    mesg := 'Date: ' ||TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss') || crlf ||
    'From: <'|| pSender ||'>' || crlf ||
    'Subject: '|| pSubject || crlf ||
    'To: '||pRecipient || crlf || '' || crlf ||
    end loop;
    'MAPNAME START_TIME END_TIME ELAPSED SELECTED INSERTED UPDATED ERRORS RESULT AUDIT_STSTUS SEVERITY MESSAGE_TEXT'||crlf ;
    for rec in getResults
    loop
    mesg:=mesg || rpad(rec.OBJECT_NAME,30)||
    rpad(to_char(rec.CREATED_ON, 'HH24:MI:SS DD-MON-YY'),20)||
    rpad(to_char(rec.UPDATED_ON, 'HH24:MI:SS DD-MON-YY'),24)||
    rpad(to_char(rec.ELAPSE_TIME),7)||
    rpad(to_char(rec.NUMBER_RECORDS_SELECTED),8)||
    rpad(to_char(rec.NUMBER_RECORDS_INSERTED),10)||
    rpad(to_char(rec.NUMBER_RECORDS_UPDATED),10)||
    rpad(to_char(rec.NUMBER_ERRORS),5)||
    rpad(to_char(rec.RETURN_RESULT),8)||
    rpad(to_char(rec.EXECUTION_AUDIT_STATUS),10)||
    rpad(to_char(rec.MESSAGE_SEVERITY),10)||
    rpad(to_char(rec.MESSAGE_TEXT),200)||crlf;
    end loop;
    utl_smtp.helo(mail_conn, mailhost);
    utl_smtp.mail(mail_conn, pSender);
    utl_smtp.rcpt(mail_conn, pRecipient);
    utl_smtp.data(mail_conn, mesg);
    utl_smtp.quit(mail_conn);
    return retval;
    EXCEPTION
    WHEN OTHERS THEN
    return 1;
    END;
    Regards,
    Kumar

  • 20 Index Restriction on Remote Tables (i.e. using Database Links)

    The Oracle Database Administrator's Guides for 10g and 11g document a performance restriction that "No more than 20 indexes are considered for a remote table." If I go back to the 8i documentation it says "In cost-based optimization, no more than 20 indexes per remote table are considered when generating query plans. The order of the indexes varies; if the 20-index limitation is exceeded, random variation in query plans may result."
    Does anyone have more details on this performance restriction? In particular I am trying to answer these questions:
    1) Are the 20 indexes which are considered by the CBO still random in 10g?
    2) Can I influence which indexes are considered with index hints or will my hints only be considered if they are for one of the "random" 20 indexes which are being considered by the CBO?
    3) Are there any other approaches or work-arounds to this restriction assuming you need to select from a large remote table with more than 20 indexes (and need to perform the selection using 1 of those indexes to get adequate performance) or do we need to abandon database links for this table?
    Thanks in advance for your input.

    So, here's my simple test.
    SQL>
    SQL> create table gurnish.indexes20plus ( n1 number, n2 number, n3 number, n4 number, n5 number, n6 number, n7 number,
    2 n8 number, n9 number, n10 number, n11 number, n12 number, n13 number, n14 number, n15 number, n16 number,
    3 n17 number, n18 number, n19 number, n20 number, n21 number, n22 number, n23 number, n24 number,
    4 n25 number, n26 number, n28 number);
    create index xin1 on indexes20plus (n1);
    Table created.
    SQL> SQL> create index xin2 on indexes20plus (n2);
    create index xin3 on indexes20plus (n3);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin4 on indexes20plus (n4);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin5 on indexes20plus (n5);
    create index xin6 on indexes20plus (n6);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin7 on indexes20plus (n7);
    Index created.
    SQL> SQL> create index xin8 on indexes20plus (n8);
    Index created.
    SQL> SQL> create index xin9 on indexes20plus (n9);
    Index created.
    SQL>
    SQL> create index xin10 on indexes20plus (n10);
    Index created.
    SQL> SQL> create index xin11 on indexes20plus (n11);
    create index xin12 on indexes20plus (n12);
    create index xin13 on indexes20plus (n13);
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL>
    Index created.
    SQL> SQL> create index xin14 on indexes20plus (n14);
    Index created.
    SQL> SQL> create index xin15 on indexes20plus (n15);
    Index created.
    SQL>
    SQL> create index xin16 on indexes20plus (n16);
    Index created.
    SQL>
    SQL> create index xin17 on indexes20plus (n17);
    Index created.
    SQL> SQL> create index xin18 on indexes20plus (n18);
    Index created.
    SQL> SQL> create index xin19 on indexes20plus (n19);
    Index created.
    SQL> SQL> create index xin20 on indexes20plus (n20);
    Index created.
    SQL> SQL> create index xin21 on indexes20plus (n21);
    Index created.
    declare
    i number;
    begin
    for i in 1..100
    loop
    dbms_random.seed(i+100);
    insert into indexes20plus values (dbms_random.value(1,5),dbms_random.value(1,21),dbms_random.RANDOM, dbms_random.RANDOM,dbms_random.value(1,20),
    dbms_random.value(1,4),dbms_random.value(1,6), dbms_random.value(1,7),dbms_random.value(1,9),dbms_random.value(1,10),
    dbms_random.value(1,11),dbms_random.value(1,12),dbms_random.value(1,13),dbms_random.value(1,14),dbms_random.value(1,1),
    dbms_random.value(1,1),dbms_random.value(1,19),dbms_random.value(1,122),dbms_random.value(1,20),dbms_random.value(1,20)
    ,dbms_random.value(4,20),dbms_random.value(1,20),dbms_random.value(1,20),dbms_random.value(1,20),dbms_random.value(1,20)
    ,dbms_random.value(4,20),dbms_random.value(4,20));
    end loop;
    commit;
    end;
    SQL> set autotrace traceonly
    SQL> l
    1* select * from gurnish.indexes20plus@lvoprds where n1 = 4
    SQL> /
    no rows selected
    Execution Plan
    Plan hash value: 441368878
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU
    )| Time | Inst |
    | 0 | SELECT STATEMENT REMOTE | | 1 | 351 | 1 (0
    )| 00:00:01 | |
    | 1 | TABLE ACCESS BY INDEX ROWID| INDEXES20PLUS | 1 | 351 | 1 (0
    )| 00:00:01 | LVPRD |
    |* 2 | INDEX RANGE SCAN | XIN1 | 1 | | 1 (0
    )| 00:00:01 | LVPRD |
    Predicate Information (identified by operation id):
    2 - access("A1"."N1"=4)
    Note
    - fully remote statement
    - dynamic sampling used for this statement
    Statistics
    0 recursive calls
    0 db block gets
    0 consistent gets
    0 physical reads
    0 redo size
    1897 bytes sent via SQL*Net to client
    481 bytes received via SQL*Net from client
    1 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    0 rows processed
    SQL> select * from gurnish.indexes20plus@lvoprds where n21 = 4;
    no rows selected
    Execution Plan
    Plan hash value: 2929530649
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU
    )| Time | Inst |
    | 0 | SELECT STATEMENT REMOTE | | 1 | 351 | 1 (0
    )| 00:00:01 | |
    | 1 | TABLE ACCESS BY INDEX ROWID| INDEXES20PLUS | 1 | 351 | 1 (0
    )| 00:00:01 | LVPRD |
    |* 2 | INDEX RANGE SCAN | XIN21 | 1 | | 1 (0
    )| 00:00:01 | LVPRD |
    Predicate Information (identified by operation id):
    2 - access("A1"."N21"=4)
    Note
    - fully remote statement
    - dynamic sampling used for this statement
    Statistics
    1 recursive calls
    0 db block gets
    0 consistent gets
    0 physical reads
    0 redo size
    1897 bytes sent via SQL*Net to client
    481 bytes received via SQL*Net from client
    1 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    0 rows processed
    SQL>

  • Create a database link to access SqlServer 2005 view from oracle 11gr2

    Hi All,
    Greetings for the day.
    Though I have seen quite a few posts but just wanted to cross-verfiy and double check hence posting.
    Oracle Database : 11gr2
    OS :SOLARIS SPARC 64 Bit
    SQL Server Database : Sql Server 2005
    OS : Windows 2003 32 Bit
    The requirement is to access a view residing in the SQL Server 2005 Database using the Oracle Database. This involves creation of a Database link in the Oracle Database to access the SQL Server.
    Can you suggest which approach should i follow ( I am able to understand that both do the same job ):
    How to Configure DG4MSQL (Oracle Database Gateway for MS SQL Server) 64bit Unix OS (Linux, Solaris, AIX,HP-UX) post install [ID 562509.1]or
    How to Configure DG4ODBC on 64bit Unix OS (Linux, Solaris, AIX, HP-UX Itanium) to Connect to Non-Oracle Databases Post Install [ID 561033.1]Will they do the same job ? And can they be used on any OS and version of the SQL Server Database as version information for SQL Server is not specified anywhere?
    Please let me know so that I can it forward with Business for approvals and budgetting.
    Regards
    KK

    Your question is similar to the post: Oracle 11gr2 connection to Sql Server using dg4msql problem
    Please visit: http://stackoverflow.com/questions/4658942/oracle-11gr2-connection-to-sql-server-using-dg4msql-problem
    Answer on the website:
    You seem to be using the Gateway for MySQL set-up rather than the Heterogeneous Gateway (for ODBC connections). Here is an overview of the process
    On SQL Server create a database user and give it read access to the database/tables you want to read via the Oracle database link.
    In the gateway home each SQL Server database you want to access should have an init.ora located in $OH/dg4msql/admin in the form initsid.ora where sid is the name of the database to be used in the link (e.g. initbob.ora), so create one
    HS_FDS_CONNECT_INFO=msserver1:1234//Example_Database
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER
    HS_TRANSACTION_MODEL=READ_ONLY
    You must now add the new sid to the listener.ora in the gateway home using an additional SID_DESC section inside the existing SID_LIST, for example
    (SID_DESC =
    (SID_NAME=bob)
    (ORACLE_HOME=/oracle/gateway/product/11.2.0)
    (ENVS=LD_LIBRARY_PATH=/oracle/gateway/product/11.2.0/dg4msql/driver/lib;/oracle/gateway/product/11.2.0/lib)
    (PROGRAM=dg4msql)
    You should now stop and restart the gateway listener so that the new sid becomes active. NB a reload is not enough.
    You must now add the new sid in the tnsnames.ora file for the listener of each database in which you will create a link. You don't need to do this in the gateway home unless it is also a database home in which you will create a database link.
    bob =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = severname.example.com)(PORT = 1690))
    (CONNECT_DATA = (SID = bob))
    (HS = OK)
    NB: The host and port are for the gateway not for the SQL Server database
    In each database that requires a link to the MS-SQL database you should create a database link to your new gateway sid.
    CREATE PUBLIC DATABASE LINK bob
    CONNECT TO "ms_user" IDENTIFIED BY "ms-passwd" USING 'bob';
    where ms-user and ms-password are the SQL Server user you created right at the start.
    Now you can test the new database link
    SELECT COUNT(*) FROM "Table_Name"@bob;
    Once you have this working you can alter the initsid.ora file to add parameters to suit your connection. If you do it this way you can easily add and manage many different databases via the gateway.
    Hip
    Edited by: 1000595 on 04:58 17-04-2013

  • Change of a database link in OWB

    I have a good suggestion to change a a database link when a server is moved to another location (in that case the database link of the source module has to be changed)
    In OWB 9.0.2 it's not impossible to delete a database link in OWB, so you have to do it manually
    (in 9.0.4 it should be possible, but this version is also not easy to use).
    - Start SQL Plus and log in as the schema on which the OWB repository is created (e.g. OWB).
    - Drop the database link ('drop database link <dblink name>')
    - Create a new database link in the same schema with the new parameters, e.g:
    CREATE DATABASE LINK "<dblink name>"
    CONNECT TO "<...>" IDENTIFIED BY "<...>"
    USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (Host = <hostname>) (PORT = 1521))) (CONNECT_DATA = (SID = <sid> )))'
    Done!
    No stupid errors in OWB when you create the database link in OWB itself.
    Regards,
    Maurice
    ;

    SQL> create view test_view as select dummy from [email protected]
    2 ;
    View created.
    SQL> select dummy from test_view;
    D
    X
    Execution Plan
    0 SELECT STATEMENT (REMOTE) Optimizer=CHOOSE
    1 0 TABLE ACCESS (FULL) OF 'DUAL' FIRST9.XXXX.COM
    Statistics
    7 recursive calls
    4 db block gets
    2 consistent gets
    0 physical reads
    212 redo size
    363 bytes sent via SQL*Net to client
    425 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed
    NOW WE PULL OUT THE NETWORK CABLE connecting the two servers.
    SQL> select dummy from test_view;
    select dummy from test_view
    ERROR at line 1:
    ORA-02068: following severe error from FIRST9.XXXX.COM
    ORA-03113: end-of-file on communication channel
    So all you have to do is to test for the communications error.

  • Database Link

    I'm using the following query in record group of an LOV:
    select  "Layout_No",decode("tBorough_Id",01,'M',02,'X',03,'SI',04,'B',05,'Q',06,'W')
    from v_LayoutTracking@SQLET
    where "tBorough_Id" = decode(:clt.division,'M',01,'X',02,'SI',03,'B',04,'Q',05,'W',06) where SQLET is the database link to an SQLserver.
    We have seperate development and testing databases.
    In development environment, the LOV pops up quickly but in testing, it shows processing.
    What could be the reaon.
    If I execute this query in SQL*plus, it takes almost the same time in both development and testing(1 min and 2 min respectively).
    What could be the reson, please help.
    Edited by: 831050 on May 5, 2011 1:04 PM

    What could be the reaon.The amount of data in the database, other indexes, network...
    it takes almost the same time in both development and testing(1 min and 2 min respectively)I wouldn't call that "almost the same time" :-)
    I would suggest that you create a view in the database and use this view for your LOV instead of using the DB link in your LOV query.

  • Database links in APEX - Inconsistent

    I have just set up a database link to our main Oracle DB from an APEX DB using the object browser in APEX
    The link works fine for retrieving data in some circumstances, a report is displayed with no problems and dynamic lookup lists work fine.
    However when I create a form and include an "Automated Row Fetch" there is a "PLSQL invalid error". My guess is there is some problem with privileges, I have little experience with this so was hoping for some help
    Regards
    - Sol

    Sol,
    I believe you can create a local view on the remote table and build the form on that view. See this and similar posts for hints: Use a database link in an Automated Row Fetch process? .
    Scott

  • ORACLE 11g + PHP5 problem: "fetch out of sequence" on remote database link

    Hi!
    I have a new server with oracle 11g (11.1.0.7) database and apache/php5 (actual build) on linux.
    connection type is dedicated.
    when doing a connection to a remote AS/400 database I always get this error:
    "Warning: oci_fetch_array() http://function.oci-fetch-array: ORA-01002: fetch out of sequence ORA-02063: preceding line from..."
    when doing the same simple "select * from database link" at my old server with oracle 9i and apache/php5 no problem occurrs.
    this happens at AS/400 database link only. normal oracle database links work fine.
    Anyone an idea how to solve this problem or where the problem is????
    further info:
    when doing " select * from [ database link ] where rownum < 11 " it works, but when doing the query with more than 10 results I get the error. Any idea?
    bye,
    Oliver
    Edited by: user501548 on 10.10.2008 02:20

    well a fetch out of sequence usually indicates that a cursor has been closed before the process has finished fetching or some such thing.
    I'm not aware of there being a specific problem with the situation you outline, but maybe if you could provide all the connection setup and how you are trying to connect that may give a better idea.
    Also, you may be better asking on the General Database Discussions forum as this isn't really a SQL or PL/SQL problem

  • Ora-02020 too many database links in use

      Hi All,
                    While trying to  update Table through datalink in my program I am getting the above error.   Without modifying the  v$parameter  value ( 'open_links' ) in database how to use this feature to close Inactive sessions  in BPEL ?

    Yes, I set the init.ora parameters on all servers and then restarted them. I still get the error.
    Note that, for convenience, all my servers have public database links to all other servers in my private network.
    This procedure (described at the start) works for one run of copying 50 tables from one server to one other server:
    server1 runs the procedure and copies data from server2 to server3 (total of 3 servers in the process)But I get the error when I run the procedure to copy 40 tables from multiple servers to one other server:
    server1 runs the procedure and copies data from server2, server3, and server4 to server5The error occurs when only four (or five) servers are involved in the process.
    Any suggestions are greatly appreciated.
    Edited by: user652257 on Nov 1, 2009 12:40 PM

  • Database Links and Triggers

    Hello altogether,
    I'm not sure if I am in the right topic here, if not please excuse!
    I got the following problem:
    My system consists of two parts - one calculation part P1, and one output part P2. Both parts have their own Oracle DBMS. The calculation part P1 calculates a lot of data and replicates this data to the database of the output part P2.
    I created a database link from P1 to P2.
    Now I used triggers to replicate the data from tables on P1 side to tables on P2 side.
    Problem:
    This works fine, as long as the number of inserted or updated entries is low. If it increases, I get the error "Too many database links in use", and everything is stuck. I guess this is because too many triggers fire in parallel.
    Question:
    Is there a possibility to restrict the number of triggers executed in parallel (some kind of semaphor to serialize on), or can multiple triggers share the same database link?
    Thanks a lot for your help!
    Bye,
    Daniel

    Besides from using normal oracle replication I would check your triggers.
    Do they fire and access the DB for each row? May change this to statement level.
    Or switch from some synchonous process (immediatly update the target database) to some asynchronous process (mark the records that needs to be updated/changed, every half an hour do the change).
    3rd version? DO you really need two databases? Consider 2 separate schemas on one database instance.

  • How do you close a database link in Apex?

    How do you close a database link in Apex that is referenced in an interactive report on Page 1? I want to make sure the database link is closed before a user navigates to another page in the Apex application.
    Lets assume the database link is referenced in the region source for Page 1 as follows:
    Page 1 - Employee Listing
    Region Source:
    select ename, job, hiredate
    from scott.emp@link1
    Any suggestions are appreciated.
    Ms. H

    John,
    I figured out how to eliminate the ORA-02020 and ORA-02081 errors. The solution is reference below:
    1. Create an interactive report in a page.
    2. Add the SQL statement in the region source as listed below:
    SELECT ENAME, JOB, HIREDATE
    FROM SCOTT.EMP@DBLINK
    WHERE (UPPER(ENAME) LIKE '%' || UPPER(:P1_TEXT_SEARCH)||'%')
    Conditional Display
         Condition Type:
    PL/SQL Expression
         Expression 1
         :P1_TEXT_SEARCH IS NOT NULL
    3. Add a search button and text search field as items on the page.
    4. Create a process in the page to check the cursor and catch an exception as listed below:
         Name: CHECK_CURSOR
         Sequence: 30
         Point: On Submit - After Computations and Validations
         Type: PL/SQL Anonymous Block
         PL/SQL Process:
         FOR C1 IN (SELECT ENAME, JOB, HIREDATE
         FROM SCOTT.EMP@DBLINK
    WHERE (UPPER(ENAME) LIKE '%' || UPPER(:P1_TEXT_SEARCH)||'%'))
         LOOP
         IF C1.ENAME IS NOT NULL
              THEN
              HTP.P('Employee Name: '||C1.ENAME||' ');
              END IF;
         END LOOP;
         EXCEPTION
              WHEN NO_DATA_FOUND
              THEN
              APEX_APPLICATION.G_PRINT_SUCCESS_MESSAGE := 'No Data Found Error';
              WHEN OTHERS THEN
              APEX_APPLICATION.G_PRINT_SUCCESS_MESSAGE := 'Unexpected Error';
    Conditional Processing
    When Button Pressed (Process After Submit When This Button is Pressed)
         P1_SEARCH_DATA
    5. Create a process in the page to close the database link as listed below:
         Name: CLOSE_DBLINK
         Sequence: 40
         Point: On Submit - After Computations and Validations
         Type: PL/SQL Anonymous Block
         PL/SQL Process:
         COMMIT;
         EXECUTE IMMEDIATE 'ALTER SESSION CLOSE DATABASE LINK DBLINK';
    Conditional Processing
    When Button Pressed (Process After Submit When This Button is Pressed)
         P1_SEARCH_DATA
    6. Apply changes, run the page, and conduct a test.
    I hope this solution is helpful to others.
    Ms. H

  • Database links between Oracle 10G and 7.1/7.3 & 8.0 databases

    Hi All..
    Unfortunately one of our customers is still using very very old unsupported versions of the database - 7.1 and 7.3 and 8.0. They wish to start an upgrade process - moving up to 10G (via staged upgrades) but wish to know whether they can still access information from old databases via database links.
    I know that the Oracle 10G client cannot connect to database versions this old, and I am presuming that the database itself cannot via DB links but I thought it wise to check.
    Any help appreciated. Thank you.

    Oracle 10.1 is certified to connect to 8.1.7 and later. Database links to earlier versions are not certified and generally do not work.
    The general solution to this sort of thing tends to be putting an older version of the database (8.1.7 or 9.0.1, usually) between the ancient databases and the new database. 10.1 can create a database link to 9.0.1. 9.0.1 can create a database link to 7.3.4 and create views that reference remote 7.3.4 objects that the 10.1 system can query. Of course, you're taking data over the network twice, so performance isn't ideal, but it can work in a pinch.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

Maybe you are looking for

  • BO XI3.1 sp3 server installation

    We are planning to upgrade BO XIR2 to BO XI 3.1 sp3 version. Approach: We will install BO XI 3.1 sp3 on the same server where BO XIR2 is currently installed in a new disk.After successful upgrade we will uninstall BO XIR2 version. Will there be any i

  • Os x 10.5.8 update

    I do have software OS X 10.5.8 and want to use i cloud. How can i use it. witch software do i need?

  • Creating new website

    hi guys, i have a wesite that has been operational for a few years which is hosted (http://www.angliaclipperservices.com/) and ranks fairly well for all my keywords this has obviously taken a bit of work, i have since been designing my own website to

  • How do I create a line-Map animation effect

    How do I create a Line-Map animation effect? i am trying to highlight a 'Route' on a map.

  • Where can I get a replacement battery for the iBook G3 Clamshell M6411, in the UK?

    I recently managed to source an Indigo iBook G3 clamshell - the M6411 FireWire model - from eBay. It's in superb condition, but the battery has had it, and only holds about 5-10 minutes' charge. Can anyone suggest where I can get a replacement? I gue