Selbstdefinierte Datentyp von Oracle in PHP auslesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Selbstdefinierte Datentyp von Oracle in PHP auslesen

    Servus alle zusammen,

    hab in meiner Oracle Datenbank nen eigen datentyp erstellt:

    create or replace type BLOB_PK_Obj is OBJECT ( zeiger BLOB, PK number)


    Dieser Typ liefert mir eine Function in der DB welche einen BLOB in die DB schieben soll als Rückgabewert.
    Frage ist jetzt wie ich die Wert in dem Datentyp (BLOB , number) in php auslese.

    Wenn ich die Funktion aufrufe kann ich ja dem Rückgabe wert einer Var. zuweisen, der Typ der Var. wird ja von PHP selbst gewählt. Aber wie komme ich jetzt an die Daten ran? Ist dann so ein Art Arry....


    Bin für jegliche Hilfe sehr Dankbar

    cullmann
  • was genau liefert PHP denn zur Zeit?

    mach mal ein var_dump um die Variable.
    Ich schätze mal so ungefähr:

    Quellcode

    1. <?php
    2. $conn = OCILogon("user","pw");
    3. $stmt = OCIParse($conn,"select * from foo; ");
    4. OCIExecute($stmt);
    5. OCIFetchStatement($stmt,$results);
    6. list($key, $val) = each($results)
    7. var_dump($val);
    8. OCIFreeStatement($stmt);
    9. OCILogoff($conn);
    10. ?>
    Alles anzeigen
  • ich habe da bei Oracle selbst 2 gute Dokumente gefunden
    * oracle_php_cookbook/fuecks_lobs.html]
    * www.oracle.com/[...]/php_troubleshooting_faq.html

    Ich hoffe der Code hilft dir:

    Quellcode

    1. <?php
    2. $conn = oci_connect(ORA_CON_UN, ORA_CON_PW, ORA_CON_DB);
    3. $query = 'SELECT BLOBDATA FROM BTAB WHERE BLOBID = :MYBLOBID';
    4. $stmt = oci_parse ($conn, $query);
    5. oci_bind_by_name($stmt, ':MYBLOBID', $myblobid);
    6. oci_execute($stmt, OCI_DEFAULT);
    7. $arr = oci_fetch_assoc($stmt);
    8. $result = $arr['BLOBDATA']->load();
    9. header("Content-type: image/JPEG"); //Hier dein Content Type einfügen
    10. echo $result;
    11. oci_free_statement($stmt);
    12. oci_close($conn); // log off
    13. ?>
    Alles anzeigen


    btw: Habe selbst kein Oracle - daher alles Theorie