我遇到了正在运行的PowerShell脚本的问题。此脚本使用ODAC(oracle数据访问组件)连接到oracle数据库并获取一些值。
我最近不得不更改我在sql developer中用来连接数据库的端口号。
但是,当我尝试在我的powershell脚本中更改此端口号时出现错误
ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务
有关为何发生这种情况的任何想法?
答案 0 :(得分:0)
我使用以下内容:
我在C:\oracle
中安装 ODAC1120320Xcopy_x64.zip (请参阅较新版本here)
这是一个snipet ExecuteReader()
您还可以使用ExecuteNonQuery()
# Load Oracle assembly
Add-Type -Path "C:\oracle\odp.net\bin\4\Oracle.DataAccess.dll"
$compConStr = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.213.6.15)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=OURSERVICENAME)));User Id=User;Password=Pass;Pooling=False"
# Establish the connexion
$oraConn= New-Object Oracle.DataAccess.Client.OracleConnection($compConStr)
$oraConn.Open()
$sql1Tpl = @"
SELECT masi.yyyy as TYPE_ID FROM xxxx masi
WHERE masi.serno = '{0}'
"@
$sql1 = $sql1Tpl -replace "blabla"
# Exécution
$command1 = New-Object Oracle.DataAccess.Client.OracleCommand($sql1,$oraConn)
$command1.CommandTimeout = 1500
$reader1 =$command1.ExecuteReader()
$clocationID = $null
if ($reader1.HasRows -eq $true)
{
$read =$reader1.read()
if ($read -eq $true)
{
$clocationID = $reader1["C_LOCATION_ID"]
}
}
# Close the reader
$reader1.close()
# Disconect
$oraConn.Close()