การแก้ปัญหา ORA-12154: TNS:Could not resolve the connect identifier specified ของ Navicat

              เนื่องจากมีการลงโปรแกรม Navicat และต้องการเซตค่าให้สามารถเชื่อมต่อกับฐานข้อมูล Oracle แล้วเกิด error คือ ORA-12154: TNS:Could not resolve the connect identifier specified ดังรูปด้านล่าง

จากปัญหาดังกล่าว ให้ตรวจสอบ ดังนี้

๑.    มีการติดตั้ง Oracle Client หรือ Instance Client ของ Oracle ไว้หรือไม่

๒.    เซต Path ของ TNS_ADMIN environment variable ไปที่ Instance
Client โดยคลิกขวาที่ This PC และเลือก Properties ดังรูปด้านล่าง

              ต่อจากนั้นให้คลิกที่ Advanced system settings ดังรูปด้านล่าง

              เมื่อคลิกแล้ว จะเห็นภาพด้านล่าง

              จะเห็นว่าไม่มี TNS_ADMIN จึงต้องทำการเพิ่มทั้งในส่วน User variables for admin และ System variables โดยคลิกปุ่ม New… ดังภาพด้านล่าง ให้พิมพ์ TNS_ADMIN ใน block Variable name และ คลิกเลือก Browse Directory เพื่อเลือก Directory ที่เก็บ tnsnames.ora

๓. ให้ copy tnsnames.ora ที่เคยใช้งานจากเครื่องเดิม ไปวางไว้ภายใต้ Path ที่ระบุโดยตัวแปร TNS_ADMIN

๔. ให้เรียกโปรแกรม Navicat เพื่อเซต OCI Path

      เมื่อเปิดโปรแกรมแล้ว ให้คลิกที่ Tools –> Options.. และคลิกที่ OCI และให้คลิกเลือก Directoty (OCI library (oci.dll)) ที่ติดตั้ง Instance Client ดังภาพด้านล่าง

๕. ปิดโปรแกรม และ restart เครื่องคอมพิวเตอร์

๖.   เมื่อเปิดเครื่องแล้วเรียกโปรแกรม Navicat มา ก็จะสามารถเชื่อมต่อฐานข้อมูล Oracle
ได้
แต่ในกรณีที่พบปัญหา ดังภาพด้านล่าง

              ปัญหาดังกล่าวเกิดจาก Instance Client ที่ติดตั้งไปเป็น 64 bit ซึ่งไม่สามารถใช้งานร่วมกับ Navicat ที่อยู่ในเครื่องได้ วิธีการแก้คือ ให้ download Instant Client 32 bit และทำการติดตั้งแทนที่ Instance Client 64 bit และทำการ set OCI Path ของ Navicat ให้ชี้ไปยัง Directory ของ Instance Client 32 bit แทน และ restart Navicat ก็จะสามารถใช้งานได้

อ้างอิง
: https://help.navicat.com/hc/en-us/articles/217791078-When-I-try-to-establish-connection-to-Oracle-server-in-Navicat-I-get-an-error-message-saying-Instant-Client-is-required-What-is-that-and-what-should-I-do-