gpt4 book ai didi

powershell/sqlplus 错误 SP2-0042 : unknown command " ■@" - rest of line ignored

转载 作者:行者123 更新时间:2023-12-02 23:15:37 25 4
gpt4 key购买 nike

我在powershell中运行这个命令:

sqlplus system/passwd@mydb  @my_sql

我已经尝试过使用和不使用反引号以及通过 Google 找到的各种其他版本。当命令传递给 sqlplus 并且无法成功找到修复程序时,我不断收到错误消息。希望这里有人可以帮忙?

我得到的错误是:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SP2-0042: unknown command " ■@" - rest of line ignored.

所以我成功地连接到数据库,但是在'@'前面有一个额外的字符被传递给 sqlplus。 notepad++ 中的“ ■@”看起来像“¦@”

最佳答案

如果您在 powershell 中使用重定向(> 或 >>)创建了 SQL 命令文件,例如:

我的程序 > mySQL.out
然后像这样运行它:
&sqlplus mypw/myuser@mydb.xyz.com "@mySQL.out"

Powershell 可能将输出文件保存为 UTF-16 格式,Sqlplus 不喜欢这种格式。
(您可以通过手动创建完全相同的文件然后进行比较来确认 - 字节数将关闭,并且在 KDiff 中您将收到消息,表明文本相等,但文件不是二进制相等的)。

要修复 - 你需要做两件事:

  • 在 SQL 命令的顶部添加一些空白行 - Powershell 仍会在其中写入 BOM(字节顺序标记),看起来很难避免这种情况 - 但 sqlplus 会通过它,尽管会给出错误- 但会继续你的代码的其余部分。
  • 然后在创建文件之前在 powershell 中运行此命令: $PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'

  • Changing PowerShell's default output encoding to UTF-8

    我收到了这个错误:
    SP2-0042:未知命令“■S” - 忽略行的其余部分。
    这解决了这个问题 - 或者至少我能够运行它。您也可以使用 Notepad++ 将其从一个窗口剪切并粘贴到另一个窗口,这将解决 BOM 和编码问题。

    关于powershell/sqlplus 错误 SP2-0042 : unknown command " ■@" - rest of line ignored,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631901/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com