PowerShell ORA-12514:TNS:监听器当前不知道连接描述符

时间:2016-02-11 12:04:40

标签: oracle powershell listener tnsnames

我遇到了正在运行的PowerShell脚本的问题。此脚本使用ODAC(oracle数据访问组件)连接到oracle数据库并获取一些值。

我最近不得不更改我在sql developer中用来连接数据库的端口号。

但是,当我尝试在我的powershell脚本中更改此端口号时出现错误

ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务

有关为何发生这种情况的任何想法?

1 个答案:

答案 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()