ผู้พัฒนาโปรแกรมหลายท่านอาจจะเคยประสบปัญหาการใช้งานโปรแกรม PL/SQL Developer เพื่อเชื่อมต่อฐานข้อมูล Oracle ในครั้งแรก หลังจากผ่านการล้างเครื่องใหม่ และมีการติดตั้ง Oracle ภายในเครื่องแล้ว หรือต้องใช้โปรแกรม PL/SQL Developer เพื่อใช้งานในการเชื่อมต่อฐานข้อมูล โดยใช้ไฟล์ TNS Name ของ Oracle ไม่ว่าจะเวอร์ชันใดก็ตาม
ปัญหาที่พบหลังการติดตั้งโปรแกรม PL/SQL Developer เมื่อเราเข้าใช้งานโปรแกรม จะต้องใส่ Username Password และ Database ในส่วน Database จะแสดงรายชื่อการเชื่อมต่อที่มีการตั้งค่าไว้ใน TNS Name ของ Oracle เมื่อเลือกจะไม่แสดงรายชื่อการเชื่อมต่อ ให้คลิก Cancel ตัวโปรแกรมจะเปิดหน้าต่างแบบ Not Logged on จากนั้นให้ไปที่ Help –> Support Info… ตามภาพ

โปรแกรมจะแสดงรายละเอียด Oracle Info โดยใน Tab Info เมื่อเลื่อนลงมาด้านล่าง เราจะเห็นบรรทัดที่แสดง TNS File เป็นค่าว่าง ตามภาพ

วิธีการแก้ปัญหา ดังนี้
1. Download Oracle Instant Client
2. Extract to a folder
3. Set Environment Variables on Windows
4. Open PL/SQL developer and Config OCI connection
5. Restart PC.
1. Download Oracle Instant Client
(64 bits for latest version of PL/SQL; 32 bits for old version)
ที่ https://www.oracle.com/database/technologies/instant-client/downloads.html
เครื่องผู้ติดตั้ง ใช้ PL/SQL แบบ 32 bit จึงต้องโหลด Oracle Instant Client แบบ 32 bit ที่ https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
แล้วใช้ Oracle เวอร์ชันใด เบื้องต้นให้เราตรวจสอบภายในเครื่องที่ติดตั้ง ส่วนใหญ่เวลาการติดตั้ง Oracle จะ Default ที่ ไดร์ฟ D:\oracle หรือ ไดร์ฟ C:\oracle ของผู้เขียนใช้เวอร์ชัน 12.2.0 จึงดาวน์โหลดแบบ Basic Package ตามภาพ (การดาวน์โหลดจำเป็นจะต้องสมัคร Account กับทาง Oracle ด้วย)

2. Extract to a folder
ตัวอย่าง: C:\download\instantclient_12_2 ผู้เขียนทำการคัดลอกโฟลเดอร์ instantclient_12_2 ไปเก็บไว้ใน Folder ที่มีการติดตั้ง Oracle เพื่อง่ายในการถอนการติดตั้งหรือการตั้งค่าอื่นๆ โดยเก็บไว้ที่ C:\พาธไฟล์ที่ติดตั้งออราเคิล\instantclient_12_2

3. Set Environment Variables on Windows
ตั้งค่า Environment Variables ของ Windows เพื่อให้ระบบปฏิบัติการ หรือโปรแกรมอื่น ๆ รู้จักค่าที่ใช้และพาธของไฟล์ตั้งต้น
ไปที่ Search –> พิมพ์คำว่า env จากนั้นเลือก Edit the system environment variables

User variables


System variables
- ORACLE_HOME
Variable name: ORACLE_HOME
Variable value: C:\พาธไฟล์ที่ติดตั้งออราเคิล\dbhome_1

- TNS_ADMIN
Variable name: TNS_ADMIN
Variable value: C:\พาธไฟล์ที่ติดตั้งออราเคิล\dbhome_1\network\admin

การตั้งค่าส่วนนี้เป็นประโยชน์สำหรับผู้พัฒนาโปรแกรมที่ติดตั้ง Oracle หลายเวอร์ชัน เราสามารถจัดการค่าตั้งต้นแต่ละเวอร์ชันได้ด้วย
4. Open PL/SQL developer and Config OCI connection
เปิดโปรแกรม PL/SQL developer (ผู้เขียนใช้เวอร์ชัน 7.0) ไปที่ Tools (or Config) –> Preferences –> Oracle –> Connection แล้วหาคำว่า OCI Library
ใส่ค่าพาธไฟล์: C:\พาธไฟล์ที่ติดตั้งออราเคิล\instantclient_12_2\oci.dll
(ถ้าไม่ใส่ ตัวโปรแกรมจะ Auto Detected แต่กรณีนี้เครื่องผู้เขียนหาไฟล์ไม่เจอ จึงต้องระบุค่าไฟล์ oci.dll ที่ใช้ลงไปที่ช่องนี้)
จากนั้นคลิกปุ่ม OK แล้วปิดโปรแกรม

5. Restart PC.
ทำการ Restart เครื่องที่เราใช้งาน
เมื่อเปิดใช้งานโปรแกรม PL/SQL Developer ใหม่ จะสามารถเลือก Database จากชื่อ (Alias) ตามไฟล์ TNS Name ได้

และเมื่อกลับไปดูโปรแกรม PL/SQL ที่ Help –> Support Info… จะปรากฏชื่อ TNS File ตามภาพ

เพียง 5 ขั้นตอน เราสามารถเชื่อมต่อฐานข้อมูลจากไฟล์ TNS Name ได้แล้ว 🙂