从oracle函数或带有out参数

时间:2015-06-11 17:05:08

标签: php oracle stored-procedures return out

我需要使用php开发一个Web应用程序。对于登录过程,。通常我会使用带有id和密码的select语句,如果row返回则成功登录。但是我想使用存储过程和不希望从数据库中获取任何行但只有boolean值。PL/SQL进程的签名如下。

procedure successful_login(cit_id in citizens.citizen_id%type,
                           pass in varchar2,v_login_successful out boolean)

我不会使用代码膨胀页面,但是程序会将v_login_successful更改为true或false,具体取决于成功登录,在PL / SQL中。但是我想从PHP调用此过程。如果我将php变量绑定到来自PHP的v_login_successful参数和执行过程,PL / SQL引擎会将v_login_successful变量的更改版本返回给PHP吗?

1 个答案:

答案 0 :(得分:0)

PL / SQL有Boolean datatype,但SQL没有。这意味着,你可以

  1. 在函数,过程,匿名块中使用它。
  2. 只有在PL / SQL上下文中使用它时才将它用作过程和函数中的参数。
  3. 当你从php调用这个过程时,它将是一个sql语句。你会得到IQueryable<>例外。

    相反,您可以将expression is of wrong type(Y或N)或CHAR(1)(0或1)数据类型用于out参数。