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
사용하다animals
schema 를 누릅니다.
위의 접속 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
'programing' 카테고리의 다른 글
jQuery를 사용하여 ajax 요청을 큐잉합니다.큐() (0) | 2023.02.26 |
---|---|
UnicodeDecodeError: 'utf8' 코덱이 위치 3131에서 바이트 0x80을 디코딩할 수 없음: 잘못된 시작 바이트 (0) | 2023.02.26 |
JSON 문자열을 탈출하는 방법 (0) | 2023.02.26 |
Woocommerce에서 쿠폰을 프로그래밍 방식으로 적용합니다. (0) | 2023.02.26 |
동기 http 콜(angular)JS (0) | 2023.02.26 |