When you need to connect any database , you need to provide connection string. Oracle is the same. What you need to provide is following information basically.
- Database Server Name or IP.
- Database Name, Oracle SID or Service Name
- Datapase Port
- Username and password
First connection method is Local naming which uses Oracle Net. Before TCP/IP was standardized a lot of third party networking protocols existed. To overcome this problem, oracle used Oracle NET. According to Oracle Documentation Local Naming : "Resolves a net service name stored in a tnsnames.ora file stored on a client". tnsnames.ora file contains 1-3 of above. Therefore you only need to provide (4) username and password. Below an example line of tnsnames.ora can be seen.
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=my-server) (PORT=1521)))
Second easy connect is same. You provide information contained in tnsnames.ora in command line. Here host = 1 , port (2), service_name = (3). As you can see it is same as first one. You give same information to connector as before. You may skip default information like port.
CONNECT username/password@host[:port][/service_name]
http://docs.oracle.com/cd/B13789_01/network.101/b10775/naming.htm#i476040
Third is Directory Server, LDAP Server like Microsoft Active Directory. Here you provide a key and directory server gives you back connection string. You use this connection string to connect to oracle.
Fourth one is same as Directory server , you only use other network services. As explained in oracle documentation.
"Configuring External Naming Methods
External naming refers to the method of resolving a net service name, stored in a non-Oracle naming service, to a network address."
According to NIS wikipedia: "Network Information Service, or NIS is a client–server directory service protocol for distributing system configuration data ...over time other modern and secure distributed directory systems, most notably LDAP, came to replace it."
As you can see, External Naming is same as Directory Server, only uses a different server technology (older) than LDAP.
http://docs.oracle.com/cd/B13789_01/network.101/b10775/naming.htm#i476040
These are four connection methods. I do think other than where do they get connection string information, they differ. Therefore easy connect should not have less performance than local naming.
Filegroup is completely irrelevant: a table doesn't know where it is and internal storage allocation or placement won't affect a query.
If you have a single MDF you most likely only have one PRIMARY (or default) filegroup anyway
image datatype is deprecated too: use varbinary(max).
Have you run SQL Profiler to see what Oracle is sending to SQL Server? Is there a call actually being made?
Edit: why does the 2nd trace use a table called "P44730584C4264287A49ABEAF_ADJ"
Best Answer
It's realistically a bug in whatever version of 10g you're using that would appear to be fixed in whatever version of 11g you're seeing an error on both statements.
I don't have a 10g database in front of me to test this. I would wager, through, that you'd get an error in both cases if you used the old-style join syntax rather than the SQL 99 syntax. That would imply that the problem is that Oracle wasn't translating from SQL 99 syntax to old-style syntax correctly and was missing the fact that the column was ambiguously defined.