2010-05-17 14 views
7

Próbowałem spojrzeć tutaj:Ile bajtów używa Oracle podczas przechowywania pojedynczego znaku?

http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i3253

I rozumiem, że muszę dostarczyć długość ciągu na kolumnie, po prostu nie jestem w stanie dowiedzieć się, jak wiele bajtów danych Oracle używa do przechowywania charakter. Mój limit to 500 znaków, więc jeśli jego 1 bajt/znak, mogę utworzyć kolumnę z 500, jeśli jej 2 bajty/znak to 1000, itd.

Ktoś ma link do dokumentacji lub wie na pewno?

Jeśli jest to ważne, SQL jest wywoływany z PHP, więc są to ciągi PHP wstawiane do bazy danych. Dzięki.

Odpowiedz

16

liczba bajtów potrzebnych do przechowywania charakter będzie zależeć od zestawu znaków. Jeśli chcesz przechowywać 500 znaków i nie znasz zestawu znaków docelowej bazy danych, powinieneś utworzyć kolumnę (lub zmienną) jako VARCHAR2 (500 CHAR) lub CHAR (500 CHAR).

+0

OK - dziękuję, zbada więcej informacji, aby znaleźć odpowiednie rozwiązanie. –

+3

To jest odpowiedź, która powinna zostać oznaczona jako zaakceptowana. Dodatkowo, jeśli chcesz sprawdzić, ile bajtów potrzeba, aby zapisać określony ciąg, użyj funkcji zrzutu. SELECT dump ("mój rodzaj długiego łańcucha") OD DUAL; –

+1

@Scott: możesz również użyć funkcji 'lengthb' –

-1

Pojedyncza CHAR zajmie 1 bajt.

Spróbuj tutaj:

http://ss64.com/ora/syntax-datatypes.html

+0

Zrobiłem - zakładam, że minimalna wartość to 1, ponieważ jest to rozmiar pojedynczego znaku. OK, fajne dzięki. –

+8

Jak wskazano w innych odpowiedziach, znak CHAR może składać się z wielu bajtów. –

Powiązane problemy