DB_UPDATE_BLOB

DB_UPDATE_BLOB

Akcia DB_UPDATE_BLOB a DBS_UPDATE_BLOB


Funkcia

Zápis jedného záznamu typu LOB do tabuľky v databáze.
LOB (Large OBject) môže byť typu BLOB (Binary LOB), CLOB (Character LOB) alebo XMLType (CLOB pre prácu s xml dátami v Oracle DB).

Deklarácia

DB_UPDATE_BLOB handleIdent_Int, lobColNameIdent_Str, lobFileNameIdent_Str, retCodeIdent_Int, idKeyIdent [ORAHINT hintIdent_Str] DB_UPDATE_BLOB handleIdent_Int, lobColNameIdent_Str, lobFileNameIdent_Str, retCodeIdent_Int WHERE strExpression_Str [ORAHINT hintIdent_Str] DBS_UPDATE_BLOB dbObjIdent, lobColNameIdent_Str, lobFileNameIdent_Str, retCodeIdent_Int, idKeyIdent [TRANS transHandle_Int] [ORAHINT hintIdent_Str] DBS_UPDATE_BLOB dbObjIdent, lobColNameIdent_Str, lobFileNameIdent_Str, retCodeIdent_Int WHERE strExpression_Str [TRANS transHandle_Int] [ORAHINT hintIdent_Str]

Parametre

handleIdent_Int

in

Identifikátor typu Int - (handle) spojenia s databázou (DB_CONNECT).

lobColNameIdent_Str

in

Názov stĺpca typu LOB v tabuľke.

lobFileNameIdent_Str

in

Názov súboru, z ktorého bude prečítaný záznam typu LOB.

transHandle_Int

in

Identifikátor Pripojenia na databázu.

idKeyIdent

in

Kľúčová hodnota identifikujúca riadok (ak sa kľúč skladá z viacerých stĺpcov, idKeyIdent je štruktúra z rovnakého typu ako tabuľka - do úvahy sa berú iba hodnoty kľúčových stĺpcov).

strExpression_Str

in

Výraz typu String, ktorý definuje čítaný riadok tabuľky.

dbObjIdent

in

Odkaz na objekt typu Tabuľka.

retCodeIdent_Int

out

Návratová hodnota typu Int - úspešnosť akcie.

hintIdent_Str

in

Výraz typu String, ktorý definuje Oracle SQL hint. Ten je použitý ako inštrukcia pre optimalizátor výkonu SQL príkazu. Zapisuje hodnotu bez obaľujúcich znakov /*+ <orahint> */.
Príklad použitia je uvedený tu.

Návratový kód

Hodnota parametra retCodeIdent_Int - pozri tabuľku chybových stavov. Je možné získať rozšírenú informáciu o chybe.

Popis

Akcia DB_UPDATE_BLOB umožňuje zapísať jeden záznam typu LOB do tabuľky v databáze. Tabuľka je daná identifikátorom handle, ktorý bol získaný predchádzajúcim volaním akcie DB_CONNECT, alebo identifikátorom dbObject, ktorý predstavuje objekt typu Tabuľka. V druhom prípade ide o DBS_* akcie, ktoré nevyžadujú explicitné akcie otvorenia a zatvorenia databázy (DB_CONNECT a DB_DISCONNECT). Taktiež je možné použiť identifikátor bežiacej transakcie transHanlde_Int, ktorý bol získaný predchádzajúcim volaním akcie DB_TRANS_OPEN.
Zapisovaný záznam typu LOB je prečítaný zo súboru, ktorého meno je dané hodnotou identifikátora lobFileNameIdent_Str.
Hodnota identifikátora lobColNameIdent_Str označuje meno stĺpca v tabuľke, ktorého typ je LOB a bude prepisovaný.

Riadok (alebo riadky v závislosti od výslednej vyhovujúcej množiny riadkov), v ktorom prebehne zápis môže byť určený dvoma spôsobmi:

  1. Použitím parametra idKeyIdent. V tomto prípade musí byť v konfigurácii objektu typu Tabuľka uvedená kľúčová položka. Potom je v tabuľke hľadaný riadok, ktorý má zhodnú hodnotu pre kľúčovú položku.

  2. Hodnotou výrazu strExpression_Str, ktorý predstavuje klauzulu WHERE pre SQL príkaz SELECT vykonávajúci výber z tabuľky.

Parameter retCodeIdent_Int vráti príznak úspešného vykonania akcie _ERR_NO_ERROR alebo:

  1. _ERR_FILE_ERROR - ľubovoľná chyba pri práci so súborom.

  2. Iné štandardné chybové kódy.

Poznámka

Akcia bola testovaná na súbor veľký cca 175 MB. V  prípade, ak súbor presiahne veľkosť 32768 bajtov, je na strane D2000 DBManager v aktuálnom adresári vytvorený dočasný temporary súbor, ktorý sa po zápise do LOB-u automaticky zmaže.


Súvisiace stránky:

Akcie v skriptoch