Database Connectivity
TOAD is a database application that connects to, communicates with, and acts upon a database. As such, it requires a valid network pathway from itself to whatever target database you desire to connect to and work with. Regardless of whether that target database is on a database server on your company network or a local database running on your PC, TOAD must be able to see and communicate with it. As a consequence, database connectivity is a supremely critical aspect and step for proper setup and configuration. Figure 1.1 shows what such a valid basic network pathway should look like.
Figure 1.1 Network Pathway between TOAD and the Target Oracle Database
For your Windows PC, where do the four key parts (i.e., the four boxes on the left side of Figure 1.1) of that network pathway between TOAD and the database come from? The TCP/IP layer will already be there from your Windows installation and network card configuration. So that part's very easy—you have nothing to do. When you install TOAD, the "TOAD Application" part of Figure 1.1 is accomplished automatically. That leaves the "Oracle Call Interface (OCI)" and "Oracle SQL*Net Network Layer" parts of Figure 1.1: Where do they come from? To implement them, you must install the Oracle 32-bit network client from the Oracle installation CD or DVD. Of course, you can also download the software from the Oracle Technology Network (OTN), but you must abide by the license agreement, which states that you have a "limited license to use the programs only for the purpose of developing a single prototype of your application, and not for any other purpose." If your target database is also running on your Windows PC, then the installation process for the Oracle database software on your PC would have already created those items for you. As a consequence, you would not need to run the Oracle software installer twice. However, if you plan to run a 64-bit database locally, then you would need to run the Oracle installer a second time to force an installation of the 32-bit client that TOAD requires.
A very common question is, Can TOAD use Microsoft's Open Database Connect (ODBC)? The answer is an emphatic "no." The data access layer component within TOAD has been designed to communicate with the database solely via the OCI API provided by Oracle. TOAD will not work with ODBC connections.
But you're not done just yet—not by a long shot. Once the pieces shown in Figure 1.1 are in place on your Windows PC (i.e., the software is installed), you still need to provide network configuration information. This type of network information tends to be very detailed and site specific, such that any database applications using this framework know how to properly navigate the network pathway. An Oracle database usually has an address and a name by which you reference it. For example, the database might be named ORCL and might reside at network address 192.168.1.5. Clearly, Figure 1.1 does not show or imply how to address any of that information. In other words, the figure provides the highway infrastructure for traffic to flow, but it does not know anything about the server addresses or database names. You will have to manually configure that part of the system yourself. This step is supremely critical, as TOAD cannot talk to an Oracle database whose address and name cannot be resolved. For further reading, we strongly advise that someone at your site be familiar with the Oracle Database Net Services Administrator's Guide. In following examples, you'll notice that we specify port 1521: What is that and why did we use it? It's the default Oracle network port. This and a myriad of other Oracle issues are fully explained in the Oracle Database Net Services Administrator's Guide.
If you are working with a remote database (i.e., the database is not running on the same Windows PC as where you're running TOAD itself), then you need to configure just a single Oracle SQL*Net file: tnsnames.ora. It can be found in the "\network\admin" subdirectory under where you instructed the Oracle installer to install all the files for the Oracle products selected, which in our case is "C:\Oracle\product\11.1.0\db_1". Listing 1.1 shows what a basic tnsnames.ora file looks like to provide the information required to reach the remote database named ORCL and found on the server whose address is 192.168.1.5. When asking TOAD to connect to a database, the information contained within the tnsnames.ora file is absolutely critical; you can't make a collect call to a person if you don't know that individual's name and phone number. The same is true for Oracle databases.
Listing 1.1. Remote Database tnsnames.ora
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) (INSTANCE_NAME = ORCL) ) )
If you're instead working with a local database (i.e., the Oracle database is running on your Windows PC where you are also running TOAD), then you have a second file that must be properly configured—the database listener file, known as listener.ora. Think of the Oracle listener as a "traffic cop" listening to all the network traffic that passes by his machine. If any network packets contain an address and name that resides on that machine, then the traffic cop (i.e., the listener) waves them onto that server's streets. Otherwise, all the network traffic just sails on by. So now we have two Oracle SQL*Net files to properly configure. Listing 1.2 shows what a basic tnsnames.ora file looks like to provide the information required to reach the database named ORCL that resides on the local Windows PC, which you can generally access via the network alias localhost or the address 127.0.0.1. Listing 1.3 shows the corresponding listener.ora file. You will need both to connect TOAD to a local database; otherwise, you cannot traverse the network path even though it's all on the same machine.
Listing 1.2. Local Database tnsnames.ora
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) (INSTANCE_NAME = ORCL) ) )
Listing 1.3. Local Database listener.ora
SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (GLOBAL_DBNAME=ORCL) (ORACLE_HOME=C:\oracle\product\11.1.0\db_1) (SID_NAME=ORCL) ) ) LISTENER = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Finally, there are other mechanisms besides the tnsnames.ora file for resolving database addresses. For example, when using the Lightweight Directory Access Protocol (LDAP) concept, and as offered by Oracle Internet Directory (OID) or Microsoft Active Directory (AD), you will see on the TOAD connection screen that TOAD can also connect to databases using either direct connect information or LDAP-based lookup. However, both these options are beyond the scope of this book. Again, we refer you to refer to the Oracle Database Net Services Administrator's Guide.