1. fotoaparati
  2. Car Audio & Electronics
  3. Home Audio
  4. Osobni Audio
  5. TV
  6. Pametna kuća
  >> Hrvatska Electronic Technology >  >> Pametna kuća >> Pametan život

Kako pretvoriti iz Clob u Varchar2 u Oracleu

Pretvaranje podataka u format niza između različitih vrsta podataka obično je jednostavan proces u Oracleu, ali neki su slučajevi malo zahtjevniji od drugih. Jedan od njih događa se kada koristite Oracle za pretvaranje clob u varchar2, što je teško jer stupac varchar2 ima maksimalno 4000 znakova, dok clob može pohraniti ogromne količine znakovnih podataka. Ipak, svoj cilj još uvijek možete postići korištenjem metode dbms_lob substr ili to_char i navođenjem maksimalne veličine.

Objašnjenje CLOB i VARCHAR2

CLOB (ili kolokvijalno "clob") je akronim za "character large object", a može pohraniti do 4 GB podataka. Koristi ga nekoliko sustava baza podataka, uključujući DB2 i Oracle. CLOB je koristan kada trebate pohraniti velike količine podataka, ali sama veličina može uzrokovati probleme u nekim situacijama. To je razlog zašto je pretvorba iz Oracle CLOB-a u format niza lakše upravljive veličine često dobar pristup prije izvođenja operacija.

Format VARCHAR2 pohranjuje manje količine podataka, obično do 4.000 bajtova, osim ako ne koristite proširenu maksimalnu veličinu niza, u kojem slučaju može ići do 32.767 bajtova. Za jednobajtni skup znakova obično možete dobiti do 4000 znakova u stupcu. Neusklađenost između maksimalnih veličina ova dva formata podataka mjesto je gdje nastaju problemi tijekom pretvorbe.

Metoda dbms_lob substr

Za pretvaranje clob niza u varchar2, otvorite svoj SQL *Plus program. Sintaksa za konverziju koju trebate izvesti je:

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

Ovdje su vrijednosti u zagradama one koje morate promijeniti, kao i "tablica" na kraju. Oni odgovaraju stupcu ("clob_column") i tablici s kojom radite. "for_how_many_bytes" daje vam mogućnost da odredite koliko bajtova podataka želite pretvoriti, a "from_which_byte" vam omogućuje da odredite početnu točku.

Dakle, ako imate tablicu pod nazivom "porezi" i polje pod nazivom "net_pay", i pod pretpostavkom da želite 4000 bajtova počevši od prvog, unijeli biste:

SELECT dbms_lob.substr(net_pay, 4000, 1) IZ poreza

Za pretvaranje niza u format varchar2.

Metoda TO_CHAR

Također možete koristiti naredbu TO_CHAR s vrlo sličnom sintaksom za postizanje istog cilja:

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

Ovdje su početni i završni bajt navedeni kao 0 i 3999 (za niz od 4000 znakova počevši od početka), ali polja "clob_column" i "table" koriste se na potpuno isti način kao i prije. Dakle, u istom primjeru možete unijeti:

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

U osnovi, umjesto dovršetka procesa u jednom koraku, ovo koristi naredbu SUBSTR za povlačenje podniza iz većeg niza, a zatim koristi "to_char" za upravljanje konverzijom. Ako dotični stupac clob ima manje od 4000 bajtova informacija, možete unijeti naziv stupca u zagrade nakon to_char umjesto navođenja podniza.


  1. Kako pretvoriti iz DVR na DVD
  2. Kako pretvoriti iz Loran
  3. Kako to pretvoriti u GPX datoteke
  4. Kako pretvoriti iz Dolby 5,1-7,1
  5. Kako to pretvoriti ATRAC3 s CD