本文整理汇总了PHP中oci_new_cursor函数的典型用法代码示例。如果您正苦于以下问题:PHP oci_new_cursor函数的具体用法?PHP oci_new_cursor怎么用?PHP oci_new_cursor使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了oci_new_cursor函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: readCursor
public function readCursor($storedProcedure, $binds)
{
//
// This function needs two parameters:
//
// $storedProcedure - the name of the stored procedure to call a chamar. Ex:
// my_schema.my_package.my_proc(:param)
//
// $binds - receives an array of associative arrays with: parameter names,
// values and sizes
//
// WARNING: The first parameter must be consistent with the second one
$conn = oci_connect('SECMAN', 'SECMAN', '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.10.24)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = cisqa)))');
if ($conn) {
// Create the statement and bind the variables (parameter, value, size)
$stid = oci_parse($conn, 'begin :cursor := ' . $storedProcedure . '; end;');
foreach ($binds as $variable) {
oci_bind_by_name($stid, $variable["parameter"], $variable["value"], $variable["size"]);
}
// Create the cursor and bind it
$p_cursor = oci_new_cursor($conn);
oci_bind_by_name($stid, ':cursor', $p_cursor, -1, OCI_B_CURSOR);
// Execute the Statement and fetch the data
oci_execute($stid);
oci_execute($p_cursor, OCI_DEFAULT);
oci_fetch_all($p_cursor, $data, null, null, OCI_FETCHSTATEMENT_BY_ROW);
// Return the data
return $data;
}
}
开发者ID:fajarnugrohoid,项目名称:nontaglis,代码行数:30,代码来源:OracleModel.php
示例2: get
public function get($id)
{
require_once 'DataBase.php';
$data = new DataBase();
$data->open();
$sql = "BEGIN GETRUTACONDUCTOR(:p_id, :rc); END;";
$sent = oci_parse($data->getConn(), $sql);
$refcur = oci_new_cursor($data->getConn());
$this->id = $id;
oci_bind_by_name($sent, ':p_id', $this->id);
oci_bind_by_name($sent, ':rc', $refcur, -1, OCI_B_CURSOR);
if (!oci_execute($sent)) {
return false;
}
if (!oci_execute($refcur)) {
return false;
}
while (($row = oci_fetch_array($refcur, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
$this->ruta = $row['ID_RUTA'];
$this->conductor = $row['ID_CONDUCTOR'];
$this->kilometraje = $row['KILOMETRAJE'];
$this->descripcion = $row['DESCRIPCION'];
}
oci_free_statement($refcur);
$data->free($sent);
$data->close();
return true;
}
开发者ID:CEMZ,项目名称:Privado,代码行数:28,代码来源:RutaConductor.php
示例3: __construct
/**
* Constructor.
*
* Receive a database adapter and try to allocate a new OCI cursor.
*
* @param Zend_Db_Adapter_Oracle $db
* @throws Zend_Db_Cursor_Exception
*/
public function __construct(Zend_Db_Adapter_Oracle $db)
{
// Get the OCI connection resource and a cursor
$conn = $db->getConnection();
$cursor = oci_new_cursor($conn);
// Check if the cursor is a valid resource
if (!is_resource($cursor)) {
require_once 'Zend/Db/Cursor/Exception.php';
throw new Zend_Db_Cursor_Exception('Can\'t allocate a cursor.');
}
// Setup $_cursor property
$this->_cursor = $cursor;
}
开发者ID:dcsystems,项目名称:goepa,代码行数:21,代码来源:Oracle.php
示例4: __construct
/**
* @param Connection $connection
* @param null $paging
* @param null $resource
*/
public function __construct(Connection $connection, $paging = null, &$resource = null)
{
parent::__construct($connection, $paging, $resource);
if (isset($resource)) {
if (is_resource($resource)) {
$this->resource = $resource;
} else {
$this->resource = oci_new_cursor($this->connection->resource);
$trace = debug_backtrace();
trigger_error('Invalid input via __construct(): value is not a valid resource for ("this->resource' . '") in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE);
}
} else {
$this->resource = oci_new_cursor($this->connection->resource);
}
}
开发者ID:khooz,项目名称:oci-classes,代码行数:20,代码来源:Cursor.php
示例5: DBExecSP
function DBExecSP($connection, &$cursor, $sql, $params = array(), $return = true, $mode = 1)
{
// Ejecuta un store procedure..
// 0 = NO commit..
// 1 = Autocommit..
global $dbError;
$commit = OCI_COMMIT_ON_SUCCESS;
switch ($mode) {
case 0:
$commit = OCI_DEFAULT;
break;
case 1:
$commit = OCI_COMMIT_ON_SUCCESS;
break;
}
$cursor = oci_new_cursor($connection);
$stmt = oci_parse($connection, $sql);
foreach ($params as $key => $val) {
oci_bind_by_name($stmt, $key, htmlspecialcharsDecodeUpper($params[$key]));
}
if ($return) {
oci_bind_by_name($stmt, "data", $cursor, -1, OCI_B_CURSOR);
}
$error = !oci_execute($stmt, $commit);
$error = ($error or !oci_execute($cursor, $commit));
if ($error) {
$dbError = oci_error($stmt);
if (isset($dbError["offset"])) {
DBRollback($connection);
// Hago un rollback por si el query con el error venía sin transacción..
saveSqlError($connection, $dbError["message"], $sql, $params);
EscribirLogTxt1('Error DBExecSP sql', $sql);
EscribirLogTxt1('Error DBExecSP params', implode(",", $params));
EscribirLogTxt1('Error DBExecSP e ', $error . " ---- " . $dbError["message"]);
throw new Exception("Error inesperado. [" . date("d/m/Y H:i:s") . "]");
}
}
return $stmt;
}
开发者ID:javierlov,项目名称:FuentesWeb,代码行数:39,代码来源:oracle_funcs.php
示例6: Cursor
public function Cursor($stored_proc, $bind)
{
if (!is_resource($this->conn_handle)) {
return false;
}
$sql = "begin {$stored_proc}(:{$bind}); end;";
$curs = oci_new_cursor($this->conn_handle);
$stmt = oci_parse($this->conn_handle, $sql);
oci_bind_by_name($stmt, $bind, $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);
$this->FreeStatement($stmt);
return $curs;
}
开发者ID:Zniel,项目名称:fl_crtlpanel_self_dev,代码行数:14,代码来源:pm_oracle.class.php
示例7: _bindParam
/**
* Binds a parameter to the specified variable name.
*
* @param mixed $parameter Name the parameter, either integer or string.
* @param mixed $variable Reference to PHP variable containing the value.
* @param mixed $type OPTIONAL Datatype of SQL parameter.
* @param mixed $length OPTIONAL Length of SQL parameter.
* @param mixed $options OPTIONAL Other options.
* @return bool
* @throws Zend_Db_Statement_Exception
*/
protected function _bindParam($parameter, &$variable, $type = null, $length = null, $options = null)
{
$valueLob = '';
if ($variable instanceof ZendT_Type_Date) {
$variable = $variable->getValueToDb();
$variable = substr(str_replace('T', ' ', $variable), 0, 19);
} else {
if ($variable instanceof ZendT_Type_Number) {
$variable = $variable->getValueToDb();
$type = SQLT_FLT;
} else {
if ($variable instanceof ZendT_Type_Clob) {
$valueLob = $variable->getValueToDb();
$variable = oci_new_descriptor($this->_adapter->getConnection(), OCI_D_LOB);
$type = OCI_B_CLOB;
$length = -1;
} else {
if ($variable instanceof ZendT_Type_Blob) {
$valueLob = $variable->getValueToDb();
$variable = oci_new_descriptor($this->_adapter->getConnection(), OCI_D_LOB);
$type = OCI_B_BLOB;
$length = -1;
}
}
}
}
if ($variable instanceof ZendT_Type) {
$variable = $variable->getValueToDb();
}
// default value
if ($type === NULL || $type === Zend_Db::PARAM_STR) {
$type = SQLT_CHR;
}
if ($type == Zend_Db::PARAM_STMT) {
$type = OCI_B_CURSOR;
$variable = @oci_new_cursor($this->_adapter->getConnection());
if (empty($variable)) {
/**
* @see Zend_Db_Adapter_Oracle_Exception
*/
require_once 'Zend/Db/Statement/Oracle/Exception.php';
$error = array("code" => "", "message" => "Error to create oracle cursor");
throw new Zend_Db_Statement_Oracle_Exception(oci_error($variable));
}
}
// default value
if ($length === NULL) {
$length = -1;
}
$retval = @oci_bind_by_name($this->_stmt, $parameter, $variable, $length, $type);
if ($valueLob) {
$variable->WriteTemporary($valueLob);
}
if ($retval === false) {
/**
* @see Zend_Db_Adapter_Oracle_Exception
*/
require_once 'Zend/Db/Statement/Oracle/Exception.php';
throw new Zend_Db_Statement_Oracle_Exception(oci_error($this->_stmt));
}
return true;
}
开发者ID:rtsantos,项目名称:mais,代码行数:73,代码来源:Oracle.php
示例8: bindParam
/**
* Binds a parameter to the specified variable name
* @param string $parameter
* @param mixed $variable
* @param int $data_type
* @param int $length
* @param array $driver_options
* @return bool
*/
public function bindParam($parameter, &$variable, $data_type = PDO::PARAM_STR, $length = 4000, $driver_options = null)
{
if (strpos($parameter, ':') === false) {
$parameter = ':' . $parameter;
}
if (stripos($this->queryString, $parameter) === false) {
return true;
}
$isOutputParameter = $this->checkBitFlag($data_type, PDO::PARAM_INPUT_OUTPUT);
$data_type = $this->removeBitFlag($data_type, PDO::PARAM_INPUT_OUTPUT);
$ociParamType = $this->pdo2OciParamConst($data_type);
if ($ociParamType === SQLT_CHR) {
$variable = (string) $variable;
}
if (is_array($variable)) {
// TODO Не съм сигурен, дали ще се използва някога
$res = @oci_bind_array_by_name($this->stmt, $parameter, $variable, count($variable), $length, $ociParamType);
$this->checkError($res);
} else {
// Cursor
if ($ociParamType == OCI_B_CURSOR) {
$statementType = @oci_statement_type($this->stmt);
$this->checkError($statementType);
if (!in_array($statementType, array('BEGIN', 'DECLARE'))) {
throw new Exception('Bind cursor only in BEGIN or DECLARE statement');
}
$this->_cursor = @oci_new_cursor($this->ociPdoAdapter->getOciConnection());
$res = $this->_cursor;
$this->checkError($res);
$res = @oci_bind_by_name($this->stmt, $parameter, $this->_cursor, -1, $ociParamType);
$this->checkError($res);
} elseif ($lob_desc = $this->oci_lob_desc($ociParamType)) {
$this->_lobs[$this->_lobsCount]['type'] = $ociParamType;
$this->_lobs[$this->_lobsCount]['lob'] = @oci_new_descriptor($this->ociPdoAdapter->getOciConnection(), $lob_desc);
$res = $this->_lobs[$this->_lobsCount]['lob'];
$this->checkError($res);
$res = @oci_bind_by_name($this->stmt, $parameter, $this->_lobs[$this->_lobsCount]['lob'], -1, $ociParamType);
$this->checkError($res);
if (!$isOutputParameter) {
if (is_resource($variable) && get_resource_type($variable) === 'stream') {
$this->_lobs[$this->_lobsCount]['var'] = '';
$res = @$this->_lobs[$this->_lobsCount]['lob']->writeTemporary($this->_lobs[$this->_lobsCount]['var'], $ociParamType == SQLT_BLOB ? OCI_TEMP_BLOB : OCI_TEMP_CLOB);
$this->checkError($res);
$buffer = 8192;
while (!feof($variable)) {
$res = @$this->_lobs[$this->_lobsCount]['lob']->write(fread($variable, $buffer));
$this->checkError($res);
$res = @$this->_lobs[$this->_lobsCount]['lob']->flush();
$this->checkError($res);
}
} else {
$variable = (string) $variable;
$this->_lobs[$this->_lobsCount]['var'] =& $variable;
$res = @$this->_lobs[$this->_lobsCount]['lob']->writeTemporary($this->_lobs[$this->_lobsCount]['var'], $ociParamType == SQLT_BLOB ? OCI_TEMP_BLOB : OCI_TEMP_CLOB);
$this->checkError($res);
$res = @$this->_lobs[$this->_lobsCount]['lob']->flush();
$this->checkError($res);
}
} else {
$this->_lobs[$this->_lobsCount]['var'] =& $variable;
}
$this->_lobs[$this->_lobsCount]['input'] = !$isOutputParameter;
$this->_lobsCount++;
} else {
$res = @oci_bind_by_name($this->stmt, $parameter, $variable, $length, $ociParamType);
$this->checkError($res);
}
}
return $res;
}
开发者ID:neutrinobg,项目名称:yii2-oci2pdo,代码行数:79,代码来源:OciPdoStatementAdapter.php
示例9: oci_parse
$res = "BEGIN CPI.PKG_INDICADORES_PERF.PRC_PERFORMANCE_SC1_CALC(:CURSOR,:USUARIO); END;";
$res1 = oci_parse($c, $res);
// Bind the input parameter
$refcur = oci_new_cursor($c);
oci_bind_by_name($res1, ':CURSOR', $refcur, -1, OCI_B_CURSOR);
oci_bind_by_name($res1, ':USUARIO', $USUARIO, -1);
oci_execute($res1);
oci_execute($refcur);
}
/* LOGICA PARA BUSCAR POR SU_PAQ_IND - Sucursales */
if ($TABLAS == 'SU_PAQ_IND') {
// Obtengo los porcentajes mediante cursores
$res = "BEGIN CPI.PKG_INDICADORES_PERF.PRC_PERFORMANCE_SU_CALC(:CURSOR,:USUARIO); END;";
$res1 = oci_parse($c, $res);
// Bind the input parameter
$refcur = oci_new_cursor($c);
oci_bind_by_name($res1, ':CURSOR', $refcur, -1, OCI_B_CURSOR);
oci_bind_by_name($res1, ':USUARIO', $USUARIO, -1);
oci_execute($res1);
oci_execute($refcur);
}
echo "<div class='container'>\t\n\t</div>\n\t<div class='container'>\n\t\t<div class='sixteen columns'>\n\t\t\t<div class='field'>\n\t\t\t\t<input type=\"button\" id=\"boton_descargar_control\" onclick=\"performanceProceso()\" value=\"Descargar (Excel)\"/>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='sixteen columns'>\n\t\t\t\t<h3>Pre-Carga entre el {$FE_ESTADO_DESDE} y el {$FE_ESTADO_HASTA}</h3>\n\t\t</div>\n\t</div>";
// Empiezo a escribir los datos
echo "<div class='sixteen columns'>";
echo "<h3><a href=\"performanceProceso.php\">Volver Atrás</a></h3>";
echo "<table class='standard-table'>";
echo "<tr><th>Descripcion</th><th>Cantidad</th><th>Porcentaje</th><th>Ver mas</th></tr>";
$i = 0;
while ($row = oci_fetch_array($refcur, OCI_ASSOC + OCI_RETURN_NULLS)) {
if (strpos($row['FUSS_CD_TITULO'], 'Control ') !== false) {
echo "<td><span class=\"control\">" . $row['FUSS_CD_TITULO'] . "</span></td>\n";
开发者ID:erosennin93,项目名称:CPI,代码行数:31,代码来源:performanceProceso_datos.php
示例10: _set_curs_id
function _set_curs_id($name = '')
{
$this->curs_id[$name] = oci_new_cursor($this->conn_id);
return $this->curs_id[$name];
}
开发者ID:kishalayraj,项目名称:findresources,代码行数:5,代码来源:oracleDB.php
示例11: callCursorFunction
public static function callCursorFunction($procedure, $values = array())
{
$database = SQLDatabase::getInstance();
$sql = '';
$keys = array_keys($values);
$p_cursor = oci_new_cursor($database);
if (sizeof($values) > 0) {
$sql = 'BEGIN :callFunctionRes := ' . $procedure . '(' . implode(',', $keys) . '); END;';
} else {
$sql = 'BEGIN :callFunctionRes := ' . $procedure . '; END;';
}
$statement = oci_parse($database, $sql);
oci_bind_by_name($statement, ':callFunctionRes', $p_cursor, -1, OCI_B_CURSOR);
foreach ($keys as $key) {
oci_bind_by_name($statement, $key, $values[$key], 512);
}
if (@(!oci_execute($statement))) {
$errors = oci_error($statement);
return array('success' => false, 'data' => 'Error : ' . $errors['code'] . ' => ' . $errors['message'], 'params' => $values);
}
oci_execute($p_cursor);
$result = array();
oci_fetch_all($p_cursor, $result, null, null, OCI_FETCHSTATEMENT_BY_ROW);
return array('success' => true, 'data' => $result, 'params' => $values);
}
开发者ID:wdst,项目名称:PHPOracleSQLDatabase,代码行数:25,代码来源:SQLDatabase.php
示例12: actionTry
public function actionTry()
{
if ($_POST != '') {
Yii::app()->oracle->sessStart();
$conn = Yii::app()->oracle->getOracleConnection();
$session_id = $_POST['session_id'];
$user_id = $_POST['user_id'];
$dataset = $_POST['dataset'];
$complex = $_POST['complex'];
/*$session_id = '200136441';
$user_id = '200000081';
$dataset = '162';
$complex = '300';*/
/*$session_id = $_SESSION['client_session_id'];
$user_id = $_SESSION['user_id'];
$dataset = $_SESSION['dataset'];
$complex = $_SESSION['complex'];*/
//start SidebarTree packs
$notifications_curs = oci_new_cursor($conn);
$rows = array();
$notification_obj = oci_parse($conn, "begin comm.SET_CLIENT_INFO(:user_id,:dataset,:complex, :session_id); :p2:=DOB_CURSORS.counter(); end;");
oci_bind_by_name($notification_obj, ":p2", $notifications_curs, -1, OCI_B_CURSOR);
oci_bind_by_name($notification_obj, ":user_id", $user_id);
oci_bind_by_name($notification_obj, ":dataset", $dataset);
oci_bind_by_name($notification_obj, ":complex", $complex);
oci_bind_by_name($notification_obj, ":session_id", $session_id);
oci_execute($notification_obj);
oci_execute($notifications_curs);
while ($row = oci_fetch_array($notifications_curs, OCI_ASSOC)) {
$rows[] = $row;
}
echo json_encode($rows);
/*$array = array();
Yii::app()->oracle->setClientInfo($conn, true, ":p1:=DOB_CURSORS.counter()", $array);*/
}
}
开发者ID:Szaharov,项目名称:GCB,代码行数:36,代码来源:DocFlowController.php
示例13: doProcedure
/**
* Lance une procédure stockées sur la connextion courante
* @param string $pProcedure la procédure a lancer
* @param array $pParams un tableau de paramètre à donner à la procédure
* le tableau est de la forme $pParams['nom'] = array ('type'=>, 'length'), 'in'=>, ''
* @return array un tableau de résultat avec array['results'] = résultats,
* array['params']['nomParam'] = valeur
*/
public function doProcedure($pProcedure, $pParams)
{
CopixLog::log($pProcedure . var_export($pParams, true), 'query', CopixLog::INFORMATION);
//Préparation de la requête
$stmt = @ociparse($this->_ct, $pProcedure);
if ($stmt === false) {
throw new CopixDBException('[CopixDB] Impossible de préparer la procédure ' . $pProcedure);
}
//On analyse les paramètres
$arVariablesName = array();
$arVariables = array();
foreach ($pParams as $name => $param) {
$variableName = substr($name, 1);
if (!is_array($param)) {
${$variableName} = $param;
if (!OCIBindByName($stmt, $name, ${$variableName}, 255)) {
throw new Exception("[CopixDB] Impossible de rapprocher '{$name}' avec '" . ${$variableName} . "' taille " . $arVariables[$variableName]['maxlength'] . " type " . $this->_convertQueryParam($arVariables[$variableName]['type']));
}
$arVariables[$variableName]['type'] = 'AUTO';
$arVariables[$variableName]['value'] = $param;
} else {
if (!isset(${$variableName})) {
${$variableName} = isset($param['value']) ? $param['value'] : null;
}
$arVariables[$variableName] = $param;
if (!isset($arVariables[$variableName]['type'])) {
$arVariables[$variableName]['type'] = CopixDBQueryParam::DB_AUTO;
}
if (!isset($arVariables[$variableName]['maxlength'])) {
$arVariables[$variableName]['maxlength'] = -1;
}
if ($arVariables[$variableName]['type'] === CopixDBQueryParam::DB_CURSOR) {
${$variableName} = oci_new_cursor($this->_ct);
}
if (!OCIBindByName($stmt, $name, ${$variableName}, $arVariables[$variableName]['maxlength'], $this->_convertQueryParam($arVariables[$variableName]['type']))) {
oci_free_statement($stmt);
throw new CopixDBException("[CopixDB] Impossible de rapprocher '{$name}' avec '" . ${$variableName} . "' taille " . $arVariables[$variableName]['maxlength'] . " type " . $this->_convertQueryParam($arVariables[$variableName]['type']));
}
}
}
//on exécute la requête
if (!ociexecute($stmt, OCI_DEFAULT)) {
$statementErrors = oci_error($stmt);
oci_free_statement($stmt);
throw new CopixDBException('[CopixDB] Impossible d\'exécuter la procédure ' . $pProcedure . ' - ' . var_dump($statementErrors) . ' avec les variables ' . var_dump($arVariables));
}
//analyse des résultats
foreach ($arVariables as $name => $value) {
//Si c'est un curseur
if ($value['type'] === CopixDBQueryParam::DB_CURSOR) {
if (!@ociexecute(${$name})) {
oci_free_statement(${$name});
oci_free_statement($stmt);
throw new CopixDBException("Impossible de récupérer l'ensemble de résultat de la variable {$name}");
}
$toReturn[':' . $name] = array();
while ($r = oci_fetch_object(${$name})) {
$toReturn[':' . $name][] = $r;
}
oci_free_statement(${$name});
} else {
$toReturn[':' . $name] = ${$name};
}
}
//On commit si le mode est autocommit
if ($this->_autoCommitMode == self::OCI_AUTO_COMMIT) {
$this->commit();
}
oci_free_statement($stmt);
CopixLog::log('Terminé', 'Procedure');
return $toReturn;
}
开发者ID:JVS-IS,项目名称:ICONITO-EcoleNumerique,代码行数:80,代码来源:CopixDbConnection.oci.class.php
示例14: setClientInfo
public function setClientInfo($conn, $cursor, $sql, $array)
{
$userid = $_SESSION['user_id'];
$dataset = $_SESSION['dataset'];
$complex = $_SESSION['complex'];
$session_id = $_SESSION['client_session_id'];
/* */
if ($userid != '') {
$_SESSION['activity'] = time();
$_SESSION['time'] = time();
Yii::app()->oracle->sessStart();
unset($_COOKIE['PHPSESSID']);
setcookie('PHPSESSID', null, time() - 86400, "/");
setcookie('PHPSESSID', session_id(), time() + 86400, "/");
}
/* */
$stid = oci_parse($conn, "begin comm.SET_CLIENT_INFO(:userid,:dataset,:complex, :session_id); {$sql}; end;");
if (!$stid) {
$e = oci_error($conn);
//trigger_error(htmlentities($e['message']), E_USER_ERROR);
Yii::app()->oracle->addLogs($e, $userid);
exit;
}
if ($cursor == true) {
$rows = array();
$curs = oci_new_cursor($conn);
oci_bind_by_name($stid, ":p1", $curs, -1, OCI_B_CURSOR);
} else {
oci_bind_by_name($stid, ":p1", $val, 200);
}
oci_bind_by_name($stid, ":userid", $userid);
oci_bind_by_name($stid, ":dataset", $dataset);
oci_bind_by_name($stid, ":complex", $complex);
oci_bind_by_name($stid, ":session_id", $session_id);
if (!empty($array)) {
foreach ($array as $key => $value) {
oci_bind_by_name($stid, "{$key}", $value, -1, SQLT_CHR);
}
}
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid);
Yii::app()->oracle->addLogs($e, $userid);
exit;
}
if ($cursor == true) {
$c = oci_execute($curs);
if (!$c) {
$e = oci_error($curs);
Yii::app()->oracle->addLogs($e, $userid);
exit;
}
while ($row = oci_fetch_array($curs, OCI_ASSOC)) {
$rows[] = $row;
}
echo json_encode($rows);
} else {
echo json_encode($val);
}
}
开发者ID:Szaharov,项目名称:GCB,代码行数:60,代码来源:OciOracleConnect.php
示例15: manual
function manual()
{
$conn = oci_connect('SECMAN', 'SECMAN', '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.10.24)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = cisqa)))');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}
/*
$sql = 'call BILL52.PKG_INFOAGENDA.CARI(:no_agenda,:prm_policy_no,:prm_date_of_loss,:prm_policy_details,:prm_success)';
$prm_policy_no = 'LCURSOR1';
$prm_date_of_loss = 'LCURSOR2';
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stmt = oci_parse($conn, $sql);
if (!$stmt)
print "Error parsing SQL";
$prm_policy_details = oci_new_cursor($conn);
$prm_success = '';
oci_bind_by_name($stmt, ':no_agenda', '553000511308190147')
or die('Error binding string');
oci_bind_by_name($stmt, ':prm_policy_no', $prm_policy_no, -1, OCI_B_CURSOR)
or die('Error binding string');
oci_bind_by_name($stmt, ':prm_date_of_loss', $prm_date_of_loss, -1, OCI_B_CURSOR)
or die('Error binding string');
oci_bind_by_name($stmt, ':prm_policy_details', $prm_policy_details, -1, OCI_B_CURSOR)
or die('Error binding cursor');
oci_bind_by_name($stmt, ':prm_success', $prm_success)
or die('Error binding string');
// Execute Statement
$execute_return = oci_execute($stmt);
if (!$execute_return)
print "Error Execution Stored Procedure";
//execute the CURSORS (this is one of the weird things about ref cursors
// w/ Oracle-- they must get EXECUTED
oci_execute($prm_policy_details);
print "<pre>";
print "Returned parameters<br/>\"";
print_r($prm_policy_details);
print "\"<br/>";
print "Sucess Code:" . $prm_success . "<br/>";
print "</pre>"; */
//You must asign before.
$p1 = '511400790653';
$p2 = 'LCURSOR1';
$p3 = 'LCURSOR2';
$p4 = 'LCURSOR3';
$p5 = '';
$stid = oci_parse($conn, 'begin BILL52.FAKMKWH.CARI(:p1,:p2,:p3,:p4,:p5); end;');
$p_cursor1 = oci_new_cursor($conn);
$p_cursor2 = oci_new_cursor($conn);
$p_cursor3 = oci_new_cursor($conn);
//Send parameters variable value lenght
oci_bind_by_name($stid, ':p1', $p1, 18) or die('Error binding string1');
oci_bind_by_name($stid, ':p2', $p_cursor1, -1, OCI_B_CURSOR) or die('Error binding string2');
oci_bind_by_name($stid, ':p3', $p_cursor2, -1, OCI_B_CURSOR) or die('Error binding string3');
oci_bind_by_name($stid, ':p4', $p_cursor3, -1, OCI_B_CURSOR) or die('Error binding string4');
oci_bind_by_name($stid, ':p5', $p5, 100, SQLT_CHR) or die('Error binding string5');
//Bind Cursor put -1
//oci_bind_by_name($stid, ':cursor', $p_cursor, -1, OCI_B_CURSOR);
// Execute Statement
/*
if (oci_execute($p_cursor1)){
while (($row = oci_fetch_array($p_cursor1, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo $row['NOAGENDA'] . "<br />\n";
}
}*/
if (oci_execute($stid)) {
oci_execute($p_cursor1, OCI_DEFAULT);
oci_fetch_all($p_cursor1, $cursor, null, null, OCI_FETCHSTATEMENT_BY_ROW);
echo '<br>';
print_r($cursor);
} else {
$e = oci_error($stid);
echo $e['message'];
}
/*
if($stid != false){
// parsing empty query != false
if(oci_execute($stid)){
// executing empty query != false
if(oci_fetch_all($stid, $cursor, 0, -1, OCI_FETCHSTATEMENT_BY_ROW) == false){
// but fetching executed empty query results in error (ORA-24338: statement handle not executed)
$e = oci_error($stid);
//.........这里部分代码省略.........
开发者ID:fajarnugrohoid,项目名称:nontaglis,代码行数:101,代码来源:Home+-+Copy.php
示例16: get
function get($id)
{
require_once 'DataBase.php';
$data = new DataBase();
$data->open();
$sql = "BEGIN GETVEHICULO(:id, :rc); END;";
$sent = oci_parse($data->getConn(), $sql);
$refcur = oci_new_cursor($data->getConn());
$this->id = $id;
oci_bind_by_name($sent, ':id', $this->id);
oci_bind_by_name($sent, ':rc', $refcur, -1, OCI_B_CURSOR);
if (!oci_execute($sent)) {
return false;
}
if (!oci_execute($refcur)) {
return false;
}
while (($row = oci_fetch_array($refcur, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
$this->id = $row['ID_VEHICULO'];
$this->placa = $row['PLACA'];
$this->kilometraje = $row['KILOMETRAJE'];
$this->serie = $row['SERIE'];
$this->motor = $row['MOTOR'];
$this->anio = $row['ANIO'];
$this->color = $row['COLOR'];
$this->marca = $row['MARCA'];
}
oci_free_statement($refcur);
$data->free($sent);
$data->close();
return true;
}
开发者ID:CEMZ,项目名称:Privado,代码行数:32,代码来源:Vehiculo.php
示例17: contohManggilRefCursor
public function contohManggilRefCursor($period, $ten_id)
{
$db2 = $this->load->database('default2', TRUE);
$sql = " DECLARE " . " i_retrun VARCHAR2(90); " . " BEGIN " . " C2BI.pack_seacrh_expense.p_seacrh_olo_expense_bck(:params1,:params2, :i_retrun, :cursor); END;";
$params = array(array('name' => ':params1', 'value' => $period, 'type' => SQLT_CHR, 'length' => 100), array('name' => ':params2', 'value' => $ten_id, 'type' => SQLT_CHR, 'length' => 32));
// Bind the output parameter
$stmt = oci_parse($db2->conn_id, $sql);
foreach ($params as $p) {
// Bind Input
oci_bind_by_name($stmt, $p['name'], $p['value'], $p['length']);
}
$cursor = oci_new_cursor($db2->conn_id);
$message = '';
oci_bind_by_name($stmt, ':i_retrun', $message, 32);
oci_bind_by_name($stmt, ":cursor", $cursor, -1, OCI_B_CURSOR);
oci_execute($stmt, OCI_DEFAULT);
oci_execute($cursor, OCI_DEFAULT);
// oci_fetch_all($cursor, $out, null, null, OCI_FETCHSTATEMENT_BY_ROW);
oci_fetch_all($cursor, $res);
print_r($res);
exit;
// return $message;
}
开发者ID:wiliamdecosta,项目名称:channel_management,代码行数:23,代码来源:m_loaddata.php
示例18: sti_oracle_get_data
function sti_oracle_get_data($connection_string, $data_source_name, $query)
{
$info = sti_oracle_parse_connection_string($connection_string);
if ($info["privilege"] == "") {
$conn = oci_connect($info["user_id"], $info["password"], $info["database"], $info["charset"]);
} else {
$conn = oci_pconnect($info["user_id"], $info["password"], $info["database"], $info["charset"], $info["privilege"]);
}
if ($conn === false) {
$err = ocierror();
return "ServerError:Could not connect {$err['message']}";
}
$query = sti_parse_query_parameters($query);
$stmt = oci_parse($conn, $query);
if ($stmt === false) {
$err = oci_error($conn);
return "ServerError:Parse Error {$err['message']}";
} else {
if (strpos($query, "cursor") !== false) {
$curs = oci_new_cursor($conn);
oci_bind_by_name($stmt, "cursor", $curs, -1, OCI_B_CURSOR);
}
if (oci_execute($stmt, OCI_COMMIT_ON_SUCCESS) === true) {
if (isset($curs)) {
if (oci_execute($curs, OCI_DEFAULT) === false) {
$err = oci_error();
return "ServerError:Cursor Execute Error {$err['message']}";
}
$stmt_curs = $curs;
} else {
$stmt_curs = $stmt;
}
$ncols = oci_num_fields($stmt_curs);
$column_names = array();
$column_types = array();
for ($i = 1; $i <= $ncols; $i++) {
$column_names[] = oci_field_name($stmt_curs, $i);
$column_type = oci_field_type($stmt_curs, $i);
$column_precision = oci_field_precision($stmt_curs, $i);
$column_types[] = sti_oracle_get_column_type($column_type, $column_precision);
}
$xml_output = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Database>";
oci_fetch_all($stmt_curs, $data);
for ($i = 0; $i < count($data[$column_names[0]]); $i++) {
$xml_output .= "<{$data_source_name}>";
for ($j = 0; $j < count($column_names); $j++) {
$value = $data[$column_names[$j]][$i];
if ($column_types[$j] == "base64Binary") {
$value = base64_encode($value);
}
if ($column_types[$j] == "dateTime" && strlen($value) > 0 && strpos($value, ".") > 0) {
$values = preg_split("/\\./", $value);
if (count($values) >= 3) {
if (strlen($values[2]) > 2) {
$value = $values[2] . '-' . $values[1] . '-' . $values[0];
} else {
$value = ((int) $values[2] >= 30 ? '19' . $values[2] : '20' . $values[2]) . '-' . $values[1] . '-' . $values[0];
}
}
} else {
$value = str_replace("&", "&", $value);
$value = str_replace("<", "<", $value);
$value = str_replace(">", ">", $value);
}
$xml_output .= "<{$column_names[$j]}>{$value}</{$column_names[$j]}>";
}
$xml_output .= "</{$data_source_name}>";
}
$xml_output .= "</Database>";
if (isset($curs)) {
oci_free_statement($curs);
}
oci_free_statement($stmt);
} else {
$err = ocierror($stmt);
return "ServerError:Execute Error {$err['message']} {$query}";
}
}
return $xml_output;
}
开发者ID:abdulghanni,项目名称:gsm,代码行数:80,代码来源:database_oracle.php
示例19: get
public function get($id)
{
require_once 'DataBase.php';
$data = new DataBase();
$data->open();
$sql = "BEGIN GETMANTENIMIENTO(:id, :rc); END;";
$sent = oci_parse($data->getConn(), $sql);
$refcur = oci_new_cursor($data->getConn());
$this->id = $id;
oci_bind_by_name($sent, ':id', $this->id);
oci_bind_by_name($sent, ':rc', $refcur, -1, OCI_B_CURSOR);
if (!oci_execute($sent)) {
return false;
}
if (!oci_execute($refcur)) {
return false;
}
while (($row = oci_fetch_array($refcur, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
$this->factura = $row['FACTURA'];
$this->proveedor = $row['PROVEEDOR'];
$this->fecha = $row['FECHA_REPARACION'];
$this->monto = $row['MONTO_REPARACION'];
$this->descripcion = $row['DESCRIPCION'];
$this->vehiculo = $row['ID_VEHICULO'];
$this->tipoMantenimiento = $row['ID_TIPO_MANTENIMIENTO'];
}
oci_free_statement($refcur);
$data->free($sent);
$data->close();
}
开发者ID:CEMZ,项目名称:Privado,代码行数:30,代码来源:Mantenimiento.php
示例20: queryCursor
function queryCursor($conexion, $sql)
{
$fp = fopen("./log/log.log", "a");
fwrite($fp, DATE("d/M/y") . " " . $sql);
fwrite($fp, PHP_EOL);
$curs = oci_new_cursor($conexion);
$s = oci_parse($conexion, $sql);
oci_bind_by_name($s, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($s, OCI_DEFAULT);
oci_execute($curs, OCI_DEFAULT);
$arrayResult = array();
while ($row = oci_fetch_array($curs, OCI_ASSOC + OCI_RETURN_NULLS)) {
foreach ($row as $key => $item) {
fwrite($fp, ($item !== null ? htmlentities($item, ENT_QUOTES) : ' ')
|
请发表评论