如何用yii2调用oracle r12存储过程

时间:2017-02-13 06:08:27

标签: php sql yii2

我在oracle R12中创建了一个程序,如下所示,但我无法在YII2中得到结果。

CREATE OR REPLACE PROCEDURE myproctest(username IN OUT varchar2) is
encPass varchar2(255);
BEGIN
      select 
      aa.ENCRYPTED_USER_PASSWORD into encPass from
      fnd_user aa
      where aa.USER_NAME = username;
      username := encPass;
END;

当我从PLSQL执行它时它工作正常,但是当从yii2执行它时它总是显示1.以下是执行代码:

$query=Yii::$app->dboracle->createCommand(
"declare
   UserName varchar2(255) := 'MY-USERNAME';
begin
    myproctest(UserName);
    dbms_output.put_line(UserName);
end;");
$data = $query->execute();

我也尝试过以下执行:

$query=Yii::$app->dboracle->createCommand("CALL myproctest('TEST-USER')");     
$data = $query->execute();

但它显示以下错误:

  

ORA-06577:输出参数不是绑定变量

我想在变量中获取密码字段,请帮忙。

0 个答案:

没有答案