단일 스키마 시스템의 데이터베이스 간 사용 예

다음 예제에서 시스템에는 PROD와 DEV라는 두 개의 데이터베이스가 있으며, 각 데이터베이스에는 EMP라는 이름의 테이블이 있습니다. DEV 데이터베이스에 연결된 동안에는 다음 명령을 사용하여 EMP 테이블의 모든 행을 검색할 수 있습니다.

DEV.DBUSER(DBUSER)=> SELECT * FROM emp;
참고: 각 데이터베이스에는 데이터베이스를 만든 사용자의 이름이 지정된 기본 스키마가 있습니다(예: 이 예제에서는 DBUSER 사용자). 이 예는 DBUSER가 DEV 및 PROD 데이터베이스를 모두 작성했음을 보여줍니다.

DEV에 연결된 동안 PROD의 EMP 테이블에서 행을 선택하려면 database.schema.object 이름 형식을 사용하여 테이블을 식별할 수 있습니다. 예:

DEV.DBUSER(DBUSER)=>SELECT * FROM prod.dbuser.emp;
참고: 객체를 참조할 때는 PROD.DBUSER.EMP 같은 정규화된 객체 이름을 사용하는 것이 가장 좋습니다. 단일 스키마 환경에서는 PROD...EMP와 같은 "점 점" 표기법을 사용할 수도 있으며 데이터베이스는 데이터베이스의 기본 스키마만 사용할 수 있습니다. 그러나 우수 사례로서 "점 점" 표기법의 사용을 피해야 합니다. 단일 스키마 환경에서는 스키마에 지정한 값이 무시됩니다. 유효하지 않은 스키마를 지정하는 경우, 시스템은 기본 스키마를 사용하며 오류를 표시하지 않습니다.

교차 데이터베이스 INSERT, UPDATE 또는 DELETE 문을 사용하여 다른 원격 데이터베이스의 테이블을 변경할 수 있습니다. 예를 들어,

DEV.DBUSER(DBUSER)=>INSERT INTO prod..emp SELECT * FROM newusers;