Kā Oracle konvertēt no Clob uz Varchar2

Datu konvertēšana virknes formātā starp dažādiem datu tipiem parasti ir vienkāršs process Oracle, taču daži gadījumi ir nedaudz grūtāki nekā citi. Viens no tiem rodas, izmantojot Oracle, lai pārveidotu clob par varchar2, kas ir sarežģīti, jo a kolonnā varchar2 ir ne vairāk kā 4000 rakstzīmju, savukārt clob var uzglabāt milzīgu daudzumu rakstzīmju datus. Tomēr jūs joprojām varat sasniegt savu mērķi, izmantojot metodi dbms_lob substr vai to_char un norādot maksimālo izmēru.

CLOB un VARCHAR2 paskaidrots

CLOB (vai sarunvalodā "klobs") ir akronīms vārdam "rakstzīmju liels objekts", un tajā var saglabāt līdz pat 4 GB datu. To izmanto vairākas datu bāzes sistēmas, tostarp DB2 un Oracle. CLOB ir noderīgs, ja nepieciešams uzglabāt milzīgu datu apjomu, taču pats lielums dažās situācijās var radīt problēmas. Tāpēc pārveidošana no Oracle CLOB uz vieglāk pārvaldāma izmēra virknes formātu bieži ir laba pieeja pirms darbību veikšanas.

Dienas video

VARCHAR2 formāts saglabā mazāku datu apjomu, parasti līdz 4000 baitiem, ja vien neizmantojat paplašinātu maksimālo virknes izmēru, tādā gadījumā tas var sasniegt 32 767 baitus. Viena baita rakstzīmju kopai parasti kolonnā var iegūt līdz 4000 rakstzīmēm. Problēmas pārveidošanas laikā rodas šo divu datu formātu maksimālo izmēru neatbilstības dēļ.

Metode dbms_lob substr

Lai pārveidotu clob virkni par varchar2, atveriet programmu SQL *Plus. Veicamā reklāmguvuma sintakse ir šāda:

SELECT dbms_lob.substr( clob_column, for_how_many_bytes, from_which_byte ) NO tabulas

Šeit ir jāmaina vērtības iekavās, kā arī "tabula" beigās. Tie atbilst kolonnai ("clob_column") un tabulai, ar kuru strādājat. "for_how_many_bytes" sniedz iespēju norādīt, cik baitu datu vēlaties konvertēt, un "from_which_byte" ļauj norādīt sākuma punktu.

Tātad, ja jums ir tabula ar nosaukumu "nodokļi" un lauks ar nosaukumu "net_pay", un pieņemot, ka vēlaties 4000 baitus, sākot no pirmā, ievadiet:

SELECT dbms_lob.substr (net_pay, 4000, 1) NO nodokļiem

Lai pārvērstu virkni varchar2 formātā.

TO_CHAR metode

Varat arī izmantot komandu TO_CHAR ar ļoti līdzīgu sintaksi, lai sasniegtu to pašu mērķi:

SELECT TO_CHAR(SUBSTR (klob_kolonna, 0,3999)) NO tabulas

Šeit sākuma un beigu baiti ir norādīti kā 0 un 3999 (4000 rakstzīmju virknei, kas sākas no sākuma), bet lauki "clob_column" un "table" tiek izmantoti tieši tāpat kā pirms tam. Tātad tajā pašā piemērā varat ievadīt:

SELECT TO_CHAR(SUBSTR (neto_maksa, 0,3999)) NO nodokļiem

Būtībā tā vietā, lai pabeigtu procesu vienā solī, tiek izmantota komanda SUBSTR, lai izvilktu apakšvirkni no lielākās virknes, un pēc tam tā izmanto "to_char", lai apstrādātu konvertēšanu. Ja attiecīgajā clob kolonnā ir mazāk nekā 4000 baitu informācijas, varat ievadīt kolonnas nosaukumu iekavās aiz to_char, nevis norādīt apakšvirkni.