【问题标题】:How to call stored procedure with xml parameters using sqlcmd on Ubuntu如何在 Ubuntu 上使用 sqlcmd 调用带有 xml 参数的存储过程
【发布时间】:2018-07-25 12:22:52
【问题描述】:

在我的 Ubuntu 机器上,我需要调用一个接受 XML 输入参数的存储过程。我没有得到正确的方法来调用传递参数的存储过程。 我试过下面的命令

XML=$(echo "cat doc.xml")
sqlcmd -Q "exec MyStoredProc @Dataxml=$($XML)"

或者

sqlcmd -Q "exec MyStoredProc @Dataxml=$XML"

或者

sqlcmd -Q "exec MyStoredProc @Dataxml=$(XML)"

但这些都没有真正奏效。我的sqlcmd版本是17.1.0000.1 Linux

【问题讨论】:

    标签: sql-server linux ubuntu sqlcmd


    【解决方案1】:

    将 XML 参数值作为字符串文字传递:

    sqlcmd -Q "exec MyStoredProc @Dataxml='$XML';"
    

    【讨论】:

    • 感谢您的回答。它确实奏效了。我把它标记为接受。但是我的 XML 非常大,现在它抛出“参数列表太长”错误。您是否看到任何解决方法? XML 大小约为 900 KB
    • 或者可能是因为 xml 本身有单引号,所以 sqlcmd 将部分 XML 视为参数列表
    • @HSharma,如果使用单引号将属性值括起来,则为 true。否则,XML 将包含用于单引号的实体引用 &quote;,因此它不会被 SQLCMD 误解。
    猜你喜欢
    • 2011-09-18
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多