我正尝试使用Powershell脚本对Oracle数据库执行插入操作。这种方法适用于选择查询,但是对于插入它会给出错误。我阅读了很多Stack Overflow帖子和各种其他网站,并尝试过各种方法,但没有一个能够工作。ORA-00917在Powershell中缺少逗号
我该如何调试?我不是Powershell的专家。我很确定这个SQL有一些问题。
Add-Type -Path "P:\Home\Full Oracle\ora11g_x86\odp.net\bin\2.x\Oracle.DataAccess.dll"
try
{
$compConStr = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=**)(PORT=1552)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=**)));User Id=**;Password=**;"
$oraConn= New-Object Oracle.DataAccess.Client.OracleConnection($compConStr)
$sid = "0001"
$region = "CH"
$timestamp = "2017-04-20 14:14:00"
$dep = "17-04-2017"
$scenario = "A"
$milestone = "ASB_XREF_GLCC_LOAD_2ND_END_E"
$finishtime = "2017-04-18/11:11"
$sql = "INSERT INTO APP_PDM_MART.PDM_GEAR_KPI_REP_SNOW(ST_ID,PRIORITY,STATUS,ACTIVE,ACTIVITY_DUE,ADD_REPORTED_BY,BUSINESS_CRITICALITY) VALUES($sid,$region,$timestamp,$dep,$scenario,$milestone,$finishtime)"
$oraConn.Open()
$command = New-Object Oracle.DataAccess.Client.OracleCommand($sql,$oraConn)
$tx = $oraConn.BeginTransaction()
$command.ExecuteNonQuery()
非常感谢。这解决了这个问题。我认为Oracle必须写出更好的错误。我在这方面挣扎如此之多。只有在随机测试后,我才意识到问题在于传递的数据。尽管我在某处传递字符串,但是通过在其下面明确添加它的工作,它被错误地自动铸造。 '$ finishtime = $参数[6]' '$ finishtime =''$ finishtime'“' –