Accessing remote table

In one of my Pl/SQL code, I have to access a table in a different database(remote database), is it fine if I access it using tablename.DBLINK name?
where DBLINK is created to the remote database..Do synonym to be created to access that table or will there be any error while executing the procedure
if i use tablename.DBLINK NAME
please suggest on this
Many thanks
Edited by: 859486 on Jun 14, 2011 10:11 PM

859486 wrote:
In one of my Pl/SQL code, I have to access a table in a different database(remote database), is it fine if I access it using tablename.DBLINK name?
where DBLINK is created to the remote database..Do synonym to be created to access that table or will there be any error while executing the procedure
if i use tablename.DBLINK NAME
please suggest on this
Many thanks
Edited by: 859486 on Jun 14, 2011 10:11 PMyes, use DBLINK

Similar Messages

  • Accessing remote table from another R/3 system

    Hi,
    We are running our production on ECC 5.0 but we ABAP web dynpro environment on ECC7.0 portal box. We want use ABAP web dynpro for publishing some application through portal. I have read many document regarding accessing remote systems through RFC enabled function module but for the we need have function module in both system. Is it any way possible to access table from remote R/3 system programmatic without any call for function module. Please advice.
    Thanks in advance,
    Ravi Prakash

    hi,
    you should use a remote enabled function no matter what to read db table on other system
    grtz,
    Koen

  • How to access remote tables on Oracle from Access fron end?

    Note: Access application and access tables are in separate .mdb files.
    I've successfully migrated my Access 2000 tables to Oracle. And there were no errors during the migration. The two original Access tables were renames to tblBOMdetail_L and tblPartInfo_L and two new linked tables were created with the _R name. Mapping queries were created for tblBOMdetail and tblPartInfo.
    However, when I launch my Access application, I get the following error: "The Microsoft Jet database engine cannot find the input table or query 'tblPartInfo'. Make sure that it exists and that its name is spelled correctly."
    Is there something more that I have to do to enable this connection. I already have the necessary ODBC connection set up.
    Thanks.

    Hi ,
    The first thing you need to verify is that you can view the data in the tables with _R appended to their name. This will verify whether the ODBC link is set up correctly and pointing at the correct Oracle table in the Oracle database.
    Another point. Are you still using 2 .mdb files? If so since your data is now in Oracle it may be prudent to use only one .mdb.
    If you need more help then please contact [email protected]
    John

  • Remote Table access error in PLSQL Procedure

    Hi,
    I've an issue while accessing remote tables thru DB-link inside stored Package/Procedures.
    In a PLSQL procdure I've defined a Cursor to fetch data from a remote table thru DBlink.
    When I try to compile it throws me an error saying "ORA-00904, Invalid identifier" on the last column of the cursor.
    But when executed directly, I'm able to run the same select statement successfully.
    Eg.
    ==========
    CREATE OR REPLACE PROCEDURE TESTPROC IS
    CURSOR C_emp IS
    SELECT emp_name, emp_code from emp@testdb
    where dept_no = 10;
    BEGIN
    NULL;
    END;
    ============when complied it throws '904 Invalid Identifier'
    But when I run the same select directly from say sqlplus, it is fine.
    SELECT emp_name, emp_code from emp@testdb
    where dept_no = 10
    ============
    FYI. My DB is 10.2.0 and Remote DB that I'm trying access is of version 8.1.7
    Not sure, and compatibilty issue between these versions!
    Is there any specific grant/access need to be provided from the remote DB for accessing in PLSQL procedures?
    Thanks
    Kumar R

    Hi!
    Check the following docs --
    ORA-00904 string: invalid identifier
    Cause: The column name entered is either missing or invalid.
    Action: Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, then it must be enclosed in double quotation marks. It may not be a reserved word.
    Regards.
    Satyaki DE.

  • Accessing partitioned table thru remote databse link

    Dear All
    I want to use create table command in my database .I want access partitioned table of remote datbase thru database link.Pl let me know the scripts.
    Thanks
    Parth
    NB : I was using the foll but actually the data given is wrong.
    select * from Data@prod "partition(part_feb03)";

    Don't able use partition table with the database link, sorry
    Regards
    Hector

  • Remote Table Access without Limitations!

    Hello,
    Does anybody knows about an alternative to RFC_READ_TABLE (or RFC_GET_TABLE_ENTRIES or TABLE_ENTRIES_GET_VIA_RFC) that does not impose a limit over 512 bytes column width?
    I need to access a table from outside SAP, and a special requirement is that we DO NOT DEVELOP/INSTALL ANYTHING NEW over the system.
    Does anyone know of an option? RFC FM? Web Service? etc??
    Thanks!

    Hi,
    See if following link helps you.
    [http://searchsap.techtarget.com/tip/0,289483,sid21_gci997032,00.html]
    Manoj

  • Remote Table Access without Limits!

    Hello,
    Does anybody knows about an alternative to RFC_READ_TABLE (or RFC_GET_TABLE_ENTRIES or TABLE_ENTRIES_GET_VIA_RFC) that does not impose a limit over 512 bytes column width?
    I need to access a table from outside SAP, and a special requirement is that we DO NOT DEVELOP/INSTALL ANYTHING NEW over the system.
    Does anyone know of an option? RFC FM? Web Service? etc??
    Thanks!

    Try generating a custom function module and call that using Jco
    The liimit of RFC READ TABLE could be because the return is a single string with seperators.
    If you try with a normal RFC that return table you will be able to handlle it.
    Try using JCo and maintain the login credentials in property file in the server.

  • Error while accessing a Table on Oracle Database 10.2

    Hi Experts,
    We have a table that contains a CLOB datatype in one of its column. However when i tried to access the table i get the below error.
    <b>Table Name:</b> discrete_jobs
    <b>Error:</b>
    (Error starting at line 1 in command:
    select * from [email protected]
    Error report:
    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.)
    Pleas Help!
    Regards,
    Ravi R

    See some work arounds - "How to select table from remote database having clob field</a>

  • Best practice for VPD and remote tables

    Not specifically an HTMLDB question, but here goes...
    HTMLDB 1.6 on 9.2.0.4 connecting over database link (fixed username/password) to 9.2.0.4
    I've currently "wrapped" access to the remote tables in views, i.e. view "T" in the HTMLDB parsing schema LOCAL_USER is defined as "SELECT * FROM T@remote"
    I'd like to put VPD controls on my backend tables, but I don't get how v('APP_USER') (or even APP_USER put into an application context) would be seen by the remote database.
    Should I just put VPD policies on LOCAL_USER's views and call it a day?
    Thanks for input!
    -John

    If you implemented the VPD in the remote database, what would your VPD be restricting? All queries would apply the policy based on the DB link fixed username resulting in all users of the HTML DB application having same policy restrictions.
    The policy in the remote database does not has access to the value of v('APP_USER'). That value is only available in the database that has HTML DB. You would have to write APIs in the remote database in PL/SQL functions/procedures to pass in the V('APP_USER') value to the remote database. This is doable, but cumbersome.
    If you want to have your policy modify your WHERE clause on the fly based on your HTML DB user account, then I would implement the VPD in the database which has your HTML DB repository. I am not sure which of the two scenarios below occur when doing a SELECT * FROM T.
    1.) The query goes across the database link, gets all the data out of table T in the remote database, passes back to the HTML DB database, and applies the policy WHERE clause modification in the HTML DB database.
    2.) The query applies the policy WHERE clause modification to the view, goes across the database link with the WHERE clause modified, and gets only the data allowed based on the policy from the remote database.
    You should test this out to find out for performance purposes what query is actually performed on the remote database.
    As always if anyone sees anything inaccurate in what I have written, please correct me.
    Mike

  • 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>

  • TIME_OUT when accessing Oracle table from SAP using native SQL

    Hi,
    I have a problem in one of my native SQL statement. It takes a long time accessing the table considering that the number of records to be retrieved is only small.
    Something happened on the Oracle system. But, stilll to be confirmed. Looking further at the issue, it seems that when the value in the where clause equated is a literal (meaning the value is not declared in DATA or CONSTANTS in the ABAP Program)
    Example
    1.
    EXEC.
    WHERE FIELD = '1'
    ENDEXEC.
    instead of
    2.
    CONSTANTS: c_1 value '1'.
    EXEC.
    WHERE FIELD = c_1
    ENDEXEC.
    i found that when the way of coding is same as Example 1, a time-out error occurs. But when in Example 2, no issue.
    Can someone explain this?
    Thanks!

    Repetitively asking the same question again and again is against the forum rules.
    Please post an explain of the SQL statement on the remote machine.
    Markus

  • Unable to access remote database object using database link

    Hi all,
    I have created a database link to a remote server
    SQL> create database link remote_link connect to lax_dba identified by lax_dba using 'abc.corp.com';
    database link created
    when i am trying to access any table of lax_dba
    sql> select * from laxtab@remote_link;
    i am getting this Ora error
    ORA-12514: TNS:listener does not currently know of service requested in connect
    I need your help please to solve this issue
    Thanks n Regards
    Laxman

    The database server where you defined the link (not your PC) has resolved 'abc.corp.com' to a server/port/service combination using its tnsnames.ora, sqlnet.ora and possibly ldap.ora settings. You can try
    tnsping abc.corp.comon the server (as ReubenC suggested) to see what it's attempting to connect to. (It's important to do this on the database server and not on your PC as they will have different tns settings etc.)
    It has then found the server and found a listener running on it (so you're getting close), but that remote listener doesn't recognise the service you're asking for. It might be something like the '.com' suffix.

  • SQL error in the database when accessing a table.

    Hi,
    I got below error at production server. Please suggest how to reslove this error.
    <br>
    <br>
    <br>
    Runtime Errors         DBIF_RSQL_SQL_ERROR
    <br>
    Exception              CX_SY_OPEN_SQL_DB
    <br>
    Date and Time          02.01.2011 15:55:06
    <br>
    <br>
    <br>
    <br>
    <br>
    Short text
    <br>
    SQL error in the database when accessing a table.
    <br>
    <br>
    <br>
    How to correct the error
    <br>
    Database error text........: "[10054] TCP Provider: An existing connection was
    <br>
    forcibly closed by the remote host.
    <br>
    [10054] Communication link failure"
    <br>
    Internal call code.........: "[RSQL/INSR/SWFCNTBUF ]"
    <br>
    Please check the entries in the system log (Transaction SM21).
    <br>
    <br>
    If the error occures in a non-modified SAP program, you may be able to
    <br>
    find an interim solution in an SAP Note.
    <br>
    If you have access to SAP Notes, carry out a search with the following
    <br>
    keywords:
    <br>
    <br>
    "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
    <br>
    "CL_SWF_CNT_FACTORY_SHMEM======CP" or "CL_SWF_CNT_FACTORY_SHMEM======CM001"
    <br>
    |    "ADD_INSTANCE"         
    <br>
    <br>
    <br>
    Information on where terminated
    <br>
    Termination occurred in the ABAP program "CL_SWF_CNT_FACTORY_SHMEM======CP" -
    <br>
    in "ADD_INSTANCE".
    <br>
    The main program was "SAPMSSY1 ".
    <br>
    <br>
    In the source code you have the termination point in line 16
    <br>
    of the (Include) program "CL_SWF_CNT_FACTORY_SHMEM======CM001".
    <br>
    The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in
    <br>
    procedure "ADD_INSTANCE" "(METHOD)", but it was neither handled locally nor
    <br>
    declared
    <br>
    in the RAISING clause of its signature.
    <br>
    <br>
    The procedure is in program "CL_SWF_CNT_FACTORY_SHMEM======CP "; its source
    <br>
    code begins in line
    <br>
    1 of the (Include program "CL_SWF_CNT_FACTORY_SHMEM======CM001 ".
    <br>
    <br>
    <br>
    <br>
    Source Code Extract
    <br>
    <br>
    Line
    SourceCde
    <br>
    <br>
    1
    METHOD add_instance .
    <br>
    2
    <br>
    3
    data: ls_id type swfcntbuf.
    <br>
    4
    <br>
    5
    check buffer method - store in local buffer if necessary
    <br>
    6
    retcode = cl_swf_cnt_factory=>add_instance( ibf_por = ibf_por instance = instance ).
    <br>
    7
    <br>
    8
    CHECK m_buffer_method EQ mc_buffer_shared.
    <br>
    9
    <br>
    10
    append key to list of tasks to add stored in database table SWFCNTBUF
    <br>
    11
    will be evaluated by build process for shared memory area (UPDATE_BUFFER method)
    <br>
    12
    <br>
    13
    ls_id-mandt = sy-mandt.
    <br>
    14
    ls_id-id    = ibf_por.
    <br>
    15
    <br>
    >>>>>
    INSERT swfcntbuf CONNECTION r/3*wfcontainer
    <br>
    17
    FROM ls_id.
    <br>
    18
    <br>
    19
    IF sy-subrc EQ 0.
    <br>
    20
    Commit seems to be necessary always, even if INSERT has failed, to get rid of
    <br>
    21
    database locks
    <br>
    22
    COMMIT CONNECTION r/3*wfcontainer.
    <br>
    23
    ENDIF.
    <br>
    24
    <br>
    25
    ENDMETHOD.
    <br>

    duplicate here SQL error in the database when accessing a table.
    Do not post the same question in more than on forum.

  • Access ABAP table in Webdynpro Java application

    Hi All
    Is it possible to access ABAP table in Webdynpro Java application
    Please provide your input
    Thanks
    Karthi D.

    Hi you will connect to the remote SAP system, the
    backend, using an Adaptive RFC MOdel. To access database tables, you can make use of existing functions in terms of RFC function modules. For each function module you need, the system generates a corresponding Java proxy class. All the generated proxy classes and interface are bundled together in the RFC model and treated as part
    of your Web Dynpro project
    In WebDynpro java you RFC by using Model :
    Adaptive RFC Model
    1. automatically adapts to changes in function module signature
    2 provides support for data types and extensibility
    3.support for different structure definitions in different backend
    systems (release dependent structures, custom adaptation)
    Basic principles and guidelines
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/11c3b051-0401-0010-fe9a-9eabd9c216de
    See this blog
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdjava/faq%2b-%2bmodels%2b-%2badaptive%2brfc
    http://help.sap.com/saphelp_nw04s/helpdata/en/6a/11f1f29526944e8580c5e59333d96d/frameset.htm
    Thanks,
    Tulasi

  • Using Hint option to optimise queries for remote tables

    1. How do i provide a hint to access indexes for remote tables in my query?
    2. The explain plan in the 'TOAD' does not expand for remote tables, ie there is no way i can find out whether my query is using the remote table index or not.
    Any help on the above two questions would be highly appreciated.
    Thanks
    Varsha

    1. How do i provide a hint to access indexes for remote tables in my query?
    2. The explain plan in the 'TOAD' does not expand for remote tables, ie there is no way i can find out whether my query is using the remote table index or not.
    Any help on the above two questions would be highly appreciated.
    Thanks
    Varsha

Maybe you are looking for

  • Question regarding roaming and data usage

    I am currently out of my main country of service, and as such I have a question regarding roaming and data usage. I am told that the airplane mode is sufficient from keeping the phone off from roaming, but does this apply to any background data usage

  • Problem about getting report!

    Hi,all: I am trying to get Report which is the query result from the previous canvas, but I don't know how to do it. For example, I put a button called "get transcript" on one canvas, and I set this button's trigger to next block. However, I have no

  • Safari madness

    It's kind of alarming reading about all these problems with Safari. For the first time since I've owned a Mac (7 months) I've started having some myself. We've all done the fixes but nothing seems fixed. I'm getting the color wheel often and doing fo

  • Web Services with HTTP Basic Auth

    Hi, I am having a problem connecting to web services which require HTTP Basic Authentication from a Flex application. I have useProxy set to true and call setRemoteCredentials prior to attempting the call, but the credentials do not appear to be set

  • Fuzzy Match Language Support

    hi, can i use special Turkish names in my query for fuzzy match? for ex. for address field in my table.. i know that Turkish is not supported.. but what about special names? regards, helen..