您可以将 big-endian 格式的数据库中的数据移至 little-endian 格式的数据库中。
注意 开始之前,确保您具有用于捕获数据库和表模式的进程。
以下示例装载名为lineitem 的表,并在 UFS(文件系统)上标识一个名为 lineitem_binary.inp 的提取文件。
查看操作系统文档,了解系统的最大文件大小。例如,Sun Solaris x64 上的提取文件的最大大小为 512 GB。
此过程移动表定义,但不包含对数据库对象的迁移,例如,必须重新创建的存储过程或事件。
例如,在 Sun64 SPARC 系统上建立的 SAP IQ 数据库以 big-endian(最重要字节在前)格式存储二进制数据。因为 Sun Solaris x64 是 little-endian 系统,所以在 Sun64 SPARC 上构建的 SAP IQ 数据库无法通过 ALTER DATABASE UPGRADE 升级以在 Sun Solaris x64 系统上运行。
要在采用不同字节序结构的硬件平台之间移动各数据库的数据,必须执行下列操作:
注意 装载 Multiplex 数据库时,请在所有文件名中使用绝对(完全限定)路径。请不要使用相对路径名。
SET TEMPORARY OPTION Temp_Extract_Name1 ='lineitem_binary.inp'SET TEMPORARY OPTION Temp_Extract_Name2 = ''
SET TEMPORARY OPTION Temp_Extract_Binary = 'on'SET TEMPORARY OPTION Temp_Extract_Swap = 'off'
SELECT * FROM lineitem
SET TEMPORARY OPTION Temp_Extract_Name1 = ''
TABLE lineitem( l_orderkey BINARY WITH NULL BYTE, l_partkey BINARY WITH NULL BYTE, l_suppkey BINARY WITH NULL BYTE, l_linenumber BINARY WITH NULL BYTE,l_quantity BINARY WITH NULL BYTE,l_extendedprice BINARY WITH NULL BYTE,l_discount BINARY WITH NULL BYTE,l_tax BINARY WITH NULL BYTE,l_returnflag BINARY WITH NULL BYTE,l_linestatus BINARY WITH NULL BYTE,l_shipdate BINARY WITH NULL BYTE,l_commitdate BINARY WITH NULL BYTE,l_receiptdate BINARY WITH NULL BYTE,l_shipinstruct BINARY WITH NULL BYTE,l_shipmode BINARY WITH NULL BYTE,l_comment BINARY WITH NULL BYTE )FROM 'C:\\mydata\\lineitem_binary.inp' FORMAT BINARYSTRIP OFFQUOTES OFFESCAPES OFFPREVIEW ONBYTE ORDER HIGH;COMMIT请特别注意下列两个子句: 当装载二进制文件时,需要 BINARY WITH NULL BYTE。BYTE ORDER HIGH 从生成数据的系统指定字节顺序。本示例中的源数据库为 big-endian 平台;因此,此数据需要 HIGH 字节顺序。(little-endian 数据库需要 LOW 字节顺序。)
NULL BYTE。