Oracle veritabanlarındaki endian format nedir ?

Endian Nedir ?

Endian , bilgisayarların multi-byte veri tiplerinin bellekteki saklanma yöntemidir. Diğer bir değişle verinin byte sıralamasını belirler. Little ve Big olmak üzere iki çeşit endian vardır.

Little Endian

Veri , bellekte ters sırada saklanır.

Big Endian

Veri , bellekte düz sırada saklanır.

Örneğin ;
Bir tamsayının 4 bayt (32 bit) olarak saklandığını varsayalım, sonra 0x01234567 (Onaltılık ondalık gösterimi) değerine sahip bir değişken y dört bayt olacak 0x01, 0x23, 0x45, 0x67 şeklinde saklanacaktır. Big endian olan sistemlerde bu veri sırasında , little endian olan sistemlerde ise ters sırada saklanır.

 

 

 

 

 

 

Aşağıdaki resimde big ve little endian farkı belirtilmiştir.

 

 

 

 

 

 

 

 

 

 

 

Oracle veritabanlarında , endian format , çalıştığı ortamdaki endian bilgisine göre belirlenir. Veritabanlarındaki endian format , bize ilgili veritabanın hangi ortamlara taşınabileceğini bildirir. Farklı endian formata sahip veritabanlarında standart yöntemlerle taşıma mümkün değildir. Farklı yöntemler kullanılmalıdır.

Veritabannızdaki mevcut endian formatını aşağıdaki sorgu ile görebilirsiniz.

SQL> select name,platform_id,platform_name from v$database;

NAME	  PLATFORM_ID PLATFORM_NAME
--------- ----------- ----------------------------------------------------------
ORCL	  13 	      Linux x86 64-bit

Aşağıdaki sorgularda mevcut veritabanınızın hangi ortamlardaki veritabanlarına taşınabileceğini göstermektedir.

Kaynak Big Endian Format (IBM AIX)

SQL> set lines 200
SQL> set pages 200
SQL> COL "Source" FORM a32
SQL> COL "Compatible Targets" FORM a40
SQL> select d.platform_name "Source", t.platform_name "Compatible Targets", endian_format
from v$transportable_platform t, v$database d where t.endian_format = (select endian_format from v$transportable_platform t, v$database d where d.platform_name = t.platform_name) 
order by "Compatible Targets";  

Source                           Compatible Targets                       ENDIAN_FORMAT
-------------------------------- ---------------------------------------- ------------------------------------------
AIX-Based Systems (64-bit)       AIX-Based Systems (64-bit)               Big
AIX-Based Systems (64-bit)       Apple Mac OS                             Big
AIX-Based Systems (64-bit)       HP-UX (64-bit)                           Big
AIX-Based Systems (64-bit)       HP-UX IA (64-bit)                        Big
AIX-Based Systems (64-bit)       IBM Power Based Linux                    Big
AIX-Based Systems (64-bit)       IBM zSeries Based Linux                  Big
AIX-Based Systems (64-bit)       Solaris[tm] OE (32-bit)                  Big
AIX-Based Systems (64-bit)       Solaris[tm] OE (64-bit)                  Big

8 rows selected.

 

Kaynak Little Endian Format (Linux x86)

 

SQL> set lines 200
SQL> set pages 200
SQL> COL "Source" FORM a32
SQL> COL "Compatible Targets" FORM a40
SQL> select d.platform_name "Source", t.platform_name "Compatible Targets", endian_format
from v$transportable_platform t, v$database d where t.endian_format = (select endian_format from v$transportable_platform t, v$database d where d.platform_name = t.platform_name) 
order by "Compatible Targets";  

Source				 Compatible Targets			  ENDIAN_FORMAT
-------------------------------- ---------------------------------------- --------------
Linux x86 64-bit		 Apple Mac OS (x86-64)			  Little
Linux x86 64-bit		 HP IA Open VMS 			  Little
Linux x86 64-bit		 HP Open VMS				  Little
Linux x86 64-bit		 HP Tru64 UNIX				  Little
Linux x86 64-bit		 Linux IA (32-bit)			  Little
Linux x86 64-bit		 Linux IA (64-bit)			  Little
Linux x86 64-bit		 Linux x86 64-bit			  Little
Linux x86 64-bit		 Microsoft Windows IA (32-bit)		  Little
Linux x86 64-bit		 Microsoft Windows IA (64-bit)		  Little
Linux x86 64-bit		 Microsoft Windows x86 64-bit		  Little
Linux x86 64-bit		 Solaris Operating System (x86) 	  Little
Linux x86 64-bit		 Solaris Operating System (x86-64)	  Little

12 rows selected.

 

Loading

Leave Your Comment