我想通过PowerShell运行oracle查询。单行查询运行正常,没有错误。但现在我必须运行多行查询。
set lines 400
select name,host_name,status,open_mode,to_char(startup_time,'DD-Mon-yy HH24:MI:SS') STARTUP_TIME from v$inst,v$db;
我试过这个
$sql=@(
"set lines 400
select name,host_name,status,open_mode,to_char(startup_time,'DD-Mon-yy HH24:MI:SS') STARTUP_TIME from v`$inst,v`$db"
)
还有多个选项,但它给了我错误ORA-00922。
我在PowerShell中使用ODP.net。
请告知。
更新
如果我在oracle中运行此查询(没有PowerShell),那么它运行正常。
答案 0 :(得分:1)
您的$ SQL变量是一个只有一行的数组:
$sql.Count
1
尝试以这种方式创建它:
$sql = @()
$sql += 'set lines 400'
$sql += 'select name,host_name,status,open_mode,to_char(startup_time,''DD-Mon-yy HH24:MI:SS'') STARTUP_TIME from v`$inst,v`$db"'
重要提示:
在字符串中使用'Quotes'时,你应该添加''Dobule Quoutes''否则它将是非法的 - 如下所示:''DD-Mon-yy HH24:MI:SS''