Oracle: API для работы с файлом TNS?

Есть ли API, который будет считывать файл TNS и представлять его в некоторой простой в использовании структуре данных?

Я хотел бы получить список всех моих записей TNS. Это работает, но не особенно элегантно!

grep '^[a-zA-Z].*=' /etc/tnsnames.ora | sed 's/[ =].*//'

2 ответа

Решение

Другое, не очень простое, решение - ANTLR. Вы можете использовать ANTLR для разбора tnsnames.ora, На странице ANTLR Grammar List вы найдете грамматику, которая может анализировать tnsnames.ora, sqlnet.ora а также listener.ora

Я не уверен, что TNSPing будет более полезным для вас. Это выведет как:

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production
on 01-MAR-2009 02:02:33

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)
(HOST = myhostname)(PORT = 1521)) (CONNECT_DATA = (SID = mydb)))
OK (80 msec)

Проблема в том, что вы должны передать ему имя TNS для ping, что может или не может быть возможным в вашем сценарии.

Другие вопросы по тегам