尝试从 powershell 命令行使用 sqlplus 执行 sql 脚本

Posted

技术标签:

【中文标题】尝试从 powershell 命令行使用 sqlplus 执行 sql 脚本【英文标题】:Trying to execute sql script using sqlplus from powershell commandline 【发布时间】:2021-09-06 09:15:37 【问题描述】:

我正在尝试使用以下命令从 powershell 执行 sql 脚本:

sqlplus username/password@tnsnamesalias 'path to my sql file.sql'

如果我在没有脚本路径的情况下运行命令,我可以连接到数据库并执行命令。如果我包含脚本路径(包括空格),那么我只会得到 sqlplus 帮助文本,并且不会对数据库进行任何更改。我的 sql 脚本以 END 结束;和/

我做错了什么?

【问题讨论】:

【参考方案1】:

我相信你需要在路径前添加@ 符号:

sqlplus username/password@tnsnamesalias @'path to my sql file.sql'

【讨论】:

所以,我试过了,我得到以下错误:在此处字符串标题之后但在行尾之前不允许有任何字符。 + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnexpectedCharactersAfterHereStringHeader 我需要用 ` 来逃避它,谢谢!所以 sqlplus 用户名/密码@tnsnamesalias `@'path to my sql file.sql'【参考方案2】:

你忘记了“@”符号,这里的撇号错了。

这适用于我执行“test script.sql”文件

sqlplus .... "@test script.sql"

【讨论】:

以上是关于尝试从 powershell 命令行使用 sqlplus 执行 sql 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何从PowerShell命令行转义管道字符以传递到非PowerShell命令

PowerShell 命令行参数和“--”

Powershell:如何在未连接的计算机上安装适用于 PowerShell 的 Nuget 提供程序,以便可以从 PS 命令行安装 nuget 包?

Powershell在远程计算机上使用命令行参数执行远程exe

有没有办法从 Powershell 抑制所有命令行输出,包括错误

为啥从 powershell 命令行连接到 github 时出错?