Oracle Query Вставка пустого BLOB-объекта

1

Я хочу вставить текстовый файл в столбце Blob таблицы. Я использую PHP для этого. Я использовал следующий запрос:

$qry = "INSERT INTO blobTable(date_input,file_name,blob_CONTENT) VALUES (SYSDATE,'$fileName',empty_blob()) RETURNING blob_CONTENT INTO :blob_CONTENT";
$stmt = OCIparse($conn,$qry);
$blob = ocinewdescriptor($conn, OCI_D_LOB);
ocibindbyname($stmt, ":Blob_CONTENT", $blob, -1, OCI_B_BLOB);
ociexecute($stmt);
$result = oci_num_rows($stmt);
ocicommit($conn);
ocifreestatement($stmt);
$blob->free();

Но вместо этого он вставляет в эту таблицу пустой Blob. Я также попробовал его с utl_raw.cast_to_raw но у него есть ограничение на 2K, но мои файлы должны быть размером> 10M.

С чем мне следует изменить свой запрос?

  • 0
    почему mysql ??????
Теги:
blob

1 ответ

0

Хорошо, я заработал, немного изменив код.

$tmpName  = $_FILES['datafile']['tmp_name']; //Temporary name of my file
$qry = "INSERT INTO fileTable(date_input,file_name,file_CONTENT) VALUES (SYSDATE,'$fileName',empty_blob()) RETURNING file_CONTENT INTO :file_CONTENT";
$stmt = OCIparse($conn,$qry);
$blob = ocinewdescriptor($conn, OCI_D_LOB);
ocibindbyname($stmt, ":file_CONTENT", $blob, -1, OCI_B_BLOB);
ociexecute($stmt, OCI_DEFAULT);
if ($blob->savefile($tmpName)){ 
//Missed this step initially.
    oci_commit($conn);
    echo "Blob successfully uploaded\n";
 }
 else

 {
    echo "Couldn't upload Blob\n";
 }
$result = oci_num_rows($stmt);
ocicommit($conn);
ocifreestatement($stmt);
$blob->free();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню