programing

Oracle Connection URL 기본 스키마

lastmoon 2023. 2. 26. 10:26
반응형

Oracle Connection URL 기본 스키마

기본 데이터베이스 스키마를 설정하다Oracle Connection URL

jdbc:oracle:thin:@<server>:<port1521>:<sid>

샘플 SQL 문:

select monkey_name from animals.monkey

스키마 접두사가 없는 데이터베이스를 쿼리해야 합니다.animals.즉, 이 명령어를 실행할 때

select monkey_name from monkey

사용하다animalsschema 를 누릅니다.

위의 접속 URL에서 무엇을 지정하면 이러한 효과를 얻을 수 있습니까?

감사해요.

연결 URL에는 아무것도 넣을 수 없습니다.

Oracle에서는 각 사용자가 개체를 포함하지 않더라도 자체 스키마를 가지고 있으며, 이것이 기본 스키마입니다.로그인/접속 후 기본 스키마를 변경할 수 있습니다.

ALTER SESSION SET CURRENT_SCHEMA=animals

접속 후 추가 문장이 필요합니다.사용자 및/또는 데이터베이스에 로그온 트리거를 설정하여 로그인 시 이를 실행할 수 있습니다.개인적으로 응용 프로그램이 연결될 때 명시적인 진술을 선호합니다.

C3를 사용하는 경우PO가 접속을 체크할 때 실행시킬 수 있습니다.

속성:

c3p0.preferredTestQuery=alter session set current_schema=animals
c3p0.testConnectionOnCheckout=true

Java 코드로서:

ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setPreferredTestQuery("alter session set current_schema=animals");
dataSource.setTestConnectionOnCheckout(true);

단점은 연결이 풀에서 분리될 때마다 이 문제가 발생한다는 것입니다.

JDBC 접속을 사용하고 있는 경우는, 다음의 조작을 실시합니다.

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = getConnection("jdbc:oracle:thin:@//server:1521/instance",   "username", "password");
connection.createStatement().execute("alter session set current_schema=animals"));

동의어의 사용은 어떻습니까?

create synonym monkey for animals.monkey;

select monkey_name from monkey

연결 DB 사용자를 사용하여 트리거를 생성하여 현재 스키마를 변경할 수 있습니다.

create or replace trigger SET_SCHEMA_AFTER_LOGON
    after logon on database
begin
     execute immediate 'alter session set CURRENT_SCHEMA=animals';
end SET_SCHEMA_AFTER_LOGON;

Java 1.7이 있기 때문에java.sql.Connection.

Oracle의 경우oracle.jdbc.driver.PhysicalConnection구현 이 방법을 실행합니다.alter session set current_schema = ?진술.

언급URL : https://stackoverflow.com/questions/2353594/default-schema-in-oracle-connection-url

반응형