[b]i create a procedure in oracle db with parameters and how can call this procedure in YII
please help me ?[/b]
[b]i create a procedure in oracle db with parameters and how can call this procedure in YII
please help me ?[/b]
Hi
try this
$command = Yii::app()->db->createCommand('call yourproc(param)');
$command->execute();
//OR
$command = Yii::app()->db->createCommand('SELECT * FROM yourproc(param)');
$command->queryRow();
Thanks
Please tell us the results!
Other members may know if it works!
Thanks
how to get return parameter in my function?
iam create a procedure in oracle such as,
create or replace procedure Proc1(p_out out number)
is
begin
p_out := 123;
end;
/
how can get p_out value in my page ?
See if example 4 on this page helps.
I didn’t try, but you could check that
$valrefer=null;
$command = Yii::app()->db->createCommand('call yourproc(:valrefer)');
$command->bindParam(":valrefer",$valrefer,PDO::PARAM_STR);
$command->execute();
echo $valrefer;
thank you for your response
i tried this code but an error occurred like this,
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 3131 OCIStmtExecute: ORA-03131: an invalid buffer was provided for the next piece
(ext\pdo_oci\oci_statement.c:148). The SQL statement executed was: call Proc1(:valrefer)
[b]
Finally i got a solution for procedure calling , thanks for all your valuable response, my code is
Hope anyone to help this code Thank you
[/b]
$pvStatus=''; //out
$pvPassword='***'; // In
$pvUsername='***'; // In
$command = Yii::app()->db->createCommand('call LoginAction(:pvUsername,:pvPassword,:pvStatus)');
$command->bindParam(":pvUsername",$pvUsername,PDO::PARAM_STR);
$command->bindParam(":pvPassword",$pvPassword,PDO::PARAM_STR);
$command->bindParam(":pvStatus",$pvStatus,PDO::PARAM_STR, 10);
$command->execute();
echo $pvStatus;
hello friend,
I am new to yii framework, I’m trying to implement the code but can not I write this code in the model.
want to run the procedure from a button on the view and return me a message and takes me to index my application
know as I do?
urgent please
thank you very much
create a function in your controller and put your procedure call code
like this
$command = Yii::app()->db->createCommand
('call Your_Function_Name (:nId,:pvDatabase,:pvUsername,:pvPassword)');// call the procedure
$pvId= $_POST['LoginForm']['database'];
$command->bindParam(":nId",$pvId,PDO::PARAM_INT,15); // bind parameter
$command->bindParam(":pvDatabase",$get_dbsname,PDO::PARAM_STR,100); // out parameter
$command->bindParam(":pvUsername",$get_dbuname,PDO::PARAM_STR, 100); // out parametermust have enter size exc(10)
$command->bindParam(":pvPassword",$get_dbpass,PDO::PARAM_INT, 100); // out parameter
$command->execute(); // execute the cammand
just print the $command variable , you will get the out variable values of the procedure
then redirect to the view page
$this->redirect(array('create','any_parameter'=>$your_value));
you can get $your_value variable in view
Thanks for your prompt help (Rathilesh).
want to call the function that has the procedure from a CLinkColumn and send the post id. like this:
code in admin.php
array(
‘class’=>‘CLinkColumn’,
‘header’ => ‘Aprobar’,
‘imageUrl’=>Yii::app()->baseUrl.’/images/approved.png’,
‘urlExpression’=>‘Yii::app()->controller(“actionCallProcedure”,array(“id”=>$data->ID_MENSAJES))’,
‘htmlOptions’=>array(‘style’=>‘text-aling:center’, ‘onclick’=>‘prueba();’),
),
I think the (‘urlExpression’=>‘Yii::app()->controller->createUrl(“actionCallProcedure”,array(“id”=>$data->ID_MENSAJES))’,) not so good
you see I’m trying to call this function in my controller called “actionCallProcedure” which has this code:
code in controller
public function actionCallProcedure($id){
$command = Yii::app()->db->createCommand
('call EttcPkDaMensajSigem.atenderMensaje (:id)');// call the procedure
$command->bindParam(":id",$id,PDO::PARAM_INT,15); // bind parameter
$command->execute(); // execute the cammand
$this->renderPartial('admin', array('model'=>$model)); //redirect to admin
}
error: The system is unable to find the requested action “CallProcedure”.
appreciate your help