gpt4 book ai didi

oracle - 当程序路径包含空格时,SQL*plus 不会正确标记其命令行参数

转载 作者:行者123 更新时间:2023-12-04 15:47:42 28 4
gpt4 key购买 nike

我在以下命令行中使用 SQL*Plus:

sqlplus user/pw@TNS @test.sql foo
test.sql的内容跟随:
SET VERIFY ON
DEFINE argone='&&1'
SELECT '&argone' FROM dual;
EXIT SQL.sqlcode

结果:
  • 当 SQL*Plus 可执行文件在 C:\Program Files\Oracle Client\whatever\sqlplus.exe 中时然后 &&1计算结果为 Files\Oracle .
  • 当 SQL*Plus 可执行文件在 C:\Oracle\Client\10.2.xx\bin 中时然后 &&1计算结果为 foo .

  • 有没有人遇到过这个问题并有办法绕过它?

    最佳答案

    您需要在命令行和 define 中使用双引号。语句以正确捕获带空格的参数。

    脚本:

    SET VERIFY ON
    DEFINE argone="&&1"
    SELECT '&argone' FROM dual;
    EXIT SQL.sqlcode

    命令行:
    sqlplus user/pw@TNS @test.sql "foo bar"

    关于oracle - 当程序路径包含空格时,SQL*plus 不会正确标记其命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7470745/

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