Tietojen muuntaminen merkkijonomuodossa eri tietotyyppien välillä on yleensä suoraviivainen prosessi Oraclessa, mutta jotkut tapaukset ovat hieman haastavampia kuin toiset. Yksi näistä tapahtuu, kun käytät Oraclea muuttamaan clob varchar2:ksi, mikä on vaikeaa, koska a varchar2-sarakkeessa on enintään 4 000 merkkiä, kun taas clob voi tallentaa valtavia määriä merkkejä tiedot. Voit silti saavuttaa tavoitteesi käyttämällä joko dbms_lob substr -menetelmää tai to_char ja määrittämällä enimmäiskoon.
CLOB ja VARCHAR2 selitetty
CLOB (tai "clob" puhekielessä) on lyhenne sanoista "character large object", ja se voi tallentaa jopa 4 Gt tietoa. Sitä käyttävät useat tietokantajärjestelmät, mukaan lukien DB2 ja Oracle. CLOB on hyödyllinen, kun haluat tallentaa suuria tietomääriä, mutta koko itsessään voi aiheuttaa ongelmia joissain tilanteissa. Tästä syystä muuntaminen Oracle CLOBista hallittavamman kokoiseksi merkkijonomuotoon on usein hyvä tapa ennen toimintojen suorittamista.
Päivän video
VARCHAR2-muoto tallentaa pienempiä tietomääriä, yleensä jopa 4 000 tavua, ellet käytä laajennettua merkkijonon enimmäiskokoa, jolloin se voi nousta jopa 32 767 tavuun. Yksitavuisessa merkistössä sarakkeessa voi yleensä olla jopa 4 000 merkkiä. Näiden kahden tietomuodon enimmäiskokojen välinen ero on ongelma muuntamisen aikana.
dbms_lob substr -menetelmä
Jos haluat muuntaa clob-merkkijonon varchar2:ksi, avaa SQL *Plus -ohjelma. Suoritettavan muunnoksen syntaksi on:
SELECT dbms_lob.substr( clob_column, for_how_mony_bytes, from_which_byte ) FROM FROM
Tässä suluissa olevat arvot ovat niitä, joita sinun on muutettava, sekä "taulukko" lopussa. Nämä vastaavat saraketta ("clob_column") ja taulukkoa, jonka kanssa työskentelet. "for_how_many_bytes" antaa sinulle mahdollisuuden määrittää, kuinka monta tavua dataa haluat muuntaa, ja "from_which_byte" antaa sinun määrittää aloituspisteen.
Joten jos sinulla on taulukko nimeltä "taxes" ja kenttä nimeltä "net_pay", ja olettaen, että haluat 4 000 tavua ensimmäisestä alkaen, kirjoita:
SELECT dbms_lob.substr (net_pay, 4000, 1) veroista
Merkkijonon muuntaminen varchar2-muotoon.
TO_CHAR-menetelmä
Voit myös käyttää TO_CHAR-komentoa hyvin samankaltaisella syntaksilla saavuttaaksesi saman tavoitteen:
SELECT TO_CHAR(SUBSTR (klob_sarake, 0,3999)) taulukosta
Tässä alku- ja lopputavuiksi määritetään 0 ja 3999 (4000 merkkijonolle, joka alkaa alusta), mutta "clob_column"- ja "table"-kenttiä käytetään täsmälleen samalla tavalla kuin ennen. Joten samassa esimerkissä voit kirjoittaa:
SELECT TO_CHAR(SUBSTR (net_pay, 0,3999)) veroista
Periaatteessa sen sijaan, että prosessi suoritettaisiin loppuun yhdessä vaiheessa, tämä käyttää SUBSTR-komentoa alimerkkijonon vetämiseen suuremmasta merkkijonosta, ja sitten se käyttää "to_char"-komentoa muunnoksen käsittelemiseen. Jos kyseisessä clob-sarakkeessa on vähemmän kuin 4 000 tavua tietoa, voit kirjoittaa sarakkeen nimen suluihin to_char jälkeen sen sijaan, että määrittäisit alimerkkijonon.