>일반적인 문제 >오라클과 사이베이스의 차이점은 무엇입니까

오라클과 사이베이스의 차이점은 무엇입니까

DDD
DDD원래의
2023-06-01 13:46:241616검색

oracle과 sybase의 차이점은 다음과 같습니다. 1. SQL 구문이 일관되지 않습니다. 2. 너무 긴 필드에 대한 사후 처리 메커니즘이 다릅니다. Sybase 처리 메커니즘은 자동 잘림이며, Oracle에는 입력 시 자동 잘림 메커니즘이 없습니다. -long 문자, 3. 중국어 필드 문자 섹션 길이가 일치하지 않습니다. Sybase 데이터베이스의 한자는 2바이트를 차지하고 Oracle 데이터베이스의 한자는 3바이트를 차지합니다. 4. 문자 유형 변환. 결과가 일관되지 않습니다. 6. 쿼리 문 출력의 기본 정렬이 일관되지 않습니다. 7. 날짜 형식이 일관되지 않습니다.

오라클과 사이베이스의 차이점은 무엇입니까

이 튜토리얼의 운영 체제: Windows 10 시스템, Dell G3 컴퓨터.

oracle과 sybase의 차이점은 다음과 같습니다.

(1) SQL 구문이 일관성이 없습니다.

1. 다양한 문자열 처리 기능: 예를 들어 Sybase는 substring()이고 oracle은 substr()입니다. Oracle은 sysdate이고 Sybase는 getdate()입니다.

2. 다중 테이블 조인의 구문이 다릅니다.

(2) 긴 필드에 대한 사후 처리 메커니즘이 다릅니다.

데이터베이스에 정의된 필드 길이를 초과하는 입력의 경우 Sybase 처리 메커니즘은 긴 문자를 입력하면 트랜잭션이 성공합니다. 너무 긴 문자를 입력할 때 자동 잘림 메커니즘이 없으면 트랜잭션이 오류를 보고하고 성공할 수 없습니다. 이러한 다른 지나치게 긴 문자 입력 처리 메커니즘으로 인해 Sybase에서는 대량의 비정상적인 기록 데이터가 성공하고 Oracle 트랜잭션에서는 실패하게 됩니다. 너무 긴 필드의 입력 소스는 다음과 같습니다. (1) 호스트에서 시스템 데이터베이스로의 입력 데이터 (2) 시스템 자체 페이지의 프런트 엔드는 문자 길이를 제어하지 않으며 너무 긴 데이터가 입력됩니다. ; (3) 시스템 자체 프로그램에 너무 긴 함수 이름이 있으며 로그 테이블에 오류가 보고됩니다. (4) 관련 시스템이 너무 긴 필드를 입력합니다. 이러한 불일치로 인해 제기된 문제는 수백 건의 개조 거래와 관련된 마이그레이션에서 가장 널리 퍼져 있습니다. 이후, 지나치게 긴 필드 문제에 대해 프로젝트 논의 끝에 트랜잭션 관련 필드를 개편하고, 테스트 케이스를 보완하고, 특별 테스트를 실시하고, 중요 외부 시스템에서 입력한 필드를 하나씩 비교 점검하기로 결정했다.

(3) 중국어 필드 바이트 길이가 일치하지 않습니다.

1 Sybase 데이터베이스의 한자는 2바이트를 차지합니다. 예를 들어 일부 입력 필드는 이전에 중국어 필드 길이를 확장하지 않았습니다. 데이터베이스 마이그레이션 후에는 실제 업무에 불일치가 발생합니다. 예: 시스템의 입력 페이지에서 첫 번째 버전 테스트 중 개발에서 사용자 정의 비고의 필드 길이를 확장하지 않았으며(중국어 입력 가능) 데이터베이스 전후의 사용자 정의 비고 내용에 불일치가 발생했습니다. 덮어쓰기로 인한 마이그레이션. 사업 분야와 지원되는 입력 유형(중국어 포함 여부)을 집중적으로 정리할 필요가 있다.

(4) 문자 유형 변환

Sybase와 Oracle은 서로 다른 문자 범주에 대해 서로 다른 처리 메커니즘을 가지고 있습니다. 예를 들어 char 문자 유형 처리 메커니즘을 사용하면 Sybase의 기록 데이터에 길이가 1인 데이터 '6'이 있습니다. . Oracle로 마이그레이션한 후 해당 값을 가져오면 자동으로 '6'에 공백이 추가되어 프로그램 논리 오류가 발생합니다. 처음에 개발자는 프로그램에서 공백을 필터링하기 위해 Trim을 사용한 다음 char 유형을 varchar 유형으로 균일하게 변경했습니다.

(5) Null 값 읽기 결과가 일치하지 않습니다.

Sybase와 Oracle은 Null 값에 대해 서로 다른 처리 메커니즘을 사용합니다. 예를 들어 길이가 0인 Null 값 ''의 경우 Sybase는 이를 길이 1의 공백으로 저장합니다. 후속 쿼리는 필드 메시지를 보낼 때 길이가 1인 공백입니다. Oracle은 이후에 이 필드에 메시지를 쿼리할 때 이 필드가 NULL로 검색됩니다. 이는 하나의 필드가 누락됨을 의미합니다. .

(6) 쿼리 문 출력의 기본 순서가 일치하지 않습니다

예: 세부 트랜잭션의 경우 두 데이터베이스의 출력 순서가 동시에 일치하지 않으며 보류 중인 작업의 출력 순서도 일치하지 않습니다.

(7) 날짜 형식이 일치하지 않습니다.

Sybase와 Oracle 날짜 처리 형식이 일치하지 않습니다. 예를 들어 Oracle 날짜 시간 형식은 to_date('2020-05-1012:00:00','yyyy-mm-ddHH24:mi:ss')이고 Sybaseddatetime 형식은 '05/10/202012:00:00AM'입니다.

위 내용은 오라클과 사이베이스의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.