从shell脚本调用PL/SQL存储过程并捕获输出参数

从shell脚本调用PL/SQL存储过程并捕获输出参数,shell,plsql,Shell,Plsql,问题: 我有一个PL/SQL存储过程callServlet(wire_type in varchar2,out_flag out varchar2)。在这个存储过程中,我必须 调用servlet。 最初,我需要一个shell脚本,它通过传入、传出shell中的参数来执行这个callServlet存储过程。 我需要从存储过程中捕获out_flag9Out参数)值,并且我必须计算存储的out_标志值 确定out_flagg的值是否成功 您能告诉我以下情况吗 如何通过传入和传出参数从shell脚本调用

问题:

我有一个PL/SQL存储过程callServlet(wire_type in varchar2,out_flag out varchar2)。在这个存储过程中,我必须 调用servlet。 最初,我需要一个shell脚本,它通过传入、传出shell中的参数来执行这个callServlet存储过程。 我需要从存储过程中捕获out_flag9Out参数)值,并且我必须计算存储的out_标志值 确定out_flagg的值是否成功

您能告诉我以下情况吗

  • 如何通过传入和传出参数从shell脚本调用存储过程(callServlet)
  • 如何调用callServlet存储过程发送的out参数
  • 我如何评估callServlet的out参数以了解状态是否为success

  • 提前谢谢

    首先创建一个名为callServlet.SQL的SQL*plus脚本:

    然后使用backticks从shell脚本调用SQL*plus和SQL脚本:

    flag=`sqlplus user/secret@database @callServlet.sql "xy"`
    

    out参数将分配给外壳变量标志。“xy”是参数wire_type的值。

    首先创建一个名为callServlet.SQL的SQL*plus脚本:

    然后使用backticks从shell脚本调用SQL*plus和SQL脚本:

    flag=`sqlplus user/secret@database @callServlet.sql "xy"`
    

    out参数将分配给外壳变量标志。“xy”是参数wire_type的值。

    我尝试了这个方法,当我执行shell脚本时,它不会简单地结束它的开始而没有任何结果。。我必须使用(ctrl-Z)在控制台上执行此操作。为了使用它,我们还有一个问题标志=
    sqlplus用户/secret@callServlet.sql“xy”
    。我们已经开始使用flag=
    sqlplus用户/secret@DATABASE_B要连接到特定的数据库,我必须以以下方式使用此命令flag=
    sqlplus user/secret@DATABASE_B@callServlet.sql“xy”`,我不认为这会起作用。很抱歉,shell脚本中有一个错误。你准确地指出了我的错误陈述。我现在已经修复了它。我尝试了这个,当我执行shell脚本时,它不是简单地结束它的启动而没有任何结果。。我必须使用(ctrl-Z)在控制台上执行此操作。为了使用它,我们还有一个问题标志=
    sqlplus用户/secret@callServlet.sql“xy”
    。我们已经开始使用flag=
    sqlplus用户/secret@DATABASE_B要连接到特定的数据库,我必须以以下方式使用此命令flag=
    sqlplus user/secret@DATABASE_B@callServlet.sql“xy”`,我不认为这会起作用。很抱歉,shell脚本中有一个错误。你准确地指出了我的错误陈述。我现在已经修好了。