【发布时间】:2015-12-23 17:02:20
【问题描述】:
我是 PowerShell 的新手,并且还处于 SQL Server 的早期阶段,但我正在尝试为 SQL 代理作业编写一个 PowerShell 步骤,该作业查看包含 .sql 文件名称的 CSV 文件。
然后它应该查看另一个目录,如果 CSV 文件中的名称存在于该目录中,它应该打开 .sql 文件并执行其中的函数。
我收到一个错误:
无法将 'System.String 类型的对象转换为 System.Type 类型
任何帮助将不胜感激。
$excelFile = "C:/ExcelTest/Test.csv"
$functionDirectory = "some directory"
$excel_Array = (Get-Content $excelFile)[0].split(",")
foreach ($sqlName in $excel_Array)
{
if($sqlName::exists($functionDirectory + "/" + $sqlName) -ne $true)
{
invoke-sqlcmd -inputfile $functionDirectory + "/" + $sqlName -serverinstance "serverinstance" -database "database"
}
}
【问题讨论】:
-
$sqlName::exists()应该做什么?$sqlName是一个字符串,而字符串没有exists成员 -
你能贴出 CSV 文件的前几行吗?这会很有帮助。
-
@Eris DS_ESR_Day.sql, DS_ESR_PC_Month.sql, DS_GRgrtPEI_CP_Day.sql, DS_GRgrtPEI_Day.sql,我无法正确格式化,但在每个逗号之后都会换行。
-
@Eris 还有什么其他信息可以提供帮助吗?我已经调整了一段时间,得到了同样的错误。
-
@Eris 有什么想法吗?
标签: sql-server csv powershell sql-job