如何仅将 SQLPlus 错误保存到文件(从 powershell 调用)
Posted
技术标签:
【中文标题】如何仅将 SQLPlus 错误保存到文件(从 powershell 调用)【英文标题】:Howto save only SQLPlus errors to file (called from powershell) 【发布时间】:2016-09-13 08:46:15 【问题描述】:我正在从 powershell 调用 SQLPlus,如果出现问题,我会尝试向用户显示错误消息。如果没有问题,脚本应该继续。
这是我用的
sqlplus -S $user/$user@$server @$file
对于 sqlcmd,我设法做到了:
sqlcmd -S $serverLower -U $user -P $user -d $user -i $file -r1 2>errors.txt 1>$null
if (CheckIfFileExistsAndNotEmpty errors.txt)
get-content errors.txt | write-host
选项 -r 设置为 1 将输出错误,2>errors.txt 将它们写入文件。
如果可能不使用 SPOOL,我希望 SQLPlus 有类似的东西(sqlplus 执行的脚本是用户定义的,如果我不应该更改它们,我希望它。
【问题讨论】:
【参考方案1】:我自己找到的答案:
AddAsFirstLine $file "SPOOL $errorfilepath"
Add-Content -Path $file -Value "SPOOL off"
sqlplus -S $user/$user@$server @$file 1>$null
$errors = Select-String -Path $errorfilepath -Pattern "(SP2|ORA|Msg.*Level.*State.*Server.*Line|SQLConverter-Error:|Init-Error:|Invalid.filename)"
Set-Content -Path errors.txt $errors
Remove-Item $errorfilepath -Force | Out-Null
if (CheckIfFileExistsAndNotEmpty errors.txt)
Write-Host "Error while executing script"
get-content errors.txt | write-host
AddAsFirstLine 和 CheckIfFileExistsAndNotEmpty 是我声明的函数。
【讨论】:
以上是关于如何仅将 SQLPlus 错误保存到文件(从 powershell 调用)的主要内容,如果未能解决你的问题,请参考以下文章
pandas - 如何仅将 DataFrame 的选定列保存到 HDF5
是否可以仅将 HSQLDB 持久保存到内存中没有任何数据的文件?