Tirer différent de la VARCHAR2 Oracle CLOB?
Question
Avec MySQL, je suis en mesure de stocker de gros blocs de texte dans une colonne TEXT, traction comme je le ferais tout autre type de colonne sans problème.
Il semble que j'essaie de faire la même chose avec CLOB sur Oracle, je reçois des erreurs.
Voici où je tire:
<?php
$comments = 'SELECT q2_other, q4_comments, q9_describe, q10, q11_comments, q12_describe, additional_comments FROM exit_responses
WHERE sdate BETWEEN \'' . $start . '\'
AND \'' . $end . '\'';
$comments_results = oci_parse($conn, $comments);
oci_execute($comments_results);
while($row = oci_fetch_assoc($comments_results)){
if($row['Q2_OTHER'] != null){
echo '<div class="response">';
echo '<div class="info-bar">';
echo '<h5 class="date">' , date('F j, Y',strtotime($row['SDATE'])) , '</h5>';
echo ($_GET['names'] == 1) ? '<h5 class="name">' . $row['f_name'] . ' ' . $row['l_name'] . ' - ' . $row['title'] . ' - ' . $row['emp_type'] . '</h5>' : '';
echo '<div class="clear"></div>';
echo '</div>';
echo '<div class="comments">' , $row['q2_other'] , '</div>';
echo '<div class="clear"></div>';
echo '</div>';
}
}
?>
... et voici ce que je reçois lorsque je tente de print_r () $ row dans la boucle while ():
[Q2_OTHER] => OCI-Lob Object
(
[descriptor] => Resource id #17
)
... (ainsi que les autres colonnes de la requête)
Y at-il spécial quelque chose que je dois faire avec CLOBS ou est ma syntaxe juste un peu.
Merci:)
La solution
Pour les colonnes LOB BEC retour objet OCI-Lob, sur lequel vous devez appeler load()
ou read(int bytes)
pour obtenir le contenu:
$clob_contents = $row['Q2_OTHER']->load();
Autres conseils
ou vous pouvez utiliser comme drapeau OCI_RETURN_LOBS
$row = oci_fetch_array($connection_id, OCI_ASSOC | OCI_RETURN_LOBS)
pour aller chercher CLOB comme VARCHAR2:
$row['clob_field_name']