代码之家  ›  专栏  ›  技术社区  ›  John M Gant aman_novice

在AIX上从isql调用Sybase存储过程:如何处理返回代码

  •  2
  • John M Gant aman_novice  · 技术社区  · 16 年前

    我有一个AIX批处理作业,它使用isql在Sybase中执行存储过程。在某些情况下,存储过程返回错误代码。我希望isql将该返回代码传递给AIX脚本。

    我可以在isql中捕获存储过程的返回代码,还是必须编写某种输出文件并让AIX脚本检查它?

    下面是isql命令的外观。它在Korn shell脚本中运行。

    isql -D$database -S$server -U$userId -P$password << EOF
    EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
    go
    EOF
    
    2 回复  |  直到 16 年前
        1
  •  2
  •   Nikolai Fetissov    16 年前

    如果我没记错的话 $? EOF

    
    if [[ $? != 0 ]]; then
        print "stored procedure failed"
        exit
    fi
    
        2
  •  0
  •   B0rG    16 年前

    这就是你想要实现的吗?

    isql -D$database -S$server -U$userId -P$password << EOF | grep RETVAL | awk -F"=" '{print $2}' | read value
    declare @retval int
    EXEC @retval = MY_STORED_PROC $AN_INPUT_PARAMETER
    SELECT "RETVAL=" + convert(varchar, @retval)
    go
    EOF
    
    echo "Procedure returned: $value"
    
        3
  •  0
  •   tagg    5 年前

    添加 --retserverror 在ISQL命令中,然后使用 $?