MySQL 에서 Oracle 로 전환 할 때 주의해 야 할 7 가지 사항

3011 단어 MySQLOracle
다음은 MySQL 이 Oracle 로 전환 하 는 몇 가지 주의사항 을 정리 하여 여러분 에 게 도움 이 되 기 를 바 랍 니 다.1.자동 으로 증가 하 는 데이터 형식 처리 MySQL 은 자동 으로 증가 하 는 데이터 형식 이 있 습 니 다.기록 을 삽입 할 때 이 필드 를 조작 하지 않 아 도 데이터 값 을 자동 으로 얻 을 수 있 습 니 다.Oracle 은 자동 으로 증가 하 는 데이터 형식 이 없습니다.자동 으로 증가 하 는 시리 얼 번 호 를 만들어 야 합 니 다.기록 을 삽입 할 때 시리 얼 번호 의 다음 값 을 이 필드 에 부여 해 야 합 니 다.CREATE SEQUENCE 시리 얼 번호 의 이름(표 이름 시리 얼 번호 표시 가 좋 음)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;그 중에서 가장 큰 값 은 필드 의 길이 에 따라 정 의 됩 니 다.자동 으로 증가 하 는 시리 얼 번호 NUMBER(6)를 정의 하면 최대 값 은 999999 INSERT 구문 으로 이 필드 값 을 삽입 합 니 다.시리 얼 번호 의 이름 입 니 다.NEXTVAL 2.작은 따옴표 의 처리 MySQL 에 서 는 작은 따옴표 로 문자열 을 감 쌀 수 있 습 니 다.Oracle 에 서 는 작은 따옴표 로 만 문자열 을 감 쌀 수 있 습 니 다.문자열 을 삽입 하고 수정 하기 전에 작은 따옴표 로 바 꿔 야 합 니 다.나타 나 는 모든 작은 따옴표 를 두 개의 작은 따옴표 로 바 꿔 야 합 니 다.3.페이지 를 넘 긴 SQL 문장의 처리 MySQL 은 페이지 를 넘 긴 SQL 문 구 를 처리 하 는 것 이 비교적 간단 하 다.LIMIT 로 위 치 를 시작 하고 개 수 를 기록한다.PHP 에 서 는 결과 집의 위 치 를 SEK 로 찾 을 수도 있 습 니 다.Oracle 은 페이지 를 넘 기 는 SQL 문 구 를 처리 하 는 것 이 비교적 번거롭다.모든 결과 집합 은 하나의 ROWNUM 필드 만 그 위 치 를 표시 하고 ROWNUM< 만 사용 할 수 있다.100,ROWNUM>80 을 사용 할 수 없습니다.다음은 분석 을 통 해 좋 은 두 가지 Oracle 페이지 넘 기기 SQL 문장(ID 는 유일한 키워드 의 필드 이름)입 니 다.문장 1:
 
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE
ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW,
ID FROM TABLE_NAME WHERE 1 ORDER BY 2)
WHERE NUMROW > 80 AND NUMROW &lt; 100 ) ORDER BY 3;
문장 2:
 
SELECT * FROM (( SELECT ROWNUM AS NUMROW,
c.* from (select [FIELD_NAME,...]
FROM TABLE_NAME WHERE 1 ORDER BY 2) c)
WHERE NUMROW > 80 AND NUMROW &lt; 100 ) ORDER BY 3;
4.긴 문자열 의 처리 긴 문자열 의 처리 Oracle 도 특별한 부분 이 있 습 니 다.INSERT 와 UPDATE 시 최대 동작 가능 한 문자열 의 길 이 는 4000 개의 단일 바이트 보다 작 습 니 다.더 긴 문자열 을 삽입 하려 면 필드 용 CLOB 형식 을 고려 하 십시오.방법 은 Oracle 에 있 는 DBMS 를 빌 립 니 다.LOB 패키지.수정 기록 을 삽입 하기 전에 비 어 있 거나 길이 판단 을 해 야 합 니 다.빈 필드 값 과 길이 초과 필드 값 에 대해 경 고 를 하고 마지막 작업 으로 돌아 가 야 합 니 다.5.날짜 필드 의 처리 MySQL 날짜 필드 는 DATE 와 TIME 두 가지 로 나 뉘 며,Oracle 날짜 필드 는 DATE 만 있 으 며,년 월 일 분 초 정 보 를 포함 하고 있 으 며,현재 데이터베이스 시스템 시간 은 SYSDATE 로 초 까지 정확 하거나 문자열 로 날짜 형 함수 TO 로 변환 합 니 다.DATE('2001-08-01','YYYY-MM-DD')년-월-일 24 시간:분:초의 격식 YYY-MM-DD HH24:MI:SS TODATE()날짜 형 필드 를 문자열 함수 TO 로 변환CHAR('2001-08-01','YYYY-MM-DD HH24:MI:SS')날짜 필드 의 수학 연산 공식 은 크게 다르다.MySQL 찾기 현재 시간 7 일 전 DATEFIELD_NAME>SUBDATE(NOW(),INTERVAL 7 DAY)Oracle 찾기 현재 시간 7 일 전 DATEFIELD_NAME >SYSDATE C 7; 6.MySQL 의 비 어 있 는 필드 를 빈 문자 로 처리 합 니 다.Oracle 에 서 는 비 어 있 는 필드 를 정의 하면 비 어 있 는 내용 을 허용 하지 않 습 니 다.MySQL 의 NOT NULL 에 따라 Oracle 표 구 조 를 정의 합 니 다.데 이 터 를 유도 할 때 오류 가 발생 할 수 있 습 니 다.따라서 데 이 터 를 가 져 올 때 빈 문 자 를 판단 해 야 합 니 다.NULL 이나 빈 문자 라면 빈 문자열 로 바 꿔 야 합 니 다.7.문자열 의 모호 비교 MySQL 에서 필드 이름 likeOracle 에서 도 필드 이름 like 를 사용 할 수 있 습 니 다.그러나 이러한 방법 은 색인 을 사용 할 수 없습니다.속도 가 빠 르 지 않 으 면 문자열 로 함수 인 스 터(필드 이름,문자열)>0 을 비교 하면 더욱 정확 한 검색 결 과 를 얻 을 수 있 습 니 다.8.프로그램 과 함수 에서 작업 수 는 라 이브 러 리 작업 이 끝 난 후에 결과 집합 과 지침 의 방출 에 주의 하 십시오.이상 MySQL 에서 Oracle 로 전환 하 는 데 관 한 주의사항 을 참고 하 시기 바 랍 니 다.

좋은 웹페이지 즐겨찾기