Comment puis-je me connecter à une base de données Oracle à partir de la Fourmi à l'aide de la tnsname?
Je suis à la recherche de quelque chose de similaire à la Fourmi sql tâche, mais qui va accepter url JDBC de la forme:
jdbc:oracle:thin:@TNS_NAME
Une approche possible semble être d'écrire ma propre tâche Ant qui utilise un OracleDataSource pour créer la Connexion, mais est-il un moyen de le faire directement dans Ant?
EDIT:
Merci pour les réponses les gars. J'espère que cela aide si j'élabore un peu plus sur l'erreur que je reçois.
Ma tâche Ant se présente comme suit:
<target name="MyTarget" >
<property name="oracle.net.tns_admin" value="/opt/oracle/product/10.2.0.1/NETWORK/ADMIN" />
<property name="jdbc.driver" value="ojdbc5.jar" />
<property name="jdbc.i18n.support" value="orai18n.jar" />
<property name="jdbc.driver.class" value="oracle.jdbc.OracleDriver" />
<path id="sql.class.path">
<pathelement location="${jdbc.driver}" />
<pathelement location="${jdbc.i18n.support}" />
</path>
<sql driver="${jdbc.driver.class}" url="jdbc:oracle:thin:@THE_TNS_NAME" userid="USER" password="PASSWORD" classpathref="sql.class.path" >
<![CDATA[
#SOME ARBITRARY SQL HERE
]]>
</sql>
</target>
Cela échoue avec l'erreur:
java.sql.SQLException: Io exception: hôte Inconnu spécifié
En remplaçant l'url par "jdbc:oracle:thin:@HOST:PORT:INSTANCE" fonctionne très bien, et je peux aussi tnsping le nom tns utilisé ci-dessus, donc je sais que c'est valable.
Il serait parfait si juste que cela fonctionne, mais je dois avoir fait quelque chose de mal. J'ai mis à jour la question avec mon script Ant--est-il une faute?
Êtes-vous de la connexion avec Oracle ou MySQL ?
OriginalL'auteur zakvdm | 2009-07-03
Vous devez vous connecter pour publier un commentaire.
Était simplement de travailler avec cela aujourd'hui et je suis tombé sur le morceau manquant. Le TNS emplacement doit être définie comme un système de propriété, comme indiqué ici: Oracle mince JDBC TNS nom
Après avoir fait cela, j'ai été en mesure de se connecter avec succès à l'aide de l'alias TNS seul.
OriginalL'auteur Doug Porter
Si vous voulez dire que vous voulez un "épais" connexion qui utilise le tnsnames.ora et pas la fine pilote, vous pouvez envelopper un appel à sqlplus dans le fichier xml:
... est l'idée de base.
[où nom d'utilisateur, mot de passe, et tnsalias sont définies dans votre fichier de propriétés]
De toute évidence, cela signifie que vous devrez avoir au moins le Client Instant pile installé.
OriginalL'auteur dpbradley
Puisque nous ne sommes pas maintenant encore, le problème est, je ne peux que supposer que ce qui pourrait aider:
http://theblasfrompas.blogspot.com/2008/04/jdbc-thin-connection-using-tnsnamesora.html
Je pense que oui. Vous faites comme ceci: <sysproperty key="test.la propriété" value="bleu" /> dont j'ai copié à partir d'ici: ideoplex.com/id/372/setting-java-system-properties-with-ant
OriginalL'auteur Jens Schauder
Êtes-vous sûr que c'est NETWORK/ADMIN et pas de réseau/admin?
Unix systèmes de fichiers sont généralement sensibles à la casse - (en supposant que c'est sur Unix).
OriginalL'auteur CaptainPicard