gpt4 book ai didi

oracle - 使用UNIX shell脚本建立数据库连接

转载 作者:行者123 更新时间:2023-12-02 08:42:38 24 4
gpt4 key购买 nike

我是 shell 脚本新手,对此知之甚少或一无所知。我必须读取 db.properties 文件,其中包含数据库连接详细信息,即要连接到哪个数据库。然后我必须建立与该数据库的连接并执行操作来检查当前时间。

下面是我的 db.properties 文件:-

driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@171.01.187.94:1532:DEV
userName=abc
password=abc

下面是我调用 db.properties 文件的脚本:-

#!/bin/bash

file="./database.properties"

if [ -f "$file" ]
then
echo "$file found."
. $file

echo "User Id = " ${userName}
echo "user password = " ${password}
echo "url = " ${url}

sqlplus -S ${userName}/${password}@${url}

else
echo "$file not found."
fi

但我收到以下错误:-

错误:ORA-12154: TNS: 无法解析指定的连接标识符

有人可以帮忙解决上述问题吗?

最佳答案

不用担心 tnsnames.ora 定义,您拥有使用 sqlnet 建立连接所需的所有信息。

按如下方式修改您的database.properties 文件:

driverClassName=oracle.jdbc.driver.OracleDriver
url='(description=(address_list=(address=(protocol=TCP)(host=171.01.187.94)(port=1532)))(connect_data=(service_name=DEV)))'
userName=abc
password=abc

就是这样。您无需更改脚本。

#!/bin/bash

file="./database.properties"

if [ -f "$file" ]
then
echo "$file found."
. $file

echo "User Id = " ${userName}
echo "user password = " ${password}
echo "url = " ${url}

sqlplus -S ${userName}/${password}@${url}

else
echo "$file not found."
fi

注意:我假设DEV是数据库服务名称,如果是数据库SID只需将配置字符串修改为:

driverClassName=oracle.jdbc.driver.OracleDriver
url='(description=(address_list=(address=(protocol=TCP)(host=171.01.187.94)(port=1532)))(connect_data=(sid=DEV)))'
userName=abc
password=abc

问候

关于oracle - 使用UNIX shell脚本建立数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com