Hướng dẫn data type mapping oracle to mysql - kiểu dữ liệu ánh xạ oracle sang mysql

This chapter compares the MySQL database and the Oracle database. It includes the following sections:

  • Database Security

  • Schema Migration

  • Data Types

  • Data Storage Concepts

2.1 Database Security

This section includes information about security issues with MySQL databases and Oracle databases.

As with Oracle, MySQL users are maintained by the database. MySQL uses a set of grant tables to keep track of users and the privileges that they can have. MySQL uses these grant tables when performing authentication, authorization and access control for users.

2.1.1 Database Authentication

Unlike Oracle (when set up to use database authentication) and most other databases that use only the user name and password to authenticate a user, MySQL uses an additional location parameter when authenticating a user. This location parameter is usually the host name, IP address, or a wildcard (Ò%Ó). With this additional parameter, MySQL may further restrict a user access to the database to a particular host or hosts in a domain. Moreover, this also allows a different password and set of privileges to be enforced for a user depending on the host from which the connection is made. Thus, user scott, who logs on from abc.com may or may not the same as user scott who logs on from xyz.com.

2.1.2 Privileges

The MySQL privilege system is a hierarchical system that works through inheritance. Privileges granted at a higher level are implicitly passed down to all lower levels and may be overridden by the same privileges set at lower levels. MySQL allows privileges to be granted at five different levels, in descending order of the scope of the privileges:

  • Global

  • Per-host basis

  • Database-level

  • Table-specific

  • Column-specific (single column in a single table

Each level has a corresponding grant table in the database. When performing a privilege check, MySQL checks each of the tables in descending order of the scope of the privileges, and the privileges granted at a lower level take precedence over the same privileges granted at a higher level.

The privileges supported by MySQL are grouped into two types: administrative privileges and per-object privileges. The administrative privileges are global privileges that have server-wide effects and are concerned with the functioning of MySQL. These administrative privileges include the FILE, PROCESS, REPLICATION, SHUTDOWN and SUPER privilege. The per-object privileges affect database objects such tables, columns, indexes, and stored procedures, and can be granted with a different scope. These per-object privileges are named after the SQL queries that trigger their checks.

Unlike in Oracle, there is no concept of role in MySQL. Thus, in order to grant a group of users the same set of privileges, the privileges have to be granted to each user separately. Alternately, though less satisfactory for auditing, users performing tasks as a role may all share a single user account that is designated for the "role" and with the required privileges granted.

2.2 Schema Migration

The schema contains the definitions of the tables, views, indexes, users, constraints, stored procedures, triggers, and other database-specific objects. Most relational databases work with similar objects.

This section contains the following:

  • Schema Object Similarities

  • Schema Object Names

  • Table Design Considerations

  • Migrating Multiple Databases

  • Schema Migration Considerations for MySQL

2.2.1 Schema Object Similarities

There are many similarities between schema objects in Oracle and MySQL. However, some schema objects differ between these databases. For more information about schema objects, see Oracle SQL Reference.

Table 2-1 shows the differences between Oracle and MySQL.

Table 2-1 Schema Objects in Oracle and MySQL

OracleMySQL

AFTER trigger

trigger

BEFORE trigger

trigger

Check constraint

Check constraint

Column default

Column default

Database

Database

Foreign key

Foreign key

Index

Index

Package

N/A

PL/SQL function

Routine

PL/SQL procedure

Routine

Primary key

Primary key

Role

N/A

Schema

Schema

Sequence

AUTO_INCREMENT for a column

Snapshot

N/A

Synonym

N/A

Table

Table

Tablespace

N/A

Temporary table

Temporary table

Trigger for each row

Trigger for each row

Unique key

Unique key

User

User

View

View


2.2.2 Schema Object Names

Oracle is case insensitive to object names, and Oracle schema object names are stored as uppercase.

As in Oracle, column, index, stored procedure, and trigger names as well as column aliases in MySQL are case insensitive on all platforms. However, the case sensitivity of database and tables names for MySQL differs from Oracle. In MySQL, databases correspond to directories within the data directory, and tables correspond to one or more files within the database directory. As such, the case sensitivity of the database and table names is determined by the case sensitivity of the underlying operating systems. This means that database and table names are not case-sensitive in Windows and are case-sensitive in most varieties of Unix. However, MySQL allows users to determine how the database and table names are stored on disk and in their use in MySQL through the lower_case_table_names system variable. Table aliases are case-sensitive in releases before MySQL 4.1.1.

Cả Oracle và MySQL đều cho phép bạn sử dụng các từ dành riêng làm tên đối tượng bằng cách đại diện cho tên với một định danh được trích dẫn. Tuy nhiên, MySQL cho phép một số từ dành riêng như ngày và dấu thời gian được sử dụng làm định danh không được trình bày cho tên đối tượng, mặc dù điều này không được phép trong Oracle. Nhà phát triển SQL nối một dấu gạch dưới (_) vào tên của một đối tượng MySQL là một từ dành riêng của Oracle.

MySQL và Oracle có một số khác biệt nhỏ trong định nghĩa về định danh. Trong MySQL, một mã định danh chưa được trích xuất có thể bắt đầu bằng một chữ số và dấu ngoặc kép được cho phép trong một định danh được trích dẫn; Tuy nhiên, cả hai đều không được phép trong một định danh Oracle. Trong MySQL, ký tự trích dẫn là backtick (`). Nếu chế độ SQL ANSI_Quotes được đặt, các báo giá kép cũng có thể được sử dụng để trích dẫn các định danh. Trong Oracle, số nhận dạng được trích dẫn bằng dấu ngoặc kép.

Bạn nên chọn một tên đối tượng lược đồ duy nhất theo trường hợp và ít nhất một đặc điểm khác và đảm bảo rằng tên đối tượng không phải là một từ dành riêng từ một trong hai cơ sở dữ liệu.

2.2.3 Cân nhắc thiết kế bảng Table Design Considerations

Phần này thảo luận về các vấn đề thiết kế bảng mà bạn cần xem xét khi chuyển đổi cơ sở dữ liệu MySQL sang Oracle. Phần này bao gồm những điều sau:

  • Kiểu dữ liệu ký tự

  • Cột giá trị mặc định

2.2.3.1 Kiểu dữ liệu ký tự Character Data Types

MySQL và Oracle có một số khác biệt trong các loại ký tự mà chúng hỗ trợ và theo cách họ lưu trữ và truy xuất các giá trị loại ký tự.

MySQL hỗ trợ loại char và varchar cho loại ký tự có độ dài nhỏ hơn 65,535 byte. Loại char có thể có độ dài tối đa 255 byte và kể từ MySQL 3.23, nó cũng có thể được khai báo với chiều dài 0 byte. Trước MySQL 5.0.3, đặc tả độ dài cho loại varchar giống như loại char. Từ MySQL 5.0.3 trở đi, độ dài tối đa cho loại varchar là 65,535 byte. Oracle hỗ trợ bốn loại ký tự: char, nchar, nvarchar2 và varchar2. Độ dài tối thiểu có thể được khai báo cho tất cả các loại ký tự Oracle là 1 byte. Kích thước tối đa được phép cho char và nchar là 2.000 byte, và đối với nvarchar2 và varchar2, nó là 4.000 byte.

Các giá trị Char MySQL được gắn bên phải với các khoảng trống theo chiều dài được chỉ định khi chúng được lưu trữ và các không gian dấu vết được gỡ bỏ khi các giá trị được truy xuất. Mặt khác, các giá trị varchar được lưu trữ bằng nhiều ký tự như được đưa ra, nhưng trước khi các không gian kéo dài MySQL 5.0.3 được gỡ bỏ khi các giá trị được lưu trữ và truy xuất. Oracle Blank-pads giá trị cho loại char và nchar của nó với độ dài cột nếu giá trị ngắn hơn chiều dài cột và không gian dấu vết không được gỡ bỏ khi truy xuất. Đối với các cột loại dữ liệu NVARCHAR2 và VARVHAR2, các cửa hàng của Oracle và truy xuất giá trị chính xác như được đưa ra, bao gồm cả không gian theo dõi.

Nếu một giá trị được gán cho cột loại ký tự vượt quá độ dài được chỉ định của nó, MySQL cắt tỉa giá trị và không tạo ra lỗi trừ khi chế độ SQL nghiêm ngặt được đặt. Oracle tạo ra một lỗi nếu giá trị được gán cho cột loại ký tự vượt quá độ dài được chỉ định của nó.

Trong MYSQL, mỗi loại ký tự (char, varchar và văn bản) có một bộ ký tự cột và đối chiếu. Nếu tập hợp hoặc bộ đối chiếu không được xác định rõ ràng trong định nghĩa cột, bộ hoặc bộ đối chiếu ký tự được ngụ ý nếu được chỉ định; Mặt khác, ký tự cơ sở dữ liệu hoặc đối chiếu được chọn. Trong Oracle, các loại ký tự cho các loại char và varchar2 được xác định bởi bộ ký tự cơ sở dữ liệu và cho các loại ký tự cho các loại nchar và nvarchar được xác định tập hợp ký tự quốc gia.

Khi khai báo loại char hoặc varchar trong MySQL, ngữ nghĩa độ dài mặc định là ký tự thay vì byte cho MySQL 4.1 trở lên. Trong Oracle, ngữ nghĩa độ dài mặc định là byte cho các loại và ký tự char và varchar2 cho các loại nchar và nvarchar2.

Nhà phát triển SQL sẽ ánh xạ các loại MySQL Char và Varchar thành các loại Oracle Char và Varchar2, tương ứng. Nhà phát triển SQL sẽ xác định số lượng byte tối đa cho các cột loại dữ liệu của Oracle Char và Varchar2 từ số byte cần thiết để giữ độ dài tối đa được chỉ định cho các cột Dữ liệu MySQL Char và Varchar tương ứng. Nếu cột MySQL Varchar2 sao cho dữ liệu vượt quá 4000 byte, hãy chuyển đổi cột thành cột Kiểu dữ liệu Oracle Clob.

2.2.3.2 Giá trị mặc định cột Column Default Value

MySQL khác với Oracle theo cách xử lý giá trị mặc định cho một cột không cho phép giá trị null.

Trong MySQL, đối với một cột không cho phép giá trị null và không có dữ liệu nào được cung cấp cho cột khi dữ liệu được chèn vào bảng, MySQL xác định giá trị mặc định cho cột. Giá trị mặc định này là giá trị mặc định ngầm cho kiểu dữ liệu cột. Tuy nhiên, nếu chế độ nghiêm ngặt được bật, MySQL sẽ tạo lỗi và đối với các bảng giao dịch, nó sẽ quay lại câu lệnh chèn.

Trong Oracle, khi dữ liệu được chèn vào bảng, dữ liệu phải được cung cấp cho tất cả các cột không cho phép giá trị null. Oracle không tạo ra giá trị mặc định cho các cột có ràng buộc không null.

2.2.4 Di chuyển nhiều cơ sở dữ liệu Migrating Multiple Databases

Nhà phát triển SQL hỗ trợ việc di chuyển nhiều cơ sở dữ liệu MySQL nếu chúng có trên cùng một máy chủ cơ sở dữ liệu MySQL.

2.2.5 Cân nhắc di chuyển lược đồ cho MySQL Schema Migration Considerations for MySQL

Cân nhắc di chuyển lược đồ cho MySQL áp dụng trong các lĩnh vực sau "

  • Cơ sở dữ liệu

  • Ánh xạ các đặc quyền cấp cơ sở dữ liệu của MySQL Global và cơ sở dữ liệu cho các đặc quyền hệ thống Oracle

  • Bảng tạm thời

  • Chủ sở hữu của các đối tượng lược đồ

2.2.5.1 Cơ sở dữ liệu Databases

Khi chuyển cơ sở dữ liệu MySQL sang Oracle, nhà phát triển SQL ánh xạ mỗi cơ sở dữ liệu MySQL sang một không gian bảng trong Oracle. Các đối tượng cơ sở dữ liệu, chẳng hạn như bảng, chỉ mục và chế độ xem được lưu trữ trong các không gian bảng tương ứng và được tham chiếu từ lược đồ Oracle cho người dùng sở hữu chúng.

2.2.5.2 Ánh xạ các đặc quyền cấp cơ sở dữ liệu MySQL Global và cơ sở dữ liệu cho các đặc quyền hệ thống Oracle Mapping MySQL Global and Database-Level Privileges to Oracle System Privileges

Nhà phát triển SQL không xử lý tất cả các đặc quyền quản trị trên MySQL, ngoại trừ siêu đặc quyền. Bảng 2-2 cho thấy các ánh xạ cho các đặc quyền của Per-Object MySQL được cấp ở các cấp độ khác nhau cũng như siêu đặc quyền được cấp ở cấp độ toàn cầu.

Bảng 2-2 Đặc quyền MySQL và đặc quyền hệ thống Oracle

Mức độĐặc quyềnĐặc quyền hệ thống trên Oracle

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Toàn cầu

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Thay đổi thói quen

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Thay đổi thói quen

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Thay đổi thói quen

Thay đổi

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Thay đổi

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào

Thay đổi

Thay đổi


Thay đổi bất kỳ bảng nào, thay đổi bất kỳ chuỗi nào, thay đổi bất kỳ custer nào, nhận xét bất kỳ bảng nào Temporary Tables

Thay đổi thói quen

Thay đổi bất kỳ thủ tục nào, bỏ bất kỳ thủ tục nào

TẠO RA

Tạo bất kỳ bảng nào, tạo bất kỳ chuỗi nào, tạo bất kỳ cụm nào, tạo liên kết cơ sở dữ liệu, nhận xét bất kỳ bảng nào Owner of Schema Objects

Tạo thói quen

Tạo bất kỳ thủ tục Data Types

TẠO NGƯỜI DÙNG

  • Tạo người dùng, cấp bất kỳ đặc quyền nào

  • Tạo chế độ xem

  • Tạo bất kỳ chế độ xem

XÓA BỎ Supported Oracle Data Types

Thay đổi bất kỳ bảng, thả người dùng, xóa bất kỳ bảng nào

LÀM RƠISupported Oracle Data Types

Thả bảng kiến, thả bất kỳ chuỗi nào, thả bất kỳ cụm nào, bỏ bất kỳ chế độ xem nàoHÀNH HÌNH

Thực hiện bất kỳ thủ tục

MỤC LỤC

Tạo bất kỳ chỉ mục nào, thay đổi bất kỳ chỉ mục nào, bỏ bất kỳ chỉ mục nào

CHÈN

Chèn bất kỳ bảng

Bảng khóa

Khóa bất kỳ bảng

LỰA CHỌN

Chọn bất kỳ bảng nào

SIÊU

Dài (kích thước)

Dữ liệu ký tự có độ dài thay đổi lên đến 2 gigabyte hoặc 2^31 -1 byte.

Long Raw

Dữ liệu nhị phân thô có độ dài thay đổi lên đến 2 gigabyte.

Nchar (kích thước)

Dữ liệu ký tự có độ dài cố định của các ký tự kích thước chiều dài hoặc byte, tùy thuộc vào sự lựa chọn của bộ ký tự quốc gia. Kích thước tối đa được xác định bởi số byte cần thiết để lưu trữ mỗi ký tự, với giới hạn trên là 2000 byte. Kích thước mặc định và tối thiểu là 1 ký tự hoặc 1 byte, tùy thuộc vào bộ ký tự.

NCLOB

Một đối tượng lớn nhân vật chứa các ký tự multibyte. Cả hai bộ ký tự có chiều rộng và chiều rộng cố định đều được hỗ trợ, cả hai đều sử dụng bộ ký tự cơ sở dữ liệu Nchar. Kích thước tối đa là 4 gigabyte. Lưu trữ dữ liệu tập hợp nhân vật quốc gia.

CON SỐ

Số có độ chính xác p và tỷ lệ s. Độ chính xác P có thể nằm trong khoảng từ 1 đến 38. thang đo S có thể nằm trong khoảng từ -84 đến 127.

Nvarchar2 (kích thước)

Chuỗi ký tự có độ dài thay đổi có ký tự kích thước chiều dài tối đa hoặc byte, tùy thuộc vào sự lựa chọn của bộ ký tự quốc gia. Kích thước tối đa được xác định bởi số byte cần thiết để lưu trữ mỗi ký tự, với giới hạn trên là 4000 byte. Bạn phải chỉ định kích thước cho NVARCHAR2.

Thô (kích thước)

Dữ liệu nhị phân thô có kích thước chiều dài byte. Kích thước tối đa là 2000 byte. Bạn phải chỉ định kích thước cho một giá trị thô.

Varchar (kích thước)

Kiểu dữ liệu Varchar hiện đồng nghĩa với kiểu dữ liệu Varchar2. Oracle khuyên bạn nên sử dụng varchar2 chứ không phải varchar. Trong tương lai, Varchar có thể được định nghĩa là một loại dữ liệu riêng biệt được sử dụng cho các chuỗi ký tự có độ dài thay đổi so với ngữ nghĩa so sánh khác nhau. Kích thước tối đa là 4000 và tối thiểu 1 là mặc định.

BINARY_DOUBLE

Một kiểu dữ liệu số dấu nổi 64 bit, chính xác kép.

BINARY_FLOAT

Một kiểu dữ liệu số dấu nổi 32 bit, một điểm chính xác.


Để biết thêm thông tin về các loại dữ liệu của Oracle, hãy xem Tài liệu tham khảo ngôn ngữ SQL cơ sở dữ liệu Oracle.Oracle Database SQL Language Reference.

2.3.2 Ánh xạ kiểu dữ liệu mặc định Default Data Type Mappings

Bảng 2-4 cho thấy các cài đặt mặc định được sử dụng bởi SQL Developer để chuyển đổi các loại dữ liệu từ MySQL sang Oracle. Nhà phát triển SQL cho phép bạn thay đổi cài đặt mặc định cho một số loại dữ liệu nhất định bằng cách chỉ định loại thay thế. Để biết thông tin về việc thay đổi ánh xạ kiểu dữ liệu mặc định, hãy xem Trợ giúp trực tuyến của Nhà phát triển SQL.

Bảng 2-4 Ánh xạ kiểu dữ liệu mặc định được sử dụng bởi Nhà phát triển Oracle SQL

Kiểu dữ liệu MySQLKiểu dữ liệu Oracle

Bigint

Số (19, 0)

CHÚT

Thô

BÃI

BLOB, RAW

Char

Char

NGÀY

NGÀY

NGÀY GIỜ

NGÀY

NGÀY GIỜ

SỐ THẬP PHÂN

Float (24)

SỐ THẬP PHÂN

Float (24)

SỐ THẬP PHÂN

Float (24)

VARCHAR2

KÉP

KÉP

Độ chính xác gấp đôi

Enum

TRÔI NỔI

Enum

TRÔI NỔI

BLOB, RAW

Char

NGÀY

NGÀY GIỜ

BLOB, RAW

Char

NGÀY

NGÀY GIỜ

NGÀY

NGÀY GIỜ

CON SỐ

Số có độ chính xác p và tỷ lệ s. Độ chính xác P có thể nằm trong khoảng từ 1 đến 38. thang đo S có thể nằm trong khoảng từ -84 đến 127.

SỐ THẬP PHÂN

Float (24)

VARCHAR2

KÉP

Độ chính xác gấp đôi

Enum

TRÔI NỔI

Int

NGÀY

NGÀY GIỜ

NGÀY

NGÀY GIỜ

Thô

BÃI

BLOB, RAW

Char

VARCHAR2

NGÀY

TRÔI NỔI

Int

CON SỐ


Note:

Số có độ chính xác p và tỷ lệ s. Độ chính xác P có thể nằm trong khoảng từ 1 đến 38. thang đo S có thể nằm trong khoảng từ -84 đến 127.

Nvarchar2 (kích thước) Comparing Data Types

Chuỗi ký tự có độ dài thay đổi có ký tự kích thước chiều dài tối đa hoặc byte, tùy thuộc vào sự lựa chọn của bộ ký tự quốc gia. Kích thước tối đa được xác định bởi số byte cần thiết để lưu trữ mỗi ký tự, với giới hạn trên là 4000 byte. Bạn phải chỉ định kích thước cho NVARCHAR2.

  • Thô (kích thước)

  • Dữ liệu nhị phân thô có kích thước chiều dài byte. Kích thước tối đa là 2000 byte. Bạn phải chỉ định kích thước cho một giá trị thô.

  • Varchar (kích thước)

Kiểu dữ liệu Varchar hiện đồng nghĩa với kiểu dữ liệu Varchar2. Oracle khuyên bạn nên sử dụng varchar2 chứ không phải varchar. Trong tương lai, Varchar có thể được định nghĩa là một loại dữ liệu riêng biệt được sử dụng cho các chuỗi ký tự có độ dài thay đổi so với ngữ nghĩa so sánh khác nhau. Kích thước tối đa là 4000 và tối thiểu 1 là mặc định. Numeric Types

Một kiểu dữ liệu số dấu nổi 64 bit, chính xác kép.

  • Một kiểu dữ liệu số dấu nổi 32 bit, một điểm chính xác.

  • Để biết thêm thông tin về các loại dữ liệu của Oracle, hãy xem Tài liệu tham khảo ngôn ngữ SQL cơ sở dữ liệu Oracle.

2.3.2 Ánh xạ kiểu dữ liệu mặc định

Bảng 2-4 cho thấy các cài đặt mặc định được sử dụng bởi SQL Developer để chuyển đổi các loại dữ liệu từ MySQL sang Oracle. Nhà phát triển SQL cho phép bạn thay đổi cài đặt mặc định cho một số loại dữ liệu nhất định bằng cách chỉ định loại thay thế. Để biết thông tin về việc thay đổi ánh xạ kiểu dữ liệu mặc định, hãy xem Trợ giúp trực tuyến của Nhà phát triển SQL.Bảng 2-4 Ánh xạ kiểu dữ liệu mặc định được sử dụng bởi Nhà phát triển Oracle SQLKiểu dữ liệu MySQL
BigintSố (19, 0)CHÚT
CHÚTThôBÃI
DECIMAL(M,D)BLOB, RAWChar
Float (24)Số (19, 0)CHÚT
ThôSố (19, 0)CHÚT
FLOAT(25Số (19, 0)Char
FLOAT(XNGÀYNGÀY GIỜ
Độ chính xác gấp đôiNGÀYNGÀY GIỜ
TRÔI NỔINGÀYNGÀY GIỜ
CharNGÀYNGÀY GIỜ
NGÀY GIỜBLOB, RAWChar
Số có độ chính xác p và tỷ lệ s. Độ chính xác P có thể nằm trong khoảng từ 1 đến 38. thang đo S có thể nằm trong khoảng từ -84 đến 127.Số (19, 0)Char
KÉPĐộ chính xác gấp đôiEnum
BÃIBLOB, RAWChar

NGÀY Date and Time Types

NGÀY GIỜ

MysqlKích thướcOracle
NGÀY3 byteNGÀY
NGÀY GIỜ8 byteNGÀY
NGÀY GIỜ8 byteNGÀY
NGÀY GIỜ3 byteNGÀY
NGÀY GIỜ8 byteDấu thời gian

4 byte String Types

THỜI GIAN

  • NĂM

  • 1 byte

CON SỐ

Note:

2.3.3.3 Các loại chuỗi

MysqlKích thướcOracle
NGÀY3 byteNGÀY
CHAR(m)NGÀY GIỜ8 byte
Dấu thời gian4 byteTHỜI GIAN
NĂM1 byteNGÀY
NGÀY GIỜ1 byteCON SỐ
2.3.3.3 Các loại chuỗiKhi ánh xạ các loại dữ liệu MySQL vào các loại dữ liệu ký tự trong Oracle, các điều kiện sau áp dụng:NGÀY
NGÀY GIỜKhi ánh xạ các loại dữ liệu MySQL vào các loại dữ liệu ký tự trong Oracle, các điều kiện sau áp dụng:CON SỐ
2.3.3.3 Các loại chuỗiKhi ánh xạ các loại dữ liệu MySQL vào các loại dữ liệu ký tự trong Oracle, các điều kiện sau áp dụng:THỜI GIAN
NĂM3 byteNGÀY
NGÀY GIỜ8 byteNGÀY
NGÀY GIỜ8 byteDấu thời gian
VARCHAR(m)4 byteNGÀY

NGÀY GIỜ Data Storage Concepts

8 byte

Dấu thời gian

4 byte

THỜI GIAN

NĂM

1 byteCON SỐ

2.3.3.3 Các loại chuỗi

Khi ánh xạ các loại dữ liệu MySQL vào các loại dữ liệu ký tự trong Oracle, các điều kiện sau áp dụng:

Nếu không có độ dài được xác định cho kiểu dữ liệu đích, độ dài được lấy từ kiểu dữ liệu nguồn.

Nếu có độ dài được xác định cho kiểu dữ liệu đích, giá trị tối đa của hai độ dài được thực hiện.

Bảng sau so sánh các loại chuỗi của MySQL với Oracle:

Tham chiếu đến M chỉ ra kích thước hiển thị tối đa. Kích thước hiển thị pháp lý tối đa là 255. Một tham chiếu đến L áp dụng cho các loại điểm nổi và cho biết số lượng các chữ số theo điểm thập phân.

BÃI

L + 2 byte trong khi L

Thô, blob

M byte, 0

Char

Enum (value1, value2, ...)

1 hoặc 2 byte tùy thuộc vào số lượng enum. Giá trị (65535 Giá trị tối đa)

& nbsp;

Longblob

L + 4 byte trong khi L <2 ^ 32

VĂN BẢN DÀI

Thô, clob

Trung bình

L + 3 byte trong khi L <2^ 24

Tương tự

Đặt (value1, value2, ...)


1, 2, 3, 4 hoặc 8 byte tùy thuộc vào số lượng thành viên đặt (tối đa 64 thành viên)

CHỮ

Varchar2, Clob2.3.3.3 Các loại chuỗiKhi ánh xạ các loại dữ liệu MySQL vào các loại dữ liệu ký tự trong Oracle, các điều kiện sau áp dụng:Nếu không có độ dài được xác định cho kiểu dữ liệu đích, độ dài được lấy từ kiểu dữ liệu nguồn.Thô, blob

M byte, 0

Char

Char

Enum (value1, value2, ...)

Enum (value1, value2, ...)

1 hoặc 2 byte tùy thuộc vào số lượng enum. Giá trị (65535 Giá trị tối đa)

& nbsp;

& nbsp;

Longblob

L + 4 byte trong khi L <2 ^ 32

VĂN BẢN DÀI

Thô, clob

In-memory

Trung bình

L + 3 byte trong khi L <2^ 24

Tương tự

Enum (value1, value2, ...)

N/A

Char

Enum (value1, value2, ...)


1 hoặc 2 byte tùy thuộc vào số lượng enum. Giá trị (65535 Giá trị tối đa)

& nbsp;

Tôi có thể kết nối với cơ sở dữ liệu Oracle với MySQL không?

Bạn có thể sử dụng Cổng SQL từ trình điều khiển ODBC cho Oracle để truy vấn dữ liệu Oracle thông qua giao diện MySQL..

Varchar2 có được hỗ trợ trong MySQL không?

MySQL hỗ trợ loại char và varchar cho loại ký tự có độ dài nhỏ hơn 65,535 byte..

Kiểu dữ liệu nào được sử dụng trong cơ sở dữ liệu MySQL?

Trong MySQL có ba loại dữ liệu chính: chuỗi, số và ngày và thời gian.string, numeric, and date and time.

Sự khác biệt giữa cú pháp Oracle và MySQL là gì?

MySQL chỉ hỗ trợ chỉ số toàn văn và băm.Oracle sử dụng nhiều chỉ mục hơn chỉ là các chỉ mục này, bao gồm bitmap, dựa trên chức năng, phân vùng, v.v.Oracle tốt hơn cho việc triển khai doanh nghiệp, trong khi MySQL phù hợp với quy mô nhỏ đến trung bình.MySQL miễn phí, trong khi Oracle yêu cầu phí cấp phép.