1. kamere
  2. Car Audio & Electronics
  3. Domači glasbeni sistem
  4. Osebni avdio
  5. televizorji
  6. Pametni dom
  >> Elektronske tehnologije Online >  >> Pametni dom >> Pametno življenje

Kako pretvoriti iz Clob v Varchar2 v Oracle

Pretvarjanje podatkov v nizovnem formatu med različnimi tipi podatkov je običajno preprost postopek v Oraclu, vendar so nekateri primeri nekoliko zahtevnejši od drugih. Eden od teh se zgodi, ko uporabite Oracle za pretvorbo clob v varchar2, kar je težko, ker ima stolpec varchar2 največ 4000 znakov, medtem ko lahko clob shrani ogromne količine znakovnih podatkov. Še vedno lahko dosežete svoj cilj z uporabo metode dbms_lob substr ali to_char in določite največjo velikost.

Razlaga CLOB in VARCHAR2

CLOB (ali pogovorno "clob") je akronim za "znakovno velik objekt" in lahko shrani do 4 GB podatkov. Uporablja ga več sistemov baz podatkov, vključno z DB2 in Oracle. CLOB je uporaben, ko morate shraniti velike količine podatkov, vendar lahko sama velikost v nekaterih situacijah povzroči težave. Zato je pretvorba iz Oracle CLOB v nizovni format bolj obvladljive velikosti pogosto dober pristop pred izvajanjem operacij.

Format VARCHAR2 shranjuje manjše količine podatkov, običajno do 4.000 bajtov, razen če uporabite razširjeno največjo velikost niza, v tem primeru lahko doseže do 32.767 bajtov. Za enobajtni nabor znakov lahko običajno dobite do 4000 znakov v stolpcu. Težave med pretvorbo nastanejo zaradi neskladja med največjimi velikostmi teh dveh formatov podatkov.

Metoda dbms_lob substr

Če želite pretvoriti niz clob v varchar2, odprite program SQL *Plus. Sintaksa za pretvorbo, ki jo morate izvesti, je:

SELECT dbms_lob.substr( clob_column, for_how_many_bytes, from_which_byte ) IZ tabele

Tukaj so vrednosti v oklepajih tiste, ki jih morate spremeniti, kot tudi "tabela" na koncu. Ti ustrezajo stolpcu ("clob_column") in tabeli, s katero delate. »for_how_many_bytes« vam omogoča, da določite, koliko bajtov podatkov želite pretvoriti, »from_which_byte« pa vam omogoča, da določite začetno točko.

Torej, če imate tabelo z imenom "davki" in polje z imenom "net_pay," in ob predpostavki, da želite 4000 bajtov od prvega, bi vnesli:

IZBERI dbms_lob.substr(net_pay, 4000, 1) IZ davkov

Če želite pretvoriti niz v obliko varchar2.

Metoda TO_CHAR

Za dosego istega cilja lahko uporabite tudi ukaz TO_CHAR z zelo podobno sintakso:

SELECT TO_CHAR(SUBSTR (clob_column,0,3999)) FROM tabela

Tu sta začetni in končni bajt podana kot 0 in 3999 (za niz s 4000 znaki, ki se začne od začetka), vendar se polji "clob_column" in "table" uporabljata na povsem enak način kot prej. Torej, v istem primeru lahko vnesete:

SELECT TO_CHAR(SUBSTR (net_pay,0,3999)) FROM davki

V bistvu, namesto dokončanja postopka v enem samem koraku, to uporablja ukaz SUBSTR, da povleče podniz iz večjega niza, nato pa uporabi "to_char" za obdelavo pretvorbe. Če ima zadevni stolpec clob manj kot 4000 bajtov informacij, lahko namesto podajanja podniza vnesete ime stolpca v oklepaj za to_char.


  1. Kako spremeniti Od DVR na DVD
  2. Kako spremeniti Od Loran
  3. Kako spremeniti v GPX datoteko
  4. Kako spremeniti Dolby 5,1-7,1
  5. Kako spremeniti ATRAC3 s CD-ja