liquibase更新显示“ ORA-12514,TNS:listener当前不知道连接描述符中请求的服务”错误

时间:2019-12-19 07:56:12

标签: oracle oracle12c liquibase

我正在尝试使用Oracle 12c数据库创建新的Liquibase项目。我的oracle数据库位于远程服务器上。这是我的项目更改日志,并保存为dbchangelog.xml在运行Liquibase的计算机上

<?xml version="1.0" encoding="UTF-8"?>

<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">

    <changeSet id="1" author="bob">
        <createTable tableName="department">
            <column name="id" type="int">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="name" type="varchar(50)">
                <constraints nullable="false"/>
            </column>
        <column name="active" type="boolean"                     
            defaultValueBoolean="true"/>
        </createTable>
   </changeSet>
</databaseChangeLog>

liquibase.properties文件保存如下

changeLogFile: /home/dbchangelog.xml
url : jdbc:oracle:thin:@<oracle_db_ip>:1521/ORCLDB
username : <user>
password : <password>
driver: oracle.jdbc.OracleDriver
classpath: /home/ojdbc6.jar

我是否需要将tnsname.ora保留在运行liquibase的计算机上?如果是的话,我应该把它放在哪里?

1 个答案:

答案 0 :(得分:2)

Liquibase使用jdbc API,因此您不需要tnsname.ora,也不需要计算机上的oracle客户端。 ORA-12514表示ORCLDB可能是错误的。

您可以使用以下查询找到SID:

select instance from v$thread