DATABASE LINK with GROUP BY SQL Statemnets
We have Oracle Database Link linked to MySQL . We want to force executing remote statement that contains group by on the remote MySQL server and let MySQL do the aggregation instead of Oracle.
We tried also DRIVING_SITE but it doesn't help and the query that was sent to MySQL from Oracle DB Link didn't include GROUP BY and it looks like that the Group by was executed on the local Oracle.
Is there a way for force executing GROUP BY statements on remote DB instead of the local Oracle DB?
Try to create a local view based ao the remote table and use the view.
Similar Messages
-
Using database link with a dynamic SQL in Forms 5
I have a Form 5 application where a database link is specified in a client version of dynamic SQL. The function that the application is designed to perform is to access data in a table in a remote database and use it to populate another table in a local database with the same structure as the source table. Dynamic SQL is used because the name of the table can only be resolved during run time.
The problem is that it gives error with code 'ORA-03113' and text 'End-of-file on communication channel' when you try to run it.
Is it not possible to use a database link with a dynamic SQL? What can I do to overcome the problem ?Try to create a local view based ao the remote table and use the view.
-
Creation of database link from oracle to sql server 2000
Hi
I need to create a database link from oracle to sql server 2000.Assuming your Oracle database is running on Windows, you can set up a database link using ODBC using Heterogeneous Services and Generic Connectivity, but there are some functional limitations (i.e. no two-phase commits). If you can live with those limitations but aren't on Windows, you can generally purchase an ODBC driver for your operating system that will connect to SQL Server through someone like DataDirect and still use Generic Connectivity. If you cannot live with those limitations, you can purchase one of Oracle's Transparent Gateway products (though this can get somewhat pricey).
What version of Oracle are you on?
What operating system(s) are you using?
What are you going to use the database link for?
Justin -
Creating Database Link from Oracle to SQL Server
I am trying to create a database link from Oracle to SQL Server, and the documentation is about as clear as mud to me. Can anyone send me clear instructions on exactly what I need to do? What needs to be in tnsnames.ora and listener.ora files? Is there anything other than those two files that needs to be set up? Do I set up an ODBC connection? Anything else? I want to execute queries against a SQL Server database and load data into Oracle database.
Thanks so much,
SusanThese are the instructions from an old document I created. The steps are same for SQL Server and Sybase. Hope it helps.
The 9i Transparent Gateway Software is in Oracle Software CD -> oracle9i database -> Custom -> Oracle Transparent Gateways
The gateway can be installed on the same machine as the Oracle database or
on the Sybase server or on a third machine as a stand-alone.
We have installed the gateway software in one of oracle database
servers in a separate oracle home.
These are the steps involved in configuring a gateway to a Sybase database
1. Install Sybase client and Gateway software on the Gateway Server
2. Configure <initsidfile> in the Gateway Server's <gatewayhome>
/u00/app/oracle/product/9.2.0/tg4sybs/admin/init<gatewaysid>.ora
Sybase server and database information is required for this step.
eg: HS_FDS_CONNECT_INFO=USTRUD01.uwd
3. Add an entry in listener.ora in <listnenerhome>
(/u00/app/oracle/product/9.0.1/network/admin/listener.ora) for the <gatewaysid>
4. Edit the tnsnames file (/u00/app/oracle/product/9.0.1/network/admin/tnsnames.ora)
to add an entry <tnsalias> for the <gatewaysid>
5. Create a database link to the Sybase database in the oracle database.
The steps for creating the database link are
a. create a login oracle_tgw in the sybase server
b. add the user to the sybase database with the necessary privilege on the tables
c. create the database link in the required oracle database using the command
"create public database link <dblinkname> connect to oracle_tgw identified by password using 'tnsalias'; "
6. Restart the gateway listener. -
How to create database link between oracle and SQL Server
Hello Everyone,
Here i have Oracle Database 9i and SQL Server 2005 databases.
I have some tables in sql server db and i want to access from Oracle.
How to create a database link between these two servers
Thanks,Thanks for Everyone,
I was struggle with this almost 10 days....
I created Database link from Oracle to SQL Server
Now it is fine.........
Here i am giving my servers configuration and proceedure how i created the db link...@
Using Generic Connectivity (HSODBC) we can create db link between Oracle and SQL server.
Machine (1)
DB Version : Oracle 9.2.0.7.0
Operating System : HP-UX Itanuim 64 11.23
IP : 192.168.0.31
Host : abcdbt
Machine (2)
Version : SQL Server 2005
Operating System : Windows server 2003 x86
IP : 192.168.0.175
Host : SQLDEV1
User/PW : sa/abc@123! (Connect to database)
Database : SQLTEST (exsisting)
Table : T (“ T “ is the table existing in SQLTEST database with 10 rows)
Prerequisites in Machine (2):
a) Oracle 10g software
b) User account to access SQL Server database (sa/abc@123!)
c) Existing SQL Server Database (SQLTEST)
d) Tables (testing purpose) (T)
Steps:
1) Install Oracle 10.2.0.1 (Only SW,No need of database) *(Machine 2)*
2) Create a DSN where your windows Oracle 10g SW resides *(Machine 2)*
Control panel >> Administrative Tools >> Data Source (ODBC) >> System DSN ADD
You can follow this link also.....
http://www.databasejournal.com/features/oracle/article.php/3442661/Making-a-Connection-from-Oracle-to-SQL-Server.htm
I created DSN as
DSN name : SQLTEST
User : SA/abc@123! (Existing user account)
Host : 192.168.0.175 (machine 2)
Already I have 1 database in SQL Server with the name SQLTEST
You can create DSN with different name also (not same as db name also)
3) Create a hsodbc init file in $ORACLE_HOME\hs\admin *(Machine 2)*
Create init<DSN NAME> file
Ex: initSQLTEST
Copy inithsodbc to initSQLTEST
And edit
initSQLTEST file
HS_FDS_CONNECT_INFO = SQLTEST <DSN NAME>*
HS_FDS_TRACE_LEVEL = OFF*
save the file....@
4) Configure Listener.ora *(Machine 2)*
LISTENER_NEW =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.175)(PORT = 1525))
SID_LIST_LISTENER_NEW =
(SID_LIST =
(SID_DESC =
(SID_NAME = SQLTEST) *+< Here SQLTEST is DSN NAME >+*
(ORACLE_HOME = G:\oracle 10g\oracle\product\10.2.0\db_1)
(PROGRAM = hsodbc))
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:\oracle 10g\oracle\product\10.2.0\db_1)
(PROGRAM = extproc) )
:> lsnrctl start LISTENER_NEW
5) Configure tnsname.ora *(Machine 2)*
SQLTEST11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.175)(PORT = 1525))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SQLTEST))
(HS=OK)
:> tnsping SQLTEST11
If No errors then conti….
6) Configure a file *(Machine 1)*
Cd $TNS_ADMIN ($ORACLE_HOME/network/admin)
Create a file
$ vi TEST_abcdbt_ifile.ora
something=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST =192.168.0.175) (PORT=1525))
(CONNECT_DATA=
(SID=SQLTEST))
(HS=OK)
$ tnsping something
$ sqlplus system/manager
Your connected to Oracle database *(machine 1)*
create database link xyz connect to “sa” identified by “abc@123!” using ‘SOMETHING’;
select * from t@xyz;10 rows selected.
Thanks,
Edited by: ram5424 on Feb 10, 2010 7:24 PM -
How to create database link from oracle to sql server
Please help with how to create database link from oracle to sql server
Best regards,
VishalPlease help with how to create database link from oracle to sql server
Best regards,
Vishal
Hi Vishal,
I found a lof of information regarding how to create a database link from Oracle to SQL Server, please see:
https://www.google.co.in/?gws_rd=cr&ei=vd3XUvGFO8TgkAXqlYCADg#q=how+to+create+database+link+from+oracle+to+sql+server
We discuss SQL Server related issue in this forum. If you have any more question regarding Oracle, please post it in Oracle communities forum for better support.
Regards,
Elvis Long
TechNet Community Support -
Database link with the alias and full description in the connect string
Hi,
i have created database link with alias in tnsentry and full description
and suppose i have removed the tnsnames.ora file what will be the impact on the database link that is whether database link will work or not i am sure db link created with alias won't work and how about db link created with full description and which one you prefer
Thanks# Parameter file initora for Database prd
### Global database name is db_name.db_domain
global_names = TRUE
db_name = prd
db_domain = world
# TNSNAMES.ORA for prd ###############################
prd.world = (DESCRIPTION = (ADDRESS = (COMMUNITY = tcp.world)
(PROTOCOL = TCP) (Host = 100.10.100.1) (Port = 1521))
(CONNECT_DATA = (SID = prd) (GLOBAL_NAME = prd.world)
(SERVER = DEDICATED)))
Our database link points from the local database test to the remote database prd. Therefore we need the global database name for prd. Ask the remote database administrator for these information or connect to prd and execute the following query on prd:
SQL> select GLOBAL_NAME from GLOBAL_NAME;
GLOBAL_NAME
prd.WORLD
CREATE DATABASE LINK prd
CONNECT TO system IDENTIFIED BY system_passwd
USING 'prd';--- alias
so the connection description will be ---select ename from [email protected]
useful link
http://www.akadia.com/services/ora_dblinks.html -
Database link between oracle and sql server
dear all,
i m a newbie to oracle and i need your help to know how to create a database link between oracle and sql server.my oracle version 10.2.0.3 and platform is redhat linux 5.7.your help appreciated.
thanks in advance.[oracle@localhost ~]$ rpm -qa | grep -i odbc
php-odbc-4.3.9-3.15
unixODBC-kde-2.2.11-1.RHEL4.1
MyODBC-2.50.39-21.RHEL4.1
postgresql-odbc-7.3-8.RHEL4.1
freeradius-unixODBC-1.0.1-3.RHEL4.3
qt-ODBC-3.3.3-9.3
unixODBC-devel-2.2.11-1.RHEL4.1
unixODBC-2.2.11-1.RHEL4.1
is this showing odbc installed in os? -
Database link with current_user
I'm logged on database EMSDB.D710.DE and created a database link to EMSDB.D999.DE with current_user(...same user, same credentials I'm logged in). When I tried to use that created link I get the errorcode:"ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt". What I don't understand is, why I can connect to EMSDB.D999.DE --- but not access to the same database with a database link???
SELECT 'EMSDB.D999.DE' REMOTE_DB --NAME OF DATABASE
FROM DUAL;
VARIABLE VAR_REMOTE_DB VARCHAR2(15);
BEGIN
:VAR_REMOTE_DB := '&REMOTE_DB';
END;
SELECT :VAR_REMOTE_DB REMOTE_DB
FROM DUAL;
CREATE DATABASE LINK &REMOTE_DB CONNECT TO CURRENT_USER USING '&REMOTE_DB' ;
SELECT TABLE_NAME FROM ALL_TABLES@&REMOTE_DB;output
SQL> @test
REMOTE_DB
EMSDB.D999.DE
REMOTE_DB
EMSDB.D999.DE
SELECT TABLE_NAME FROM [email protected]
FEHLER in Zeile 1:
ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt
SQL>Edited by: user5116754 on 22.02.2011 04:33user5116754 wrote:
Thank you, John...but should it be possible for me to create this database link then???
As I said, if you are not a global user according to Oracle, you would need to create a database link supplying the username and password of the user at the remote database that you want to use. Something like:
CREATE DATABASE LINK EMSDB.D999.DE
CONNECT TO username IDENTIFIED BY password
USING 'EMSDB.D999.DE';
How to spy out, what kind of user (GLOBAL...) I am?Log into the local database and do:
SELECT external_name
FROM user_uses;If that return null, then you are not a global user, if it returns a value, you are a global user in that database. Log into the remote database (whatever is identified by emsdb.d999.de) and do the same thing. If the external names on both databases are not null and have the same value, then you are a global user on both databases, and the current_user should work, otherwise you are ethe not a global user on one or both databases, or you are a different global user on the two databases.
John -
Database Link with 11g R2 and Teradata
Trying to create a database link from Oracle to a Teradata database using Oracle Database Gateway, and I'm receiving ORA-12154: TNS:could not resolve the connect identifier specified...
I'm pretty new at this and my head is spinning a bit. After following the gateway configuration instructions it seems there are 3 sets of tnsnames.ora/listener.ora/sqlnet.ora files
1) on the database server
2) on my local computer where oracle is installed
3) on my local computer where the gateway is installed
Is this how it should be? Which set should I be working with to resolve this error? Any other advice for this newbie would be amazing! Let me know what other information I can share to help describe the issue. I've tried so many things at this point, I'm not really sure what's relevant and what's not anymore.Ok, got it. I was not in the command prompt as an administrator for my first couple attempts. Results are below. I have been replacing host names with italicized descriptions because this is my first time posting on a forum and I'm not sure that my employer would be okay with me posting those specifics. Let me know if this is hindering the troubleshooting process.
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Produ
ction
Start Date 18-JUN-2014 10:01:08
Uptime 0 days 0 hr. 0 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File C:\product\11.2.0\tg_1\network\admin\listener.ora
Listener Log File c:\product\11.2.0\tg_1\log\diag\tnslsnr\COQC2DPRDMGT00
1\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=local computer where gateway is installed)(P
ORT=1521)))
Services Summary...
Service "dg4tera" has 1 instance(s).
Instance "dg4tera", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
C:\WINDOWS\system32>
C:\WINDOWS\system32>tnsping dg4tera
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 18-JUN-2
014 10:02:03
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
C:\oracle\product\11.2.0\client_1\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=local computer where gateway is installed) (PORT=1521)) (CONNECT_DATA= (SID=dg4tera)) (HS=OK))
OK (10 msec)
C:\WINDOWS\system32>
C:\WINDOWS\system32> -
Stored procedure with database link with "from table(...)"
Hi guys,
I've been told I can't create views on a database by the design team and so have to use this stored procedure to obtain the values.
select HAN_ID, HAN_DS, GLOBAL_IN, LOCAL_IN
from table(cast(ODADMIN.ODP00002_QUERY.Execute001@DBLINK(11312,'EN') as
ODADMIN.ODP00002_001_Array@DBLINK)) WHERE LOCAL_IN = 'Y';I've been told that it works when you remove the database links (so on the actual database) when you remove the cast part. I've tried it with my link and with/without the cast part but it doesn't work. With the example above I get the error: ORA-00907: missing right parenthesis.
When I remove the CAST-AS and the additional parenthesis it brings i get the error: ORA-00904: "ODADMIN"."ODP00002_QUERY"."EXECUTE001": invalid identifier
When I do table( *"* ODADMIN.ODP00002_QUERY.Execute001@MWW_DEV(11312,'EN') *"* )... -- wrapping the call in speech marks I get: ORA-00972: identifier is too long
Anyone see what's wrong? Thanks for any help.
MikeHi Ben,
Asking now. By a view I mean one local to the database; I could create one on APEX but then I use the database link twice instead of just 1.
His reasoning Ben:
Firstly, Maintenance. We will have to maintain additional views (at additional code). Secondly, if the view has a JOIN, then you can't update through it (without complexities). If we have to get the View to pass the data to a Procedure (that's a pain). Also, standards..
All update occur via either a Procedure, or a Base view, across over 1000 tables
That's the standard, and doing things differently is costly long term
People will not know how it works, it will have to be explained, maintained..etc.
If the Application has the Business Rules, then updates via Base Views, that's a more standard way of developing. Also, if you update via this view, you'll update multiple rows in one call, which is in-effficient if only ONE row needs to change. Therefore, single row updates from the Application is more efficient
The procedure is as follows:
--SET SERVEROUTPUT ON
DECLARE
nPBusLoc NUMBER(5):=11312;
sPHanId VARCHAR2(3):='SB1';
sPLngId VARCHAR2(2):='EN';
sPDesc VARCHAR2(30);
sPAllowAlloc VARCHAR2(1);
sPShowEnq VARCHAR2(1);
sPAllowDel VARCHAR2(1);
sPShowScan VARCHAR2(1);
sPGlobalLocal VARCHAR2(1);
sPReturnCd VARCHAR2(2);
sPReturnTx VARCHAR2(100);
BEGIN
ODADMIN.ODP00001.getHandlingCodes
(nPBusLoc -- IN NUMBER
,sPHanId -- IN VARCHAR2
,sPLngId -- IN VARCHAR2
,sPDesc -- OUT VARCHAR2
,sPAllowAlloc -- OUT VARCHAR2
,sPShowEnq -- OUT VARCHAR2
,sPAllowDel -- OUT VARCHAR2
,sPShowScan -- OUT VARCHAR2
,sPGlobalLocal-- OUT VARCHAR2
,sPReturnCd -- OUT VARCHAR2
,sPReturnTx -- OUT VARCHAR2
DBMS_OUTPUT.PUT_LINE('nPBusLoc = '||nPBusLoc );
DBMS_OUTPUT.PUT_LINE('sPHanId = '||sPHanId );
DBMS_OUTPUT.PUT_LINE('sPLngId = '||sPLngId );
DBMS_OUTPUT.PUT_LINE('sPDesc = '||sPDesc );
DBMS_OUTPUT.PUT_LINE('sPAllowAlloc = '||sPAllowAlloc );
DBMS_OUTPUT.PUT_LINE('sPShowEnq = '||sPShowEnq );
DBMS_OUTPUT.PUT_LINE('sPAllowDel = '||sPAllowDel );
DBMS_OUTPUT.PUT_LINE('sPShowScan = '||sPShowScan );
DBMS_OUTPUT.PUT_LINE('sPGlobalLocal = '||sPGlobalLocal );
DBMS_OUTPUT.PUT_LINE('sPReturnCd = '||sPReturnCd );
DBMS_OUTPUT.PUT_LINE('sPReturnTx = '||sPReturnTx );
END;
/Mike
Edited by: Dird on 27-Aug-2009 01:50 -
Slow Query over Database Link with Bind Variable
I have a query over a DB link, with all tables on the remote database.
If I use a bind variable (from Toad), the query takes 4 minutes. If I replace the bind variable with a constant or substitution variable, it takes 1 second.
The query runs fine when run directly on the remote database using bind variable.
9.2.0.7Look up "Bind variable peeking"
What's happened is you have an execution plan that differs from the one with the constant. Why? My bet is that Oracle "peeked" at the bind variable to help it decide which execution plan to build. It then cached it. It probably cached an execution with an index when it should be doing a full table scan or a hash join instead of a nested loop. It's hard to say specifically what it is.
Try this, flush your shared pool and rerun the query with the bind and let us know if it takes 1 second or 4 minutes. If it takes 1 second, then that was probably it.
Read part 2 of Tom Kyte's blog post on what it is and it's behavior.
http://tkyte.blogspot.com/2007/09/sqltracetrue-part-two.html -
Multibyte issue in database link with sql server
Hi Gurus,
Greetings!!!
I need to transfer data from Microsoft SQL Server 2005 to Oracle DAtabase 10g(AL32UTF8 characterset). I achieved it using Heterogeneous Connectivity. I can now issue queries but unfortunately i got an issue in displaying multibyte characters. I thought of using another Tool that can display multibyte data but it did not help. I even tried setting the initialization parameter HS_LANGUAGE to different characterset but still not able to display. Kindly help and advise how to resolve the said issue.
Many Thanks in Advance,
BenjieWhat is the exact issue you're talking about?
Can you explain it or show us a sort of it with a sample output?
MS SQL Server is not our daily bread so we may not know how it works with Oracle and what problems are there in their interconnectivity, but we may tell you what may be the reason of a behavior that causes the issues for your purpose.
Bye Alessandro -
Creating Database link from Oracle9i to SQL server 2000
Pls how do I create connectivity from Oracle9i database to query a table in an SQL server 2000 database.
Pls I need the necessary steps to take.
ThanxThere are 2 solutions that you can use:
1) Transparent Gateway for SQL Server
2) Generic Connectivity
Generic Connectivity is free with the database but has less features than the Gateway. For Generic Connectivity you will need to obtain an ODBC driver.
The steps for using the gateway are available in the gateway manual and the steps for using Generic Connectivity is available in Chap 7 of the Heterogeneous Connectivity Administrator's Guide. -
Database Link beetwen SAP e SQL SERVER
Hi Gurus,
i need to read a table in SQL server, from a WebDynpro abap.
My OS is Unix not windows, how can i create a DBLINK to SQL server (for example es a Oracle system), is it possible?
thanks a lot.
Claudio.> i need to read a table in SQL server, from a WebDynpro abap.
> My OS is Unix not windows, how can i create a DBLINK to SQL server (for example es a Oracle system), is it possible?
To connect an ABAP system to another database the following is necessary:
- a database client for the target database
- a database interface library for the target database
Since both are not existing on Unix for Microsoft SQL Server the only (supported) thing you can do is to install a Windows application server and execute the application there.
Markus
Maybe you are looking for
-
Hello everyone, This is the requirement, I have a table like this below : Actual table: Item_Seller item_id seller_name 12310450 Pro Team 12310450 CSNStores.com 12310451 CSNStores.com 12310452 CSNStores.com 12310452 Pro Team 12310453 Pro Team 1231069
-
Could not write value ManageLLRouting
I encountered the error "could not write value ManageLLRouting to key \SYSTEM\CurrentControlSet\Services\Bonjour Service\Parameters. Verify that you have sufficient access to that key, or contact your support personnel.". I am already the adminstrato
-
32GB itouch is zooming in at random times, need help!
I just got an itouch for my birthday four days ago and was browsing and playing an application while the itouch was charging and randomly, it zoomed into the screen. I thought it was no big deal and when I tried to get it not to zoom, it wouldn't let
-
I have lost previously downloaded music during back-up.
I am trying to find music that I have lost during previous back-ups with older versions of iTunes, I had backed up my library to my external hard drive. I know where they are and am unable to get my music back. I have tried opening them. I have tried
-
Problem installing oracle 817 Personal Edition in non-interactive mode
When I install oracle 817 PE in silent mode, if there's a pre-8.1.6 version of Oracle already installed the Oracle Data Migration Assistant pops up. This is exactly what I don't want to happen. Is there a way to keep ODMA from launching? Thank you.