我需要一些脚本的帮助。
情况如下:
我在oracle中有一个数据库,我想使用powershell插入bios数据。问题是我无法使用if else语句更新数据库,因为他一直说if是真的。
$bios = Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosSetting
($bios | Where-Object {$_.Name -eq 'boot order'})
$bios4 =echo $bios3.PSComputerName
$id ="select id FROM TESTAAD"
$CUR="SELECT id FROM TESTAAD WHERE WAARDE1 = $bios4"
if ($CUR -ne $id){
$qu= "INSERT INTO TESTAAD VALUES('$bios4','$waarde6','$waarde5','$waarde4','$waarde3','$waarde2','$waarde1','$id')"
$cmd = $con.CreateCommand()
$cmd.CommandText = $qu
$cmd.ExecuteNonQuery() |out-null
}
else
{
echo $bios4
$qu= "UPDATE TESTAAD SET waarde2 = '$waarde2' , waarde3 = '$waarde3' , waarde4 = '$waarde5' , waarde5 = 'bla' , waarde6 = '$waarde6' WHERE WAARDE1 = '$bios4'"
$cmd = $con.CreateCommand()
$cmd.CommandText = $qu
$cmd.ExecuteNonQuery() |out-null
echo $bios4
}
$con.CLose()
我今天想要的是首先插入带有id和pc名称的数据然后更新数据
答案 0 :(得分:0)
问题在于未更新的变量。 $CUR
被分配一次,但从未更新过。
您正在比较字符串 select id FROM TESTAAD
和SELECT id FROM TESTAAD WHERE WAARDE1 = $bios4
是否相等。我假设您想要比较SQL select语句结果是否相同。
您似乎错过了$id
和$CUR
包含的SQL语句的实际执行情况。 SQL查询肯定不会这样做:
$id ="select id FROM TESTAAD" # This is not performing an actual SQL query, only text
$CUR="SELECT id FROM TESTAAD WHERE WAARDE1 = $bios4" # Ditto
if ($CUR -ne $id){ # This is always true, as $id is not equal to $CUR
$qu= "INSERT INTO TESTAAD VALUES ('$bios4','$waarde6','$waarde5', `
'$waarde4','$waarde3','$waarde2','$waarde1','$id')"
$cmd = $con.CreateCommand()
$cmd.CommandText = $qu
$cmd.ExecuteNonQuery() |out-null
} else {
echo $bios4
$qu= "UPDATE TESTAAD SET waarde2 = '$waarde2' , waarde3 = '$waarde3', `
waarde4 = '$waarde5' , waarde5 = 'bla' , waarde6 = '$waarde6' WHERE WAARDE1 = '$bios4'"
$cmd = $con.CreateCommand()
$cmd.CommandText = $qu
$cmd.ExecuteNonQuery() |out-null
echo $bios4
}